Opublikowano czwartą wersję poprawek do obsługi sterowników Rust w systemie Linux

Miguela Ojedy, autor projektu Rust-for-Linux, Teme zaprezentował niedawno czwartą propozycję dla komponenty sterownika urządzenia Rust dla programistów jądra Linuksa do rozważenia.

Wsparcie dla rdzy jest uważane za eksperymentalne, ale zostało już uzgodnione, że zostanie włączone do gałęzi linux-next i jest wystarczająco dojrzałe, aby rozpocząć pracę nad warstwami abstrakcji nad podsystemami jądra, a także pisaniem sterowników i modułów. Rozwój jest finansowany przez Google i ISRG (Internet Security Research Group), która jest założycielem projektu Let's Encrypt i promuje HTTPS oraz rozwój technologii zwiększających bezpieczeństwo w Internecie.

Ci, którzy wciąż nie wiedzą o proponowanych zmianach, powinni wiedzieć, że to one umożliwiają wykorzystanie Rust jako drugiego języka do tworzenia kontrolerów i modułów jądra. Obsługa Rusta jest prezentowana jako opcja, która nie jest domyślnie włączona i nie powoduje włączenia Rusta do wymaganych zależności kompilacji dla jądra.

Wykorzystanie Rust do rozwoju sterowników pozwoli Ci stworzyć lepsze i bezpieczniejsze sterowniki przy minimalnym wysiłku, bez problemów, takich jak dostęp do obszaru pamięci po jego zwolnieniu, wyłuskiwanie wskaźników zerowych i przepełnienia bufora.

Bezpieczeństwo pamięci jest zapewniane w Rust w czasie kompilacji poprzez sprawdzanie referencji, śledzenie własności obiektu i czasu życia obiektu (zakres), a także poprzez ocenę poprawności dostępu do pamięci podczas wykonywania kodu.

Rust zapewnia również ochronę przed przepełnieniem liczb całkowitych, wymaga zainicjowania zmiennych przed użyciem, lepiej radzi sobie z błędami w standardowej bibliotece, domyślnie wymusza koncepcję niezmiennych zmiennych i referencji oraz oferuje silne statyczne typowanie w celu zminimalizowania błędów logicznych.

Jakie zmiany w czwartej odsłonie?

W tej nowej wersji łatek, które są prezentowane, wspomina się, że komentarze zgłoszone podczas dyskusji nad pierwszą, drugą i trzecią edycją łatek nadal były eliminowane.

Będziemy aktualizować, dopóki nie będziemy polegać na żadnych niestabilnych funkcjach;
w którym momencie możemy zacząć deklarować minimalną wersję Rusta
jest obsługiwany, tak jak ma to miejsce na przykład dla GCC i Clang.

Podobnie przenieśliśmy się również na edycję 2021 języka Rust.

Jeśli chodzi o inne zmiany, które zostały wprowadzone w tej nowej wersji, ogłoszenie zawiera następujące informacje:

  • Przeszedł na używanie stabilnego Rust 1.58.0 jako kompilatora referencyjnego.
  • Zmiany wymagane w projekcie, które nie zostały jeszcze uwzględnione w głównym zestawie narzędzi Rust, obejmują flagę „-Zsymbol-mangling-version=v0” (spodziewaną w Rust 1.59.0) i tryb „maybe_uninit_extra” (oczekiwany w Rust 1.60.0) .
  • Dodano automatyczne sprawdzanie dostępności narzędzi Rusta i ich przydatności, a także rozszerzono możliwość testowania obsługi Rusta w systemie.
  • Zaproponowano nowe abstrakcje, aby móc uzyskać dostęp do tablic identyfikatorów urządzeń ("IdArray" i "IdTable") z kodu Rusta.
  • Dodano warstwy do wywoływania funkcji związanych z zegarem (ramka zegara).
  • Kontrolery platformy są teraz definiowane za pomocą implementacji cech.
  • Dodano nowe makro w celu uproszczenia rejestracji sterownika platformy i zaproponowano nowy szablon ogólny sterownika.
  • Dodano nowe makra dla struktur „dev_*”.
  • Dodano nowe metody „{read,write}*_relaxed” dla typu IoMem .
  • Usunięto właściwość FileOpener w celu uproszczenia operacji na plikach.
  • Dodano parametr „ThisModule” do liczby argumentów przekazywanych podczas rejestracji kontrolera.
  • Proponowany jest typowy szablon do tworzenia modułów jądra w języku Rust.

Na koniec, jeśli chcesz dowiedzieć się więcej o tej nowej wersji, 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.