Drew DeVault, autore dell'ambiente utente Sway, del client email Aerc, della piattaforma di sviluppo collaborativo SourceHut e del linguaggio di programmazione Hare, ha comunicato di essere riuscito a scrivere una propria implementazione di un clone di UNIX in soli 27 giorni. L'autore ha chiamato il suo sistema operativo Bunnix.
Il sistema è un sistema operativo monolitico simile a Unix, scritto in Hare con piccole inclusioni del linguaggio C.
Nel user space è stata assemblata la seguente serie di strumenti:
- dash (/bin/sh)
- gzip
- less (pager)
- lok (/bin/awk)
- lolcat
- mandoc (pagine man)
- sbase (core utils)1
- tcc (compilatore C)
- Vim 5.7
Per dimostrare le capacità del sistema, sono stati assemblati anche i giochi Doom e Colossal Cave Adventure.
Il sistema può essere avviato tramite QEmu o impresso su una USB. L'interazione diretta con la USB non è supportata, pertanto su hardware reale è necessario utilizzare PS2/tastiera. Il kernel supporta i seguenti driver:
- PCI,
- dispositivi AHCI,
- tabelle di partizione GPT e MBR,
- tastiera PS/2,
- porte seriali,
- orologi CMOS,
- framebuffer,
- sistema di file ext4 e memfs (tramite lwext4).
Le funzionalità del kernel includono:
- sistema di file virtuale,
- /dev, /dev/kbd и /dev/fb0,
- serali e VideoTTY,
- terminale di controllo /dev/tty,
- emulatore di terminale,
- termios,
- circa 40 chiamate di sistema (clock_gettime, poll, openat, fork, exec, Pipe, dup, dup2, ioctl, ecc.)
L'autore ha realizzato questo progetto per interesse personale e non intende svilupparlo ulteriormente. Era curioso di sapere quanto fosse facile scrivere un kernel e portare software di terze parti utilizzando strumenti moderni. Come afferma lo sviluppatore, il software di terze parti è stato relativamente facile da portare grazie al fatto che la sua libc era basata su musl libc, il che ha reso relativamente semplice adattare i meccanismi libc per l'uso su Bunnix.
Fonte: linux.org.ru
