Kerla: nowe jądro napisane w Rust i kompatybilne z Linux ABI

Niedawno pojawiły się informacje o projekcie Kerla, który jest rozwijany jako jądro systemu operacyjnego napisane w języku Rust. Kod jest rozpowszechniany na licencjach Apache 2.0 i MIT. Projekt rozwija japoński deweloper Seiya Nuta, znany ze stworzenia mikrojądra systemu operacyjnego Resea, napisanego w języku C.

Nowe jądro ma początkowo na celu zapewnić kompatybilność z jądrem Linux na poziomie ABI, co pozwoli niezmodyfikowanym plikom binarnym zbudowanym dla Linuksa działać w środowisku opartym na Kerla.

O Kerali

Kerla to monolityczne jądro systemu operacyjnego stworzony od podstaw w Rust. Na obecnym etapie rozwoju Kerla można uruchomić tylko na systemach o architekturze x86_64 i implementuje podstawowe wywołania systemowe, takie jak write, stat, mmap, pipe i poll, obsługuje sygnały, nienazwane potoki i przełączniki kontekstu. Wywołania takie jak fork, wait4 i execve zapewniają kontrolę procesów. Jest wsparcie dla tty i pseudoterminali (pty). Wśród systemów plików initramfs (używanych do montowania głównego FS) nadal obsługiwane są tmpfs i devfs.

Dostępny jest również stos sieciowy z obsługą gniazd TCP i UDP, Na podstawie biblioteki smoltcp. Deweloper przygotował środowisko rozruchowe, które działa w QEMU lub Firecracker VM ze sterownikiem virtio-net, z którym można się już połączyć przez SSH. Musl jest używany jako biblioteka systemowa, a BusyBox jest używany jako narzędzie użytkownika. W oparciu o Docker przygotowano system budowania, który pozwala na stworzenie własnego rozruchu initramfs z jądrem Kerla.

Jak dotąd podano niewiele szczegółów na temat jej nowego jądra, ale to, co zwraca największą uwagę na cechy Kerli, to fakt, że jest napisane w języku Rust. Czy pisanie tego w Rust ma więc jakąś przewagę nad innymi językami lub istniejącym kodem? Wielu odpowiedziało twierdząco na to pytanie, podkreślając korzyści związane z bezpieczeństwem pamięci, jakie zapewnia język.

Jest on również udostępniany podczas oceny dokładności dostępu do pamięci w czasie wykonywania. Co więcejMozilla uważa, że ​​Rust zapewnia ochronę przed przepełnieniami liczb całkowitych, wymaga obowiązkowej inicjalizacji wartości zmiennych przed użyciem, domyślnie przyjmuje koncepcję referencji i zmiennych niezmiennych, oferuje silne statyczne typowanie w celu zminimalizowania błędów logicznych i upraszcza przetwarzanie danych wejściowych poprzez dopasowywanie wzorców.

Wśród zalet wyróżniamy zintegrowane narzędzia do oceny jakości kodu oraz tworzenie testów jednostkowych, które można uruchomić nie tylko na prawdziwym sprzęcie, ale także na QEMU. Zasadniczo Mozilla uważa, że ​​Rust jest łatwiejszy do debugowania, ponieważ kompilator odrzuca błędy. Jednak zatoczki wskazywały na pewne wady Rust.

„Podobnie jak w przypadku C++, prawie niemożliwe jest napisanie idiomatycznego Rusta bez użycia szablonów, więc ma on nadęte pliki binarne i powolne czasy kompilacji. Wszystkie te kontrole w czasie kompilacji również mają swoją cenę. Ponadto, jeśli coś przepiszesz, tracisz starą, dojrzałą bazę kodu i nie ma możliwości, aby stworzyć bazę kodu o podobnej jakości w rozsądnym czasie; znacznie lepiej jest rozszerzyć, niż przepisać program w Ruście. Lepiej jest rozszerzyć program, niż przepisać go w Rust ”- mówi inżynier oprogramowania.

Według jego twórcy, właśnie z tego powodu twórcy Linuksa w szczególności sam Linus Torvalds, odrzucili pomysł przepisania całego jądra w Rust.

„Wykonaj trochę pracy, aby utworzyć bezpieczne łącza, a następnie napisz dodatkowy kod w Rust i nadal możesz cieszyć się tym dojrzałym kodem. (To właśnie robi Linux, są wysiłki, aby dodać możliwość pisania modułu jądra w Rust) ”dodał. Deweloperzy Linuksa od około trzech lat badają możliwości napisania niektórych nowych modułów jądra przy użyciu języka Rust. Dało to początek projektowi »Rust for Linux«.

Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.