Josh Triplett, który pracuje w firmie Intel i jest członkiem komisji nadzorującej rozwój Crates.io, przemawia na szczycie technologii Open Source
W grupie roboczej, która jest w trakcie tworzenia, programiści Rusta wraz z inżynierami z Intela przygotują specyfikacje określające funkcjonalność, którą należy zaimplementować w Rust do programowania systemów. Programowanie systemu często wymaga manipulacji na niskim poziomie, takich jak wykonywanie instrukcji procesora uprzywilejowanego i uzyskiwanie szczegółowych informacji o stanie procesora. Spośród podobnych funkcji już opracowanych dla Rusta zauważono obsługę nienazwanych struktur, unii, wstawek w języku asemblera (makro „asm!”) i formatu liczb zmiennoprzecinkowych BFLOAT16.
Josh uważa, że przyszłość programowania systemowego należy do Rusta, a język C we współczesnych realiach zajmuje miejsce, które w ubiegłych latach zajmował Assembly. Rdza
nie tylko uwalnia programistów od problemów właściwych językowi C, które powstają w wyniku pracy na niskim poziomie z pamięcią, ale także zapewnia możliwość wykorzystania jej w rozwoju nowoczesnych paradygmatów programowania.
Podczas
Josh wpadł na pomysł dodania możliwości rozwijania sterowników w jądrze Linuksa w języku Rust, co umożliwiłoby tworzenie bezpieczniejszych i lepszych sterowników przy minimalnym wysiłku, wolnych od problemów takich jak dostęp do pamięci po zwolnieniu, null dereferencje wskaźników i przepełnienia bufora.
Greg Kroah-Hartman odpowiedzialny za utrzymanie stabilnej gałęzi jądra Linuksa wyraził gotowość dodania do jądra frameworku do tworzenia sterowników w języku Rust, jeśli będzie on miał realną przewagę nad C, np. zapewni bezpieczne powiązania przez API jądra. Ponadto Greg uważa ten framework jedynie za opcję, domyślnie nieaktywną, aby nie uwzględniać Rusta jako zależności kompilacji od jądra.
Okazało się, że w tym kierunku pracuje już kilka zespołów. Na przykład programiści z firmy „Fish in a Barrel”
Równoległy
Nie cała zamierzona funkcjonalność została jeszcze zaimplementowana, ale framework już w miarę nadaje się do pracy i posłużył do napisania działającego sterownika dla kontrolera LAN9512 USB Ethernet znajdującego się na płytce Raspberry Pi 3. Istniejący sterownik smsc95xx, napisany przez inż. Język C. Należy zauważyć, że rozmiar modułu i narzut związany z komponentami wykonawczymi podczas opracowywania sterownika w Rust są nieznaczne, co pozwala na użycie frameworka dla urządzeń o ograniczonych zasobach.
Źródło: opennet.ru