月亮OS
Moon OS是针对X86_64和ARMV6体系结构的模块化微内核,旨在将来像Posix一样。

屏幕截图:
Bootsplash:
详细引导:
内核恐慌: 
特征
- 支持多个体系结构:
- X86_64 PC具有ACPI支持
- 4级分页
- stacktrace/符号回溯
- 分区的好友和板分配器。
- 通过
syscall的系统调用(不支持基于int的系统调用)
- Nintendo 3DS(ARMV6)
- I2C驱动程序
- Bootrom IVT
- 将字符串渲染到显示器
共享功能(两个架构都支持此):
- 乌班
- 可拆卸启动参数(安静/冗长)
- 精灵加载器
- 原始调度程序(将改进加时赛,现在我的重点是使所有内容启动并运行(IPC,服务器,LIBC等))
未来功能:
- 线程
- 卡桑
- ACPI
- Smbios
- 多任务
- 许多硬件驱动程序包括但不限于:
- userland的libc
将来的待办事项清单
- 更好地使用APIC(目前仅用于计时器)
- 虚拟内存子系统
- 新的物理内存管理器? (不确定。)
目前正在研究:
- 调度程序
- IPC
- 移植MLIBC
- intrd
- 在内核减压库中以解压缩启动
- 本机(构建计算机)程序以构建和添加文件(以维持Initrd的体面模块化)。
- 从Initrd(TGA,BMP)加载并渲染图像
- 使ARMV6端口更可用的新增加(SD卡驱动程序,GPU,vblank)
目录演练:
- libs/ - 公用事业与内核(调度程序,内存管理器等)无关,而是其功能所必需的。
- 内核/ - 内核源代码
- 靴子/ - 月亮为启动所需的一切都需要
- 服务/ - 特殊微型内核服务器 + LIBC
- 用户空间/ - 引导加载程序文件,配置,模块等。在构建时间自动添加许多文件。
安装
建筑物:(假设您正在使用基于Debian的发行版)
安装所需的工具:
- sudo apt更新
- sudo apt安装gcc nasm qemu-system-x86 libfuse-dev ruby ruby-rubygems
- sudo gem安装ceedling#测试
构建内核
make all - 构建内核make run - 在QEMU中运行内核并在必要时构建(仅x86_64)-
make kvm用KVM在QEMU中运行内核,并在必要时构建(仅x86_64) -
kvm的命令行选项并run :-
modern=yes - 模拟现代功能(仅x86_64)
配置体系结构:
我的旅程:(新来者的灵感)
我一直想制作一个操作系统,所以有一天我决定建造一个。事实证明,这是很多工作,那时候它完全让我不知所措,以至于我花了很长时间(几个月),因为信息是如此稀缺,而且几乎没有过时的信息已经过时了。
在我的操作系统开发学习经验期间,我写了大约4个“内核”,每次我开始开始,因为我太不知所措了 - 没有一个人超越了GDT:/(哎呀,有些只是引导加载程序称为内核条目并循环循环)
如果您是一个初学者,希望了解此代码在做什么以及如何使用最新信息编写自己的内核,请加入Osdev Discord Server(底部的Osdev Wiki链接),并且一开始就很难放弃。
大约8个月前,我已经开始开发内核(在两者之间进行了多个月的休息时间),但我仍然有很多东西要学习,但是我的try harder证明,在帮助我度过挣扎并写下我不必从教程或缺乏知识的其他项目中窃取代码或复制代码的内核很有用。
我希望这能激发您在事情似乎难以管理时使用这种心态。
祝您好运〜V01D(Tim)。
特别感谢
- 感谢lowlevel.eu或osdev wiki等网站,但也可以在Github和Discord上进行一些很酷且非常有用的OS开发人员。
终点(我使用的资源)
- https://www.cs.cmu.edu/~alrf/files.html
- https://ethv.net/workshops/osdev/notes/notes-3.html
- https://osdev.wiki(排骨,但最新的Osdev Wiki)
- https://wiki.osdev.org