写点什么

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

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

关注

评论

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

软件测试 | PageObject模式

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

测试

mysql锁及数据一致性总结

阿呆

MySQL innodb 数据一致性 事务/行级锁 脏读

软件测试 | 如何安装WebDriverAgent

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

测试

软件测试 | Pytest测试框架之插件开发

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

测试

软件测试 | predicateString定位

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

测试

软件测试 | 认识Pipline

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

测试

软件测试 | Script Pipeline

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

测试

构建微服务的基建——事件总线

为自己带盐

RabbitMQ CAP 事件总线

Nautilus Chain即将上线,一文盘点其六大优势

鳄鱼视界

Databend v1.0 Release 正式发布

Databend

软件测试 | Capability如何使用

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

测试

Nautilus Chain即将上线,一文盘点其六大优势

威廉META

新增 – 使用基于用户的许可证模式在 Amazon EC2 上运行 Visual Studio 软件

亚马逊云科技 (Amazon Web Services)

软件测试 | Pytest测试框架之fixture进阶

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

测试

软件测试 | websocket接口测试

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

测试

Camtasia2023最新版下载使用教程

茶色酒

Camtasia2023

浅谈对JavaScript 中的执行上下文和执行栈的理解

梁木由

软件测试 | 结合Allure生成测试报告

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

测试

软件测试 | Jenkinsfile语法

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

测试

架构实战营 - 模块四作业

🐢先生

架构实战营

软件测试 | Tcp协议的接口测试

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

测试

【git】将本地代码推送到远程git仓库

石臻臻的杂货铺

git

一文盘点即将上线的Nautilus Chain六大优势

股市老人

软件测试 | Dubbo协议的接口测试

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

测试

Adapter基础讲解

梦笔生花

mvc Adapter arrayadapter

DawnSql在数据治理中的优势

陈飞

微服务架构 分布式数据库 架构设计 数据治理 分布式缓存

软件测试 | Xcode基础使用

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

测试

软件测试 | pb协议的接口测试

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

测试

Matlab实现彩色图像的转换 平滑 锐化与分割

timerring

数字图像处理

软件测试环境安装

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

测试

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