Maestro,一个内核和一个用 Rust 从头开始​​编写的类 Unix 操作系统

大师

大师截图

Rust 已经足够受欢迎 它已成为 Linux 以及其他操作系统中选择集成的第二语言之一,例如 Android,它已经拥有 Rust 的部分代码,Windows 也有已给予批准等。

已被证明是一种强大的语言并赢得了如此的信任 一些操作系统甚至是用这种编程语言创建的,仅举几例: 氧化还原, 我们也有从头开始编写的内核,例如 克尔拉 或中使用的内核 中国最近发射的卫星.

之所以提这个,是因为最近看到一则新闻引起了我的注意,那就是 提出了一个项目,其中开发了用 Rust 编写的内核 并且与 Linux 部分兼容。

这个项目的名字是 “老师” 正如所提到的, 是一个用 Rust 编写的类 Unix 内核,实现了 Linux 内核的系统调用的子集 足以创建标准的工作环境。因此,“Maestro”项目并不是什么新鲜事,因为开发人员提到该项目诞生于 2018 年,但当时它是用 C 编写的,并且由于 Rust 的不同优点和特性,该项目是从零。

在项目页面上 变更原因描述如下:

那时我决定切换到 Rust(我用这种语言进行的第一个项目),它具有以下几个优点:

  • 利用从以前的错误中吸取的教训,从头开始重新启动项目。
  • 比直接用C写一个类似Linux的内核更有创新一点。毕竟当时就用Linux吧。
  • 利用 Rust 语言的安全性来利用一些内核编程困难。使用 Rust 编写系统可以让您将内存安全的部分责任从程序员转移到编译器。

在内核开发中,调试非常困难,原因如下:

  • 文档通常很难找到,并且 BIOS 实现可能存在错误(比您想象的更频繁)。
  • 启动时,内核可以完全访问内存,并且可以写入不应写入的位置(例如,其自己的代码)。
  • 解决内存泄漏问题并不容易。无法使用 valgrind 等工具。
  • gdb 可以与 QEMU 和 VMWare 一起使用,但在不同的模拟器或虚拟机上运行时,内核的行为可能有所不同。此外,这些模拟器可能不支持 gdb(例如 VirtualBox)。
  • QEMU 或 VMWare 中的 gdb 支持缺少某些功能,gdb 有时甚至可能崩溃

和---关联 该项目的特点,突出的是内核是整体的 目前仅在 86 位模式下的 x32 系统上受支持。内核代码库涵盖约 49 行,可在真实硬件和虚拟环境(例如 QEMU 或 VirtualBox)中执行。

在《Maestro》当前的开发中, 31%已实施 (135之437) Linux 系统调用。 这是 足以加载基于 Bash 和 Musl 标准 C 库的控制台环境。 此外,基于 Maestro 的环境可以运行 GNU coreutils 套件中的一些实用程序以及任何 Unix 系统的基本打包。目前,正在完成实施网络堆栈的工作,并正在开发一个

其中 Maestro 的可用功能脱颖而出 下列::

  • 用于 PS/2 键盘和终端的控制器,具有文本模式并部分支持 ANSI 序列。
  • 支持虚拟内存的内存分配系统。
  • 基于循环算法的任务调度程序,支持 POSIX 信号。
  • PCI 设备的定义。
  • IDE/PATA 控制器。
  • Ext2 文件系统。
  • 支持 /tmp 和 /proc 虚拟文件系统。
  • 能够挂载 FS、MBR 和 GPT 磁盘分区。
  • initramfs 支持。
  • RTC 控制器用于定时器和精确时间。
  • 支持加载内核模块。
  • 能够运行 ELF 格式的可执行文件。

有兴趣了解更多有关该项目的信息,您可以查看详细信息 在下面的链接中。  对于对项目代码感兴趣的人应该知道它是 在麻省理工学院许可下分发。 


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。