Wprowadzenie Rust do jądra Linux: Oświadczenie Griega Kroaha-Hartmana i Keisa Cooka

Wprowadzenie Rust do jądra Linux: Oświadczenie Griega Kroaha-Hartmana i Keisa Cooka

Greg Kroah-Hartman, odpowiedzialny za wsparcie stabilnej gałęzi jądra Linux, wyraził poparcie dla rozwoju nowych komponentów jądra w języku Rust. Jako osoba, przez którą przez ostatnie 15 lat przechodziła cała dokumentacja błędów i podatności w jądrze Linux, twierdzi, że większość błędów w jądrze wynika z niewłaściwie obsługiwanych przypadków w języku C (tzw. corner case), które zostałyby całkowicie wykluczone w kodzie napisanym w języku Rust.

Zastosowanie Rust pozwoliłoby na pozostawienie w przeszłości takich problemów, jak dostęp do pamięci po jej zwolnieniu, przepełnienie bufora (częściowo), błędne zwalnianie zasobów podczas obsługi błędów oraz zapomniane kontrole kodów błędów, co pozwoliłoby maintainerom skupić się na rzeczywistych błędach, takich jak stany wyścigu i problemy z logiką, a nie rozpraszać uwagę przy przeglądach kodu na drobnostki.

Już istniejący, stary kod w języku C nie zniknie, natomiast w przypadku nowego kodu i nowych sterowników, wprowadzenie Rust pozwoli znacznie poprawić jakość. Wprowadzenie Rust umożliwi także lepszą strukturalizację wewnętrznych interfejsów API jądra, co praktycznie wykluczy błędy wynikające z nieprawidłowego używania API – w jądrze zgromadziło się zbyt wiele skomplikowanych i zawiłych interfejsów, co tworzy dużą presję na maintainerów, którzy muszą sprawdzać, czy te API są używane poprawnie. W trakcie rozwoju powiązań Rust, maintainerzy będą mieli możliwość przemyślenia i uporządkowania API, co przyniesie korzyści wszystkim, w tym użytkownikom języka C.

Greg nie uważa Rust za „srebrną kulę”, która rozwiąże wszystkie problemy w jądrze, ale jest przekonany, że ten język pomoże w wielu sytuacjach. Wsparcie dla Rust zaspokoi także potrzeby programistów sterowników, którzy liczą na narzędzie pozwalające na pisanie kodu dla ich sprzętu, eliminując wiele rodzajów błędów. Co do łączenia różnych języków, Greg nie widzi w tym większego problemu, jego zdaniem, w przeszłości deweloperzy jądra radzili sobie z bardziej skomplikowanymi zadaniami, więc nie ma powodu, by odrzucać wprowadzenie nowych, dobrych pomysłów, które mogą pomóc zapewnić sukces projektu na następne 20+ lat.

Do dyskusji dołączył również Kees Cook, były główny administrator systemów kernel.org oraz lider zespołu bezpieczeństwa Ubuntu Security Team. Kees doprecyzował, że nie chodzi o przepisywanie istniejącego kodu w jądrze, lecz o umożliwienie korzystania z Rust do tworzenia nowych sterowników i podsystemów. Zastosowanie Rust w nowym kodzie pozwoli nie tylko na zmniejszenie liczby błędów związanych z pamięcią, ale także na skrócenie czasu rozwoju. Prędkość rozwoju wzrasta dzięki zmniejszeniu nakładu pracy na debugowanie i dzięki ścisłym gwarancjom w języku, które pozwalają na wykrywanie błędów na wczesnym etapie pisania kodu, jeszcze przed rozpoczęciem testowania produktu.

Skuteczność taktyki wykorzystania Rust do poprawy jakości nowego kodu została już udowodniona przez Google na platformie Android. Pokazano, że głównym źródłem problemów z bezpieczeństwem jest nowy kod, a poprawie jego jakości należy poświęcać szczególną uwagę. W przypadku starego kodu zaobserwowano wykładniczą zależność bezpieczeństwa od czasu (na przykład, 5-letni kod w średniej posiada 3,4 razy mniejszą gęstość podatności niż nowy kod).

Dodatkowo: Lider projektu Asahi Linux rezygnuje z pracy nad projektem po problemach z promowaniem Rust w jądrze Linux.

Avatar
May 14

Microsoft udostępnił .NET 10 Preview 4 – co nowego?

Microsoft opublikował czwartą wersję poglądową platformy .NET 10, skupiając się na usprawnieniach bibliotek, środowiska uruchomieniowego i narzędzi programistycznych.
0
Apr 17

XChat ma zastąpić wiadomości prywatne w X (dawniej Twitter)

Platforma X przygotowuje się do całkowitego wyłączenia funkcji wiadomości prywatnych (DM), zastępując je nowym systemem o nazwie XChat.
0
Jun 25

Google Earth obchodzi 20-lecie. Z tej okazji usługa zyskała nowe funkcje analityczne

Google świętuje 20-lecie Earth — platformy do eksploracji danych przestrzennych. Z tej okazji usługa zyskała nowe funkcje, które rozszerzają możliwości analizy przestrzennej. Użytkownicy mogą teraz przeglądać archiwalne zdjęcia Street View bezpośrednio w Earth i śledzić zmiany krajobrazu w danym miejscu na przestrzeni lat.
0

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies