Drew DeVault, Autor der BenutzeroberflÀche Sway, des E-Mail-Clients Aerc, der Plattform zur gemeinsamen Entwicklung SourceHut und der Programmiersprache Hare, berichtete, dass er seine eigene Implementierung eines UNIX-Klons in nur 27 Tagen schreiben konnte. Der Autor nannte sein Betriebssystem Bunnix.
Das System ist ein monolithisches Unix-Ă€hnliches Betriebssystem, das in Hare mit kleinen EinschlĂŒssen in C geschrieben wurde.
Im Userspace wurde eine Sammlung der folgenden Werkzeuge erstellt:
- dash ( /bin/sh )
- gzip
- less (Pager)
- lok ( /bin/awk )
- lolcat
- mandoc (man-Seiten)
- sbase (Kernel-Dienstprogramme)1
- tcc (C-Compiler)
- Vim 5.7
Zur Demonstration der Möglichkeiten des Systems wurden auch die Spiele Doom und Colossal Cave Adventure zusammengestellt.
Das System kann mit QEmu gestartet oder auf einen USB-Stick geschrieben werden. Der direkte Zugriff auf den USB-Stick wird nicht unterstĂŒtzt, daher muss auf echter Hardware eine PS2/Tastatur verwendet werden. Im Kernel werden folgende Treiber unterstĂŒtzt:
- PCI,
- AHCI-GerÀte,
- GPT- und MBR-Partitionstabellen,
- PS/2-Tastatur,
- serielle Ports der Plattform,
- CMOS-Uhren,
- Framebuffer,
- Dateisystem ext4 und memfs (ĂŒber lwext4).
Die Kernel-Funktionen umfassen:
- eine virtuelle Dateisystem,
- /dev, /dev/kbd Đž /dev/fb0,
- serielle und VideoTTY,
- Steuerterminal /dev/tty,
- Terminal-Emulator,
- termios,
- ca. 40 Systemaufrufe (clock_gettime, poll, openat, fork, exec, Pipe, dup, dup2, ioctl usw.)
Der Autor hat dieses Projekt aus persönlichem Interesse ins Leben gerufen und plant nicht, es weiterzuentwickeln. Es interessierte ihn, wie einfach es ist, einen Kernel zu schreiben und Drittanbieter-Software mit modernen Werkzeugen zu portieren. Laut dem Entwickler war es relativ einfach, Drittanbieter-Software zu portieren, da seine libc auf musl libc basierte, wodurch die Mechanismen der libc leicht an die Arbeit mit Bunnix angepasst werden konnten.
Quelle: linux.org.ru
