Учебный проект по созданию графической операционной системы на D (и частично на языке ассемблера).

https://github.com/gecko0307/dios

Я начал писать ядро DIOS в середине 2010-х, тогда еще на D1 и GDC (это был единственный рабочий системный тулчейн). Некоторое время проект был в заброшенном состоянии, но впоследствии я его актуализировал, переписав на D2 под LDC, сменив загрузчик на GRUB2 и попутно добавив новые функции. Также удалось портировать ядро на x86_64.

В настоящее время DIOS загружается по протоколу Multiboot в графическом режиме VESA 640×480 (либо по протоколу Limine с фреймбуфером GOP в 64-битной UEFI-версии), поддерживает PIT-таймер и ввод с клавиатуры и мыши (PS/2). Система выводит на экран логотип и позволяет управлять курсором. Больше пока ничего не реализовано 😉

Система тестировалась на реальном железе и в эмуляторах VirtualBox и QEMU. В качестве загрузчика используется GRUB2 (для 64-битной версии — Limine). Скрипт сборки создает загрузочный CD-образ, но можно также создать загрузочную флешку — я для этого рекомендую Ventoy. Достаточно просто скопировать dios.iso на флешку с записанным Ventoy.

Для сборки нужны:

  • Компилятор LDC
  • Ассемблер NASM
  • Утилита mkisofs для создания ISO-образа (либо xorriso для сборки 64-битной версии)