Projektet for udvikling af et let Unix-lignende kerne i Rust-sprog er præsenteret, som implementerer et undersæt af systemopkald fra Linux-kernen, tilstrækkeligt til at skabe typiske arbejdsomgivelser. Projektet blev oprettet i 2018 og anvendte i starten C-sprog, men blev i 2020 fuldstændig genstartet fra bunden med hensyntagen til den samlede erfaring og skiftede til Rust for at reducere sandsynligheden for fejl under arbejdet med hukommelse. Koden til kernen distribueres under MIT-licensen. Udover kernen udvikles der også X11-server, en pakkehåndtering, bootloader, installationsprogram, et sæt værktøjer og andre komponenter, der er nødvendige for at bygge et operativsystem.
Kernen har en monolitisk arkitektur og understøtter i øjeblikket kun x86-systemer i 32-bit tilstand. Kodebasen for kernen består af 48,8 tusinde linjer kode (til sammenligning har Linux-kernen 33 millioner linjer kode). Det er muligt at køre i QEMU, VirtualBox eller på hardware. På nuværende udviklingsstadium understøtter Maestro 31% (135 ud af 437) af Linux-systemopkaldene, hvilket er tilstrækkeligt til at indlæse et konsolmiljø baseret på bash og den standard C-bibliotek Musl. I Maestro-baserede miljøer kan nogle værktøjer fra GNU coreutils køre, såsom ls, cat, mkdir, rm, rmdir, uname og whoami.

Blandt de tilgængelige funktioner i Maestro:
- Drivere til PS/2 tastatur og terminal med tekstmode og delvis understøttelse af ANSI-sekvenser.
- Et hukommelsesdistributionssystem, der understøtter virtuel hukommelse.
- En round-robin opgavestyrer, der understøtter POSIX-signaler.
- Identifikation af PCI-enheder.
- IDE/PATA-driver.
- Filsystemet Ext2.
- Understøttelse af virtuelle filsystemer /tmp og /proc.
- Understøttelse af montering af filsystemer og diskpartitioner MBR og GPT.
- Understøttelse af initramfs.
- RTC-driver til timer og præcist tidsmål.
- Understøttelse af indlæsning af kernelmoduler.
- Mulighed for at køre eksekverbare filer i ELF-format.
Der arbejdes i øjeblikket på at skabe et netværksstack, hvorefter der planlægges at implementere støtte til direkte mapping af filer i hukommelsen og delte biblioteker.
Kilde: opennet.ru
