写点什么

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:007479
用户头像

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

关注

评论

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

在SAP Fiori界面上的VF03事务

SAP虾客

SAP Fiori SAP S4HANA VF03

10个案例详解AnimatableExtend装饰器定义可动画属性

威哥爱编程

HarmonyOS HarmonyOS NEXT HarmonyOS5.0

简单几步!豆包MarsCode 助我魔改前端组件

TRAE.ai

OpenAI Chatgpt 大语言模型

测吧(北京)科技有限公司

测试

公开课 | 提高测试用例编写效率,掌握经典用例设计技巧!

测吧(北京)科技有限公司

测试

如何使用机器学习,预测客户流失率,轻松实现客户精准维护

Altair RapidMiner

人工智能 机器学习 AI 数据分析 altair

优雅的@ObservedV2和@Trace装饰器

威哥爱编程

HarmonyOS HarmonyOS框架 HarmonyOS NEXT HarmonyOS5.0

【论文速读】| AttackQA:利用微调及开源大语言模型辅助网络安全运营的数据集的开发与应用

云起无垠

小白如何学习看懂CAD图纸?

在路上

cad cad看图 CAD看图软件

SAP QM 客户退货检验的三种实现方案

SAP虾客

SAP S4HANA SAP QM

从江西上饶6岁女孩跑完马拉松“违规”事件看软件测试的规范与风险管理——打造高效团队的关键

测吧(北京)科技有限公司

测试

2024华为云开源开发者论坛顺利召开,引领开放创新,共筑数智未来

新消费日报

乘数而上、价值释放,数据资产管理的关键步骤与价值解读

袋鼠云数栈

又曝新作!阿里P9再出山,操作性超强的Spring源码实践

Summer

Java 编程 程序员 面试 架构师

从接口超时到RAID

Qunar技术沙龙

后端 io 优化 raid

全面解读TaurusDB透明压缩特性,降低数据库使用成本

华为云开发者联盟

#数据库 MySQL 5.7

2000道面试必问的Java面试八股文及答案整理(2025版)

Summer

Java 编程 程序员 面试 架构师

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