Jądro Maestro napisane w Rust i częściowo zgodne z Linuxem

Przedstawiono projekt dotyczący opracowania lekkiego rdzenia Unix-podobnego w języku Rust, implementującego podzbiór wywołań systemowych rdzenia Linux, wystarczający do tworzenia typowych środowisk roboczych. Projekt został stworzony w 2018 roku i początkowo używał języka C, jednak w 2020 roku został całkowicie rozpoczęty od nowa z uwzględnieniem zdobytego doświadczenia i przeszedł na Rust, aby zredukować prawdopodobieństwo popełnienia błędów związanych z zarządzaniem pamięcią. Kod rdzenia jest udostępniany na licencji MIT. Oprócz rdzenia, projekt w języku Rust obejmuje również rozwój X11,serwer, menedżera pakietów, bootloader, instalator, zbiory narzędzi oraz inne komponenty potrzebne do budowy systemu operacyjnego.

Rdzeń ma architekturę monolityczną i obecnie wspiera jedynie systemy x86 w trybie 32-bitowym. Baza kodu rdzenia liczy 48,8 tysiąca linii kodu (dla porównania, w jądrze Linux znajduje się 33 miliony linii kodu). Możliwy jest start w QEMU, VirtualBox lub na sprzęcie. Na obecnym etapie rozwoju w Maestro zaimplementowano 31% (135 z 437) wywołań systemowych Linux, co wystarcza do uruchomienia konsolowego środowiska opartego na bashu oraz standardowej biblioteki C Musl. W środowisku opartym na Maestro mogą być również uruchamiane niektóre narzędzia z pakietu GNU coreutils, takie jak ls, cat, mkdir, rm, rmdir, uname i whoami.

Jądro Maestro napisane w Rust i częściowo zgodne z Linuxem

Wśród dostępnych możliwości Maestro:

  • Sterowniki dla klawiatury PS/2 i terminala z trybem tekstowym oraz częściowym wsparciem dla sekwencji ANSI.
  • System przydzielania pamięci z obsługą pamięci wirtualnej.
  • Szeregowiec zadań oparty na algorytmie round-robin z obsługą sygnałów POSIX.
  • Wykrywanie urządzeń PCI.
  • Sterownik IDE/PATA.
  • System plików Ext2.
  • Wsparcie dla wirtualnych systemów plików /tmp i /proc.
  • Wsparcie dla montowania systemów plików i partycji dyskowych MBR i GPT.
  • Wsparcie dla initramfs.
  • Sterownik RTC dla timera i dokładnego czasu.
  • Wsparcie dla ładowania modułów jądra.
  • Możliwość uruchamiania plików wykonywalnych w formacie ELF.

Obecnie prowadzone są prace nad stworzeniem stosu sieciowego, po ukończeniu którego planowane jest wprowadzenie wsparcia dla bezpośredniego mapowania plików w pamięci i bibliotek współdzielonych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster