Druga wersja łatek do obsługi sterowników Rust w systemie Linux została już wysłana

W marcu tego roku na oddziale linux-next który w tamtym czasie działał dla jądra Linux 5.13, Dołączono początkowy zestaw komponentów do opracowania sterowników urządzeń w device język Rust, a teraz poproszono o dołączenie drugiego wydania łatek, aby dodać obsługę Rust do jądra Linuksa.

Osobą, która wysłała prośbę do programistów Linuksa, jest Miguel Ojeda, autor projektu Rust-for-Linux, o którym również rozmawialiśmy kilka dni temu, ponieważ został zatrudniony do kierowania projektem „Prossimo”, który zasadniczo koncentruje się na koordynowaniu wysiłków zmierzających do przeniesienia krytycznej infrastruktury oprogramowania do bezpiecznego kodu, aby zabezpieczyć pamięć jądra Linuksa za pomocą Rust (jeśli chcesz dowiedzieć się więcej o projekcie, możesz skonsultować publikowanie pod poniższym linkiem.)

Rusty sterowniki w systemie Linux
Podobne artykuł:
Prossimo, projekt ISRG mający na celu zabezpieczenie pamięci jądra Linuksa za pomocą Rust

Prośba przesłana przez Miguela Ojedę jest drugą zaktualizowaną wersją komponentów do tworzenia sterowników urządzeń w języku Rust, w których usuwane są komentarze poczynione podczas dyskusji nad pierwszą wersją łatek i do których Linus Torvalds już przyłączył się do dyskusji i zasugerował zmianę logiki w celu przetwarzania niektórych operacji bitowych.

Wewnątrz korzyści które są wymienione są to bezpieczne zarządzanie pamięcią jest gwarantowane w Rust w czasie kompilacji, sprawdzając referencje, śledząc własność obiektu i czas życia obiektu, a także oceniając poprawność dostępu do pamięci w czasie wykonywania.

Rdza również zapewnia ochrona przed przepełnieniem liczb całkowitych, wymaga obowiązkowej inicjalizacji wartości zmiennych przed użyciem, lepiej radzi sobie z błędami w standardowej bibliotece, domyślnie przyjmuje koncepcję referencji i niezmiennych zmiennych oraz oferuje silny zapis statyczny w celu zminimalizowania błędów logicznych.

O zmianach, które się wyróżniają tej nowej wersji łat, o której mowa:

  • Kod alokacji pamięci zapobiega możliwości generowania paniki w przypadku wystąpienia błędów, takich jak brak pamięci.
  • Jest wliczony w cenę wariant biblioteki Rust alloc, w której kod został przerobiony do obsługi zamków, ale ostatecznym celem jest wprowadzenie wszystkich niezbędnych funkcji jądra do głównej edycji alloc (zmiany zostały już przygotowane i przeniesione do standardowej biblioteki Rust).
  • Zamiast nocnych kompilacji można teraz używać wersji beta i stabilnej kompilator rustc do kompilacji jądra obsługującego rdzę. Obecnie rustc 1.54-beta1 jest używany jako kompilator referencyjny, ale po wydaniu 1.54 pod koniec miesiąca będzie obsługiwany jako kompilator referencyjny.
  • Dodano obsługę pisania testów przy użyciu standardowego atrybutu Rusta "# [test]" oraz możliwość używania doctestów do używania przykładowego kodu z dokumentacji jako testów.
  • Oprócz obsługiwanych wcześniej x32_86 i ARM64 dodano obsługę architektur ARM64 i RISCV.
    Ulepszone implementacje GCC Rust (frontend GCC dla Rusta) i rustc_codegen_gcc (backend rustc dla GCC), które teraz przechodzą wszystkie testy porównawcze.
  • ZA nowy poziom abstrakcji dla programów Rust do korzystania z mechanizmów jądra napisanych w C, takich jak drzewa, obiekty zliczania referencji, tworzenie deskryptorów plików, zadań, plików i wektorów I/O.
  • Komponenty programistyczne sterowników poprawiły obsługę modułu „file_operations”, makra „moduł!”, rejestrowania makr i podstawowych sterowników (sonda i usuwanie).
  • Binder obsługuje przekazywanie deskryptorów plików i łączy LSM.
  • Bardziej funkcjonalny przykład sterownika Rust, bcm2835-rng, jest proponowany dla sprzętowego generatora liczb losowych dla płyt Raspberry Pi.

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: AB Internet Networks 2008 SL
  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.