
Głównym celem serii konferencji BlueHat jest budowanie pomostów między programistami a kierownictwem firmy Microsoft, kluczowymi partnerami programów bezpieczeństwa i członkami społeczności.
Microsoft zaprezentował kilka dni temu pracuje już nad przepisaniem kodu jądra systemu Windows, szczególnie w obszarze odpowiedzialnym za zarządzanie oknami, w języku Rust.
Z którym Microsoft dołącza do fali wdrażania Rusta w swoich produktach i przede wszystkim z myślą o przyszłości, a przede wszystkim idealnym kandydatem do porzucenia języków C i C++. I właśnie ten manewr przypomina przyjęcie tego samego języka do rozwoju jądra Linuksa. Pod tym względem Rust różni się od kilku języków ogłoszonych w przeszłości jako zamienniki dla C i C++.
Firma Microsoft przeportowała bibliotekę Win32k GDI (menedżer okien) do języka Rusta. A urzędnik firmyogłosił podczas ostatniej edycji konferencji BlueHat. Celem było przekonwertowanie niektórych typów C++ w tej bibliotece na ich odpowiedniki w języku Rust, aby dostęp do pamięci był mniej nieszczelny.
Jednym z głównych powodów takiego postępowania jest skorzystanie z zalet, jakie Rust wprowadza w stosunku do języka C, takich jak bezpieczeństwo pamięci. W praktyce, na przykład Google, teraz intensywnie używa Rusta na Androidzie.
„Celem nie jest konwersja istniejącego C/C++ na Rust, ale przesunięcie tworzenia nowego kodu do języków bezpiecznych dla pamięci” – mówi gigant technologiczny.
Wynikły:
„Ilość nowego kodu niezabezpieczającego pamięć wprowadzanego do Androida zmniejszyła się, zmniejszyła się również liczba luk w zabezpieczeniach pamięci. Od 2019 do 2022 roku spadł z 76% do 35% wszystkich luk w Androidzie. Rok 2022 to pierwszy rok, w którym luki w zabezpieczeniach pamięci nie odpowiadają za większość luk w Androidzie” – dodaje.
Mimo to niektórzy interesariusze uważają, że inicjatywy usuwania języka C są skazane na porażkę jako twórca języka C3, jednak podaje długą listę powodów, dla których inicjatywy usuwania języka C są skazane na niepowodzenie.
Jednak ze swojej strony decyzja Microsoftu o użyciu Rust w systemie Windows jest oznaką rosnącego wpływu tego języka na przemysł oprogramowania. Rust został uznany przez użytkowników Stack Overflow za najbardziej lubiany język programowania przez sześć lat i był przedmiotem badań akademickich i innowacji. Rust może również pomóc Microsoftowi konkurować z Linuksem, który niedawno ogłosił wsparcie dla Rusta jako drugiego języka wysokiego poziomu do programowania jądra.
„Jesteśmy na etapie śledzenia i uruchamiania Rusta w systemie Windows” — powiedział Weston podczas wystąpienia na konferencji BlueHat IL 2023 firmy Microsoft. „Mówimy o jednym z najbardziej złożonych produktów inżynieryjnych na świecie. Ale naszym celem jest zrobienie tego, aby poprawić bezpieczeństwo... Więc Windows uruchomi się z Rust w jądrze prawdopodobnie w ciągu najbliższych kilku tygodni lub miesięcy, co jest świetne. Podstawowym celem jest konwersja niektórych z tych wewnętrznych typów danych C++ na ich odpowiedniki w Rust”.
Pokazano, że powodem tej konwersji, którą jest Inżynierowie Microsoftu są całkowicie przekonani, że kod Rust jest znacznie łatwiejszy do napisania i zrozumienia niż rzeczywisty kod C++. Jest również bezpieczniejszy: dla tych, którzy nie są zaznajomieni, Rust to nowoczesny język programowania podobny do C, który uwielbiają programiści, ponieważ wymusza tworzenie bezpiecznego kodu natywnego bez narzutu na zarządzane języki.
Według Westona, Microsoft przepisał już 36 000 linii kodu w jądrze Windows w Rust, plus kolejne 152 000 wierszy kodu, które napisał dla biblioteki sprawdzającej koncepcję DirectWrite Core, a wydajność jest doskonała, bez regresji w porównaniu z poprzednim kodem C++.
Powiedział też, że:
„Jest teraz wywołanie systemowe w jądrze systemu Windows, napisane w języku Rust”. Wywołanie systemowe lub wywołanie systemowe to sposób interakcji aplikacji trybu użytkownika z wewnętrznymi funkcjami jądra (w dużym uproszczeniu).
Wreszcie, jeśli chcesz dowiedzieć się więcej na ten temat, możesz obejrzeć wideo z konferencji Niebieski kapelusz.