[NEW] Search for a job anonymously — check the details
Close
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 1

Platforma X traci miliony użytkowników w Unii Europejskiej

Zgodnie z najnowszym raportem opublikowanym przez platformę X w ramach wymagań unijnego aktu o usługach cyfrowych (Digital Services Act), liczba użytkowników serwisu społecznościowego w Europie spadła o ponad 10,5% w ciągu zaledwie pół roku. To oznacza ubytek ponad 11 milionów aktywnych użytkowników miesięcznie – podaje Mashable.
0
Sep 14, 2023

RustRover — nowe IDE JetBrains dla programistów Rust

Firma JetBrains zaprezentowała własne samodzielne IDE dla języka Rust — RustRover. Od lat pracowali nad dodaniem wsparcia dla funkcjonalności Rust w formie wtyczki, która działa zarówno w IntelliJ IDEA, jak i CLion.
0
Mar 4

Super Mario Bros. jako nowy benchmark dla AI – które modele radzą sobie najlepiej?

Wydawało się, że Pokémon jest trudnym testem dla AI, ale badacze twierdzą, że Super Mario Bros. stanowi jeszcze większe wyzwanie. Hao AI Lab, jednostka badawcza Uniwersytetu Kalifornijskiego w San Diego, przeprowadziła eksperyment, w którym różne modele AI próbowały pokonać kultową grę Nintendo z 1985 roku.
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