MOROS 是一个基于文本的业余操作系统,由 [Vincent Ollivier][0] 使用 Rust 编写。它针对具有 x86-64 架构和 BIOS 的计算机,从 Unix、Plan 9 和 DOS 中汲取灵感,提供了一个简单高效的命令行计算和通信环境。这个项目源自 Philipp Oppermann 在《[Writing an OS in Rust][2]》第二版的第七篇文章[1],目的是展示完成 OSDev 教程后可以实现的功能,同时阅读 [OSDev wiki][3] 以及许多 开源 内核。
注意: 目前内核正在重构,以支持 i686 架构,除了 x86-64 之外。
- 外部引导加载程序(使用[引导加载程序][4])
- AMD64 CPU 支持(使用 [x86_64][5])
- 可自定义布局的 PS/2 键盘(使用 [pc-keyboard][6])
- VGA 文本模式和 320x200 图形缓冲区(用于游戏和图像),支持自定义字体和颜色调色板
- 串行输出(使用 [uart_16550][7])
- 堆分配(使用 [linked_list_allocator][8])
- ACPI 关机(使用 [acpi][9] 和 [aml][10])
- RTC 时钟,支持用户空间 NTP 同步
- Intel 8259 PIC
- PCI 设备
- ATA PIO 模式
- 自定义 文件系统,支持位图分配、链接块、块缓存,以及文件、目录和设备节点支持
- 随机数生成器(使用 [rand_hc][11])
- Intel PRO/1000、RTL8139 和 AMD PCNET 网卡
- DHCP/IP/TCP/UDP/DNS/HTTP 网络协议(使用 [smoltcp][12])
- AC97 和 SB16 声卡
- 分页,使用位图帧分配器
- 具有隔离地址空间和需求式分页的进程
- 用户空间,支持 系统调用 和 设备文件
- Shell 和 Lisp 解释器
- 文本编辑器 和汇编器
- 一些 文件 和 网络 命令
- 一些 游戏,包括 DOOM
文档