写点什么

Google Fuchsia 微内核 Zircon 先睹为快

  • 2018-04-23
  • 本文字数:988 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Google 发布了 Fuchsia 的官方文档。Fuchsia 是 Google 针对 IoT 和移动设备新推出的一种操作系统,它基于称为“Zircon”的全新微内核。

Zircon 使用 C++ 编写,在组成上包括一个微内核,以及一组用户空间服务、驱动和软件库,可处理系统启动、进程加载等一些经典内核任务。Zircon 的系统调用除了wait_one, wait_many, port_wait and sleep之外,一般是非阻塞的。Zircon 支持在 Linux 或 macOS 上构建,进而创建一个可引导的 bootfs镜像。Zircon 最初是 LK 的一个分支。LK 是 Google 为嵌入式系统开发的另一种内核,意在实现对 FreeRTOS ThreadX 的开源替代。但是 Zircon 没有 LK 那么严格的需求,因为它是设计运行在具有充足内存和高速处理器的现代设备上。

Zircon 可管理的资源包括:处理时间、内存、I/O、中断、信号与等待等。用户区域(user land)通过句柄(handle)使用资源,句柄有权利(rights)关联到资源,并传递复制、传递、读取、写入、执行等行动的执行权限。Zircon 中的驱动实现为ELF 软件库,并加载到进程中。驱动管理进程 devmgr追踪所有的驱动和设备情况,管理对驱动的发现,并管控对设备的访问。设备可以使用 PCI protocol USB protocol 等 C ABI 实现协议(Protocol)。

Zirocn 并不支持 Unix 风格的信号,也没有提供任何可直接实现的机制。它支持句柄上的等待操作。等待包括一系列不同的信号状态,例如写入就绪、运行、停止等。同样,Zircon 不具有类似于Unix 的 forkexec操作,而是使用 launchpad 软件库创建进程。下面给出了使用 launchpad 创建进程的一个示例代码段:

复制代码
launchpad_t* lp;
launchpad_create(job, "processname", &lp);
launchpad_load_from_file(lp, argv[0]);
launchpad_set_args(lp, argc, argv);
launchpad_set_environ(lp, env);
// << 此处可添加其它 launchpad_*() 调用,实现建立初始 fds、句柄等。 >>
zx_handle_t proc;
const char* errmsg;
zx_status_t status = launchpad_go(lp, &proc, &errmsg);
if (status < 0)
printf("launchpad failed: %s: %d\n", errmsg, status);

要全面了解 Zircon,建议整体阅读全部文档。Zircon 依然处于繁重的开发过程中,但是 Google 当前并未积极需求第三方的贡献。

查看英文原文: An Early Look at Zircon, Google Fuchsia New Microkernel

2018-04-23 19:007107
用户头像

发布了 391 篇内容, 共 144.1 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

房地产从业者必备的100+数据源盘点!

八爪鱼采集器︱RPA机器人

爬虫 采集

DApps使用量激增70%:第三季度再创新高,未来趋势与开发策略解析

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 代币开发

八爪鱼在融媒体中的应用

八爪鱼采集器︱RPA机器人

爬虫 采集

八爪鱼数据采集在国央企的主要应用场景:产业态势分析

八爪鱼采集器︱RPA机器人

爬虫 采集

提高ROI:低代码平台如何助力企业实现成本效益最大化

天津汇柏科技有限公司

低代码 ROI

云MES适用于哪些行业?

万界星空科技

制造业 mes 云 原生云 CTO 云mes 万界星空科技mes

Abaqus可以做流体仿真吗?流固耦合项目介绍

思茂信息

abaqus 有限元技术 流固耦合

新增六大功能解析!eBPF 技术实践白皮书第二版正式发布(附下载链接)

OpenAnolis小助手

操作系统 ebpf 云栖大会 龙蜥社区 eBPF 技术

软硬协同方案破解IT瓶颈,龙蜥衍生版KOS助力内蒙古大学成功迁移10+业务软件 | 龙蜥案例

OpenAnolis小助手

龙蜥社区 龙蜥案例

如何用八爪鱼采集线下零售消费评价数据并指导商业地产运营

八爪鱼采集器︱RPA机器人

爬虫 采集

人工智能加速打破“设备壁垒”,系统安全护航“数字中国”

极客天地

软件测试学习笔记丨数据库进阶及redis数据库

测试人

软件测试

中国市场的NFT生存法则:消费属性与圈子文化

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

深度解析淘宝商品详情API返回值的业务价值

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API API 性能测试

与chatGPT对话 | 如何用八爪鱼采集招投标数据进行竞争情报分析

八爪鱼采集器︱RPA机器人

爬虫 采集

前端开发个人职业发展的四个阶段,你处于哪里?

不在线第一只蜗牛

Java 前端 前端框架

3分钟理清QPS、TPS、RT 以及它们之间的关系

江南一点雨

cad2023: AutoCAD 2023 (Win&Mac) 中文特别版

你的猪会飞吗

AutoCAD 2023 CAD 2023破解 CAD 2023下载

淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据

tbapi

淘宝API接口 淘宝商品列表数据接口 淘宝商品数据采集 淘宝商品列表数据API

通过观测云 DataKit Extension 接入 AWS Lambda 最佳实践

观测云

aws lambda

浅谈 Nginx 头部配置:add_header 及其常见功能实践

inBuilder低代码平台

nginx 代理 Nginx配置

软件测试学习笔记丨MongoDB

测试人

软件测试

第三位中国成员!CloudberryDB 核心开发者张明礼入选 PostgreSQL Contributor 名单

酷克数据HashData

包材推荐中的算法应用|得物技术

得物技术

算法

在2024 VDC,听一曲“蓝心智能”的江河协奏

脑极体

AI

软件测试学习笔记丨Neo4j数据库

测试人

软件测试

金融从业人员获取公开数据必备的126个网址

八爪鱼采集器︱RPA机器人

爬虫 采集

Google Fuchsia微内核Zircon先睹为快_移动_Sergio De Simone_InfoQ精选文章