写点什么

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

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

关注

评论

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

[自研开源] MyData v0.7.3 更新日志

LIEN

开源 数据集成 业务融合 API对接 mydata

报名最后一天!Farris-Vue前端组件创新挑战赛火热报名中!

inBuilder低代码平台

Java 文件处理完全指南:创建、读取、写入和删除文件详细解析

小万哥

Java 程序人生 编程语言 软件工程 后端开发

2023 re:Invent 使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序

亚马逊云科技 (Amazon Web Services)

生成式人工智能

低代码助力企业数据资产价值升级

Crabc低代码平台

低代码 数字化 数据服务

招个Java工程师,却发现了一个宝藏平台

王磊

Java 面试

AI技术在医疗领域中有哪些改变?

小魏写代码

Transformer大模型学习导引:光速掌握大模型

鲸品堂

大模型 企业号 3 月 PK 榜

基于SkyEye仿真飞腾处理器:运行U-Boot并加载Phytium-FreeRTOS

DevOps和数字孪生

SkyEye 飞腾处理器

第43期 | GPTSecurity周报

云起无垠

arthas火焰图(async-profiler)在云交易中的运用

京东零售技术

后端 效能提升

《Java核心技术·卷 I(原书第11版)》PDF

程序员李木子

雷龙科技Nand flash芯片试用体验

芯动大师

存储 芯片 Flash

华为云数据库创新发展论坛,打造行业更优数据库底座!

华为云开发者联盟

数据库 后端 华为云 云原生数据库 华为云开发者联盟

何为代码检查服务的门禁级检查

华为云开发者联盟

开发 华为云 华为云开发者联盟 代码检查

中国滑雪运动趋势洞察2024

易观分析

报告 滑雪

深度解析大模型:概念、架构与应用价值

木南曌

AI 大模型

[人脸修复]基于CodeFormer的人脸修复模型配置

alexgaoyh

环境配置 CodeFormer 人脸修复 人脸复原 旧照片修复

科普:嵌入式多核并行仿真

DevOps和数字孪生

仿真建模 多核并行仿真

北京大学讲座:大模型时代的软件研发:技术、范式与工具

华为云PaaS服务小智

人工智能 华为云

AI大模型助力:离线生成中英双语字幕

百度开发者中心

人工智能 数字化时代 大模型

数据平台“国产替代”掣肘在迁移?奇点云的工业制造实践解读

先锋IT

Github 每日热榜 2024.03.18

天马行空的大杂烩

程序员 开源软件 最新软件

基于SkyEye仿真6678处理器:实现国产操作系统ReWorks仿真运行

DevOps和数字孪生

国产操作系统ReWorks SkyEye

开源推荐 | 简洁且强大的开源堡垒机OneTerm

37丫37

DevOps 运维 运维自动化 堡垒机 安全审计

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