Projekt Moss rozwija jądro zgodne z Linuxem w języku Rust

Po 8 miesiącach prac nad rozwojem opublikowano pierwszy prototyp jądra podobnego do Unix, Moss, częściowo zgodnego z Linuxem. Kod napisany jest w języku Rust z wstawkami assemblerowymi i jest rozpowszechniany na licencji MIT. Obecnie projekt wspiera tylko architekturę Aarch64, można go uruchamiać w QEMU, a testowano go na płytach Raspberry Pi 4, Jetson Nano, AMD Kria i imx8. Według twórców jądro może być łatwo przeniesione na inne architektury, takie jak x86_64 i RISC-V, dzięki warstwie do abstrakcji wsparcia sprzętowego.

Na tym etapie rozwoju w Moss zaimplementowano 51 wywołań systemowych Linux i zapewniono binarną zgodność z aplikacjami dla Linuxa, wystarczającą do uruchomienia powłoki Bash i większości narzędzi z zestawu BusyBox. Wśród cech architektury Moss wyróżnia się wykorzystanie modelu async/await dla zapewnienia asynchronicznego wykonania komponentów jądra, co wyklucza główne klasy wzajemnych blokad. W formie asynchronicznie wykonywanych funkcji zostały zaimplementowane wszystkie nietrywialne wywołania systemowe.

Podstawowe funkcje:

  • System zarządzania pamięcią z wsparciem dla stron pamięci w trybie CoW (Copy-on-Write), tabel stron pamięci, asynchronicznych funkcji kopiowania pamięci między jądrem a przestrzenią użytkownika, obsługi wyjątków (page fault) po stronie jądra i przestrzeni użytkownika.
  • System zarządzania procesami z harmonogramem zadań i wsparciem dla migracji zadań przez IPI (inter-processor interrupt). Wsparcie dla tworzenia procesów za pomocą wywołania clone(). Możliwości dostarczania sygnałów do procesów i wątków.
  • Asynchronicznie działająca warstwa VFS (Virtual File System), urządzenie blokowe Ramdisk, sterownik FAT32 oraz urządzenie devtmpfs.
  • Ekstrakcja podstawowej funkcjonalności do biblioteki libkernel, niezwiązanej z architekturami sprzętowymi.
  • Warstwa HAL (Hardware Abstraction Layer) dla zapewnienia wsparcia sprzętowego.
  • Zestaw testów składający się z ponad 230 testów.

Wśród istotnych ograniczeń wymienia się brak systemu sieciowego oraz obecność jedynie okrojonego sterownika systemu plików, wspierającego system plików Fat32 w trybie tylko do odczytu. Wśród priorytetowych zadań wymieniono kontynuację realizacji wywołań systemowych Linux, stworzenie stosu TCP/IP, wsparcie dla równoważenia obciążenia w harmonogramie zadań oraz zapewnienie pełnowartościowego sterownika systemu plików (ext2/4).

Ź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