月亮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