Drew DeVault, auteur van de gebruikersomgeving Sway, de mailclient Aerc, het samenwerkingsplatform SourceHut en de programmeertaal Hare, meldde dat hij in staat was om zijn eigen implementatie van een UNIX-kloon in slechts 27 dagen te schrijven. De auteur noemde zijn besturingssysteem Bunnix.
Het systeem is een monolithisch Unix-achtig besturingssysteem, geschreven in Hare met kleine toevoegingen van de programmeertaal C.
In de gebruikersruimte zijn de volgende tools verzameld:
- dash (/bin/sh)
- gzip
- less (pager)
- lok (/bin/awk)
- lolcat
- mandoc (man-pagina's)
- sbase (core utils)1
- tcc (C-compiler)
- Vim 5.7
Ook zijn er spellen Doom en Colossal Cave Adventure verzameld ter demonstratie van de mogelijkheden van het systeem.
Het systeem kan worden opgestart met QEmu of op een USB-stick worden gezet. Het gebruik van de USB zelf wordt niet ondersteund, dus op echte hardware moet een PS2/toetsenbord worden gebruikt. In de kernel worden de volgende stuurprogramma's ondersteund:
- PCI,
- AHCI-apparaten,
- GPT- en MBR-partitietabellen,
- PS/2-toetsel,
- seriƫle poorten van het platform,
- CMOS-klokken,
- framebuffer,
- bestandssysteem ext4 en memfs (via lwext4).
De kernelfuncties omvatten:
- virtueel bestandssysteem,
- /dev, /dev/kbd Šø /dev/fb0,
- serieel en VideoTTY,
- beheerterminal /dev/tty,
- emulator van de terminal,
- termios,
- ongeveer 40 systeemaanroepen (clock_gettime, poll, openat, fork, exec, Pipe, dup, dup2, ioctl, enz.)
De auteur heeft dit project uit eigen belang gemaakt en is niet van plan het verder te ontwikkelen. Hij was nieuwsgierig hoe eenvoudig het zou zijn om een kernel te schrijven en externe software te porteren met behulp van moderne tools. Zoals de ontwikkelaar zegt, was het relatief eenvoudig om externe software te porteren omdat zijn libc was gebaseerd op musl libc, waardoor de mechanismen van libc eenvoudig konden worden aangepast voor gebruik op Bunnix.
Bron: linux.org.ru
