QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

链上智能合约Dapp系统开发部署搭建

薇電13242772558

区块链 智能合约

携手腾竞体育后,英特尔IMC如何加速电竞生态正循环?

科技之家

攻防演练中红队的内网横向扩展

穿过生命散发芬芳

6月月更 攻防演练

uni-app进阶之创建组件/原生渲染【day9】

恒山其若陋兮

6月月更

数据资产管理

奔向架构师

数据资产 数据管理 6月月更

Android 修改系统音量及监听

yechaoa

android 6月月更 AudioManager

vue导航路由

小恺

6月月更

服务治理的工作内容

阿泽🧸

微服务 6月月更

leetcode 221. Maximal Square 最大正方形(中等)

okokabcd

LeetCode 动态规划 数据结构与算法

对讲功能在远程办公中的应用 | 社区征文

Changing Lin

初夏征文

flutter系列之:flutter中的builder

程序那些事

flutter 程序那些事 6月月更

喜讯!云效度量能力获信通院先进级评估

阿里云云效

云计算 阿里云 DevOps 研发效能 研发

数据库每日一题---第18天:每天的领导和合伙人

知心宝贝

数据库 大数据 前端 后端 6月月更

百度安全再次亮相高性能计算国际顶会SC 2022 — 采用Fuzzing技术防护高性能计算静默数据损坏安全风险

百度安全

百度安全 百度安全实验室 高性能计算国际顶会 SC 2022 Fuzzing技术防护

小红书严打买卖账号及刷量作弊行为:必须维护平台的公信力

石头IT视角

JVM调优简要思想及简单案例-新生代回收算法

zarmnosaj

6月月更

一问带你彻底了解JVM-Java虚拟机内存区域详解

派大星

JVM

如何把企业内部碎片信息系统化?

小炮

AIOps落地五大原则(二):价值路线

BizSeer必示科技

从华为WeAutomate数字机器人论坛,看政企领域的“政务新智理”

王吉伟频道

RPA 数字化转型 华为WeAutomate 政务新智理 数字政府

客户案例|观测云助力合思信息升级新一代可观测平台

观测云

稳住了,别抖!—— 看GetX 的Worker如何防抖

岛上码农

flutter ios 前端 安卓开发 6月月更

透过华为军团看科技之变(四):互动媒体(音乐)

脑极体

统一日志

卢卡多多

日志 6月月更

「微服务的细节」—— 周期性注册 or 一次性注册

袁世超

微服务

AWS的运营管理类服务

冯亮

云计算 AWS

毕业回馈!Apache Doris 社区所有贡献者来领礼品啦!

SelectDB

数据库 数据湖 开源项目 apache doris 社区活动

Larix真正的去中心化借贷平台,并开启double Mining活动

鳄鱼视界

A/B测试助力游戏业务增长

字节跳动数据平台

游戏开发 游戏 ab测试 游戏运营

浅谈融云即时通讯服务「日志优化」

融云 RongCloud

新课上线 | 每次 5 分钟,轻松玩转阿里云容器服务!

阿里巴巴云原生

阿里云 云原生 容器服务

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