Munal OS:探索操作系统新范式的实验之作

Munal OS:探索操作系统新范式的实验之作

munal-os An experimental operating system fully written in Rust, with a unikernel design, cooperative scheduling and a security model based on WASM sandboxing. munal-os 项目地址: https://gitcode.com/gh_mirrors/mu/munal-os

项目介绍

Munal OS 是一个完全用 Rust 语言编写的实验性操作系统。它采用 unikernel 设计,实现了协作调度,并基于 WebAssembly (WASM) 沙盒技术构建了安全模型。这个项目不仅提供了完整的图形用户界面,还内置了网络驱动和 TCP 栈,使得用户可以在一个高度定制的环境中运行沙盒化应用。

项目技术分析

Munal OS 的技术架构充满了创新和实验性。它放弃了传统操作系统中的一些常见设计,比如引导加载程序、页表映射、虚拟地址空间和中断处理,从而简化了代码库并探索了现代工具能够实现的新型操作系统设计。

EFI 二进制文件

Munal OS 不使用引导加载程序,而是将整个操作系统编译成一个单一的 EFI 二进制文件,其中嵌入了内核、WASM 引擎和所有应用程序。UEFI 启动服务几乎立即退出,除了系统时钟外不使用任何 UEFI 服务。

地址空间

UEFI 将地址空间保留为身份映射,而 Munal OS 并不重新映射它。事实上,页表根本不被触碰,因为操作系统不使用虚拟地址机制。整个操作系统实际上运行在单个内存空间内,但通过 WASM 沙盒技术实现了用户空间和内核空间的区分,防止用户应用程序任意访问内核内存。

驱动程序

Munal OS 不依赖于 PS/2 输入或 VGA/UEFI GOP 帧缓冲区来显示,而是实现了 PCI 驱动程序,通过 VirtIO 1.1 规范与 QEMU 通信。一个通用的 virtqueue 系统作为四个不同的 VirtIO 驱动程序的基础:键盘、鼠标、网络和 GPU。值得注意的是,这些驱动程序完全基于轮询,不依赖于 CPU 中断。

事件循环

Munal OS 没有实现多核支持或中断,所有操作都在一个单一的全球事件循环中线性执行。每次循环迭代都会轮询网络和输入驱动程序,绘制桌面界面,运行每个活动的 WASM 应用程序的一步,并刷新 GPU 帧缓冲区。

项目技术应用场景

Munal OS 的设计理念非常适合于需要高度定制和安全性的场景。它的沙盒化应用和基于 WASM 的安全模型使其成为开发嵌入式系统、安全计算环境或者特定领域操作系统的理想选择。以下是几个潜在的应用场景:

  1. 嵌入式系统开发:利用 Rust 的性能和安全性,Munal OS 可以用于开发高性能的嵌入式系统。
  2. 安全计算环境:沙盒化应用提供了强大的安全性,适用于需要保护数据不受恶意代码影响的环境。
  3. 教育与研究:作为一个实验性操作系统,Munal OS 可以用于教育和研究,帮助学生和研究人员理解操作系统的工作原理。

项目特点

  1. 完全图形化界面:提供高清分辨率的图形用户界面,支持鼠标和键盘操作。
  2. 沙盒化应用:应用在安全的沙盒环境中运行,防止恶意代码攻击。
  3. 内置网络功能:包含网络驱动和 TCP 栈,支持网络通信。
  4. 自定义 UI 工具包:提供灵活的 UI 组件,支持响应式布局和文本渲染。
  5. 丰富的预装应用:包括支持 DNS、HTTPS 和基本 HTML 的浏览器、文本编辑器和 Python 终端。

Munal OS 作为一个实验性项目,展示了 Rust 语言在系统编程领域的潜力,同时也为未来的操作系统设计提供了新的思路和方向。

munal-os An experimental operating system fully written in Rust, with a unikernel design, cooperative scheduling and a security model based on WASM sandboxing. munal-os 项目地址: https://gitcode.com/gh_mirrors/mu/munal-os

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲍珍博Quinn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值