大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

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

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

关注

评论

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

TDSQL-C PostgreSQL(CynosDB) 内核解密-披荆斩棘,勇往直前的腾讯云数据库

腾讯云数据库

数据库 tdsql

TDSQL核心架构

腾讯云数据库

数据库 tdsql

2021大厂Android面试最火问题,【Android面试题】

android 面试 移动开发

1-3年Java开发工程师面试经验分享,深入浅出Java开发

Java 面试 后端

2021大厂Android面试题精选,Android工程师必备知识

android 面试 移动开发

2021大厂Android面试题精选,BAT面试文档

android 面试 移动开发

2021中级Android开发面试解答,Android面试送分题

android 面试 移动开发

腾讯TDSQL:带你认识真正的金融级自主可控分布式数据库

腾讯云数据库

数据库 tdsql

2021大厂Android面试题精选,当上项目经理才知道

android 面试 移动开发

2021大厂Android面试题精选,鸿蒙教程来袭

android 面试 移动开发

分布式TDSQL的实践

腾讯云数据库

数据库 tdsql

2021大厂Android春招面试经历,Android开发必须掌握

android 面试 移动开发

2021大厂Android面试最火问题,透彻分析源码

android 面试 移动开发

2021大厂Android面试经验,阿里P7亲自讲解

android 面试 移动开发

2021一位Android中级程序员的跳槽面经,成功拿下大厂offer

android 面试 移动开发

Vite + Vue3 + OpenLayers 切换地图容器

德育处主任

大前端 地图 vite Vue3 openlayers

拓路前行-TDSQL追求极致体验的这一路

腾讯云数据库

数据库 tdsql

又到“乌镇时间” | VoneDAO助力企业打造高效协作新生态

旺链科技

区块链 互联网大会 分布式自治组织

2021大厂Android开发面试总结+解答,查缺补漏

android 面试 移动开发

2021大厂安卓面试集合,建议收藏

android 面试 移动开发

TDSQL核心特性:极具挑战的“四高”服务与安全可运维

腾讯云数据库

数据库 tdsql

2021互联网大厂Android面经合集,重磅来袭

android 面试 移动开发

10天拿到字节跳动Java岗位offer,深入讲解Java

Java 面试 后端

2021中级Android开发面试解答,腾讯Android面试题

android 面试 移动开发

10天拿到字节跳动Java岗位offer,Java编程入门自学

Java 面试 后端

TDSQL产品简介以及适用场景

腾讯云数据库

数据库 tdsql

2021大厂Android面试经历,安卓面试宝典

android 面试 移动开发

1-3年的Java开发工程师看过来,阿里P8面试官都说太详细了

Java 面试 后端

10天拿到字节跳动Java岗位offer,java高分面试指南

Java 面试 后端

5种Python使用定时调度任务的方式

华为云开发者联盟

Python 定时调度 调度 循环 调度任务

TDSQL金融级特性之:数据强一致性保障

腾讯云数据库

数据库 tdsql

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