BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google Fuchsia微内核Zircon先睹为快

| 作者 Sergio De Simone 关注 18 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2018年4月24日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

看新闻很累?看技术新闻更累?试试下载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为嵌入式系统开发的另一种内核,意在实现对FreeRTOSThreadX的开源替代。但是Zircon没有LK那么严格的需求,因为它是设计运行在具有充足内存和高速处理器的现代设备上。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Google学聪明了 by Das Meer

Zircon不具有类似于Unix的fork和exec操作

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT