💡
原文英文,约3700词,阅读约需14分钟。
📝
内容提要
本文介绍了 Helios 操作系统中的 Mercury 环境,用于编写和运行用户空间设备驱动程序。Mercury 使用基于能力的设计提供强隔离性,作者计划编写更多的驱动程序和建立一个简单的 shell。
🎯
关键要点
- Helios 是一个用 Hare 编程语言编写的微内核,是 Ares 操作系统的一部分。
- Mercury 环境用于编写和运行用户空间设备驱动程序。
- 驱动程序以 ELF 可执行文件的形式编写,包含一个名为 .manifest 的额外部分。
- Mercury 使用基于能力的设计,提供强隔离性,限制对系统资源的访问。
- 每个进程都有一个能力空间,操作时需要提供所需能力的索引。
- 能力的限制使得设备驱动之间具有很强的隔离性,减少了系统漏洞的风险。
- Mercury 通过辅助向量与运行时通信,提供能力的信息。
- 协议定义文件使用领域特定语言编写,并通过 ipcgen 生成客户端和服务器实现。
- 驱动程序需要实现特定的协议接口,以便与设备注册表和其他服务交互。
- 驱动程序在 Helios 启动时由 sysinit 执行,设置用户空间运行时服务。
- 作者计划编写更多驱动程序并建立一个简单的 shell。
➡️