w nadchodzącym wydaniu jądra Linux 6.1 połączona zostanie początkowa infrastruktura Rust, aby umożliwić korzystanie z języka programowania Rust dla przyszłych sterowników jądra i innego kodu jądra. Ale ten stan w Linuksie 6.1 jest bardzo podstawowym i nie jest jeszcze praktyczny, podczas gdy teraz wysłano dodatkowe łatki”Rust for Linux”, aby umożliwić większy rozwój jądra w Rust.
Miguel Ojeda, który kierował pracami nad Rust for Linux, wysłał w czwartek zestaw 28 łatek, które dostarczają więcej dodatków do jądra Rust. Ojeda wyjaśnił w serii poprawek tej najnowszej serii dużych poprawek:
Ta seria poprawek jest pierwszą partią zmian wprowadzających resztę wsparcia dla Rusta.
W tym przypadku wszystkie wprowadzone udogodnienia są częścią „rdzeniowego rdzenia”. Nie wchodzą one w interakcję ze stroną C na nowe główne sposoby (nie są używane żadne nowe typy C; tylko `strlen`, `memchr`, dodatkowe kody błędów i kilka innych łańcuchów formatu `printk`).
Po tej serii, `str.rs` i `print.rs` są zsynchronizowane z downstream i wszystkie pozostałe makra proc zostały dodane. `error.rs` jest również dość kompletny, chociaż kilka dodatkowych funkcji `pub(crate)` pojawi się później (aby uniknąć pozostawiania martwego kodu pomiędzy seriami).
Zauważ, że kilka tymczasowych atrybutów `#[allow(dead_code)]` jest używanych, aby mieć nieco więcej swobody w organizowaniu łat przy jednoczesnym zachowaniu możliwości budowania bez ostrzeżeń/błędów, ale na koniec z serii nie pozostały żadne (z tymczasowych).
Praktycznie cały kod był w linux-next od miesięcy i był częścią serii łat Rust przed przycięciem (tj. do v8).
Każda łatka została przetestowana na `defconfig` z włączoną obsługą Rust z `CLIPPY=1` dla celów `all`, `rustfmtcheck`, `rustdoc` i `rusttest`.
Biorąc pod uwagę, że ten kod jest już od jakiegoś czasu w linux-next i widziałem już kilka recenzji w ramach oryginalnej serii poprawek Rust for Linux, całkiem możliwe, że zobaczymy tę pracę gotową na czas dla Okno scalania Linuksa 6.2 w przyszłym miesiącu. Zobaczymy. W każdym razie pociąg Rust for Linux nadal się toczy.
Gdy cała ta infrastruktura Rusta będzie już na miejscu, zobaczymy, jak długo potrwa, zanim bardziej znane, rzeczywiste sterowniki zaczną przechodzić na kod Rust w celu obsługi nowego sprzętu lub przepisania istniejącego kodu sterownika C w Rust. Oczekuje się, że jednym z pierwszych głównych użytkowników Rusta w jądrze Linuksa będzie sterownik DRM dla grafiki Apple M1/M2.
Osobno, wczoraj Agencja Bezpieczeństwa Narodowego USA opublikowała wytyczne dotyczące ochrony przed problemami z bezpieczeństwem pamięci. Raport NSA sugeruje używanie języka programowania Rust lub innych języków bezpiecznych dla pamięci, takich jak Swift, Java, Go, Ruby i C#.