
Integracja Rust z rozwojem sterowników systemu Windows przez firmę Microsoft
Od połowy 2023 roku Microsoft koncentruje się na integracji języka Rust z systemem operacyjnym Windows. Inicjatywa ta rozpoczęła się od udanej integracji języka Rust z jądrem systemu Windows, a obecnie ewoluowała, aby zachęcić twórców sterowników do wdrożenia tego innowacyjnego języka programowania.
windows-drivers-rs
Uruchomienie projektu Open Source
W lipcu Microsoft zaprezentował projekt open source windows-drivers-rs
, inicjatywę zespołu Surface, mającą na celu uproszczenie tworzenia sterowników systemu Windows za pomocą języka Rust. Ten framework został zaprojektowany w celu zwiększenia wydajności tworzenia sterowników w języku Rust, zapewniając nowocześniejszą alternatywę dla konwencjonalnych języków programowania, takich jak C.
Wprowadzenie cargo-wdk
skrzyni
Niedawno Microsoft ogłosił ulepszenia tej inicjatywy, w szczególności wprowadzenie pakietu cargo-wdk
Crate. To nowe rozszerzenie Cargo usprawnia proces tworzenia sterowników, generując puste projekty sterowników z wstępnie skonfigurowanymi krokami kompilacji, zależnościami i powiązaniami. Może również wykorzystywać narzędzia Windows Driver Kit (WDK), takie jak InfVerif, odzwierciedlając doświadczenie tworzenia sterowników w języku C w programie Visual Studio.
Zalety stosowania Rust
Rust wyróżnia się na tle tradycyjnych języków programowania, takich jak C, oferując zaawansowane funkcje bezpieczeństwa pamięci. Ta cecha znacznie zmniejsza ryzyko luk w zabezpieczeniach związanych z pamięcią. Ponadto Rust charakteryzuje się wyjątkową kompatybilnością z kodem sterowników C i C++, co ułatwia programistom przejście na nowy język.
Przyszłe cele i rozwój
Długoterminową wizją Microsoftu jest wyposażenie programistów Rust w ekosystemie Cargo w narzędzia do kompilacji i opcje konfiguracji odpowiadające tym dostępnym w programie Visual Studio. W perspektywie średnioterminowej firma planuje między innymi wdrożenie automatycznej instalacji pakietu Windows Driver Kit, obsługę NT_TARGET_VERSION oraz pełną zgodność z architekturą ARM64.
Aktualny stan Rust w rozwoju sterowników
Obecnie windows-drivers-rs
framework obsługuje określone typy sterowników w Rust, jednak nadal wymaga znacznej ilości niebezpiecznego kodu. Microsoft aktywnie współpracuje ze specjalistami Rust w celu tworzenia bezpieczniejszych abstrakcji zarówno dla sterowników trybu jądra (KMD), jak i sterowników trybu użytkownika (UMD).Kilka zespołów pracuje również nad rozwojem bezpiecznych struktur i interfejsów API dostosowanych zarówno do podstawowych funkcji jądra, jak i do tworzenia sterowników innych firm, a niektóre z tych innowacji są już zintegrowane z jądrem systemu Windows.
Zrozumienie abstrakcji w rozwoju sterowników
Dla tych, którzy mogą nie być zaznajomieni z tym terminem, abstrakcja w tym kontekście odnosi się do bezpiecznego procesu przejścia między trybem użytkownika a trybem jądra. Tryb jądra działa na najwyższym poziomie uprawnień, podczas gdy tryb użytkownika funkcjonuje na niższym poziomie uprawnień, co podkreśla znaczenie bezpiecznych i efektywnych przejść.
Następne kroki i najlepsze praktyki
W przyszłości Microsoft planuje udostępnić dalsze informacje i najlepsze praktyki dotyczące rozwoju sterowników, w tym wykorzystanie języka CodeQL do analizy statycznej. Warto zauważyć, że w lipcu firma zaktualizowała swoje wytyczne dotyczące analizy statycznej sterowników innych firm, dostosowując się do wydania systemu Windows 11 w wersji 25H2.
Aby dowiedzieć się więcej na temat tych zmian, możesz zapoznać się z pełnym wpisem blogowym na oficjalnej stronie internetowej Microsoft Tech Community.
Dodaj komentarz