Linux z nowym jądrem w Rust? Linus Torvalds zabiera głos
System Linux opiera się na jądrze napisanym w języku C, mającym już niemal 50 lat. Ma to wiele zalet, ale niesie to ze sobą również wiele problemów. Niedawno ekspert portal ZDNet rozmawiał z Linusem Torvaldsem, ojcem Linuxa, i zapytał go o to, czy jest szansa na stworzenie nowego kodu jądra systemu opartego o język Rust. Jego odpowiedź daje wiele do myślenia.
26.03.2021 | aktual.: 26.03.2021 16:54
Rust to język oddany do użytku w roku 2010 i w ostatnim czasie mocno nabiera na popularności. Za jego powstanie w znacznej mierze odpowiada Mozilla. W założeniu ma oferować dużą wydajność i elastyczność, jak również nadal znakomicie sprawdzać się w bezpośredniej komunikacji ze sprzętem. Czyli wszystkie zalety C, ale także - w przeciwieństwie do C - ma oferować jeszcze bezpieczniejsze i stabilniejsze środowisko zarządzania pamięcią.
To właśnie wycieki pamięci i przeładowania bufora są zmorą języka C, na którą muszą uważać programiści. Według Microsoftu i fundacji Linuxa ponad 2/3 wszystkich problemów bezpieczeństwa bierze się z problemów dot. zarządzania pamięcią.
Skąd się wziął pomysł na to, aby być może napisać jądro Linuxa w języku Rust? Otóż z konferencji Linux Plumbers z 2020 r., kiedy to programiści tam zebrani zaczęli bardzo poważnie o tym mówić.
Co ciekawe, Linus Torvalds nie był tym pomysłem wcale zaniepokojony i zażądał, aby wprowadzono kompilator Rusta. Od tamtego czasu dołożono wielu starań, aby przepisać zestaw narzędzi systemowych GNU Coreutils w Ruście.
Steven J. Vaughan-Nichols z ZDNet zapytał niedawno Linusa Torvaldsa i Grega Kroah-Hartmana, jak się zapatruje na możliwość przepisania jądra z C do Rusta. Torvalds był entuzjastyczny, ale też odpowiedział nieco powściągliwie. "Interesuje mnie ten projekt i widzę, że prowadzi go grupa osób, która jest bardzo Rustem podekscytowana. Ja z kolei chcę zobaczyć, jak to wszystko sprawdzi się w praktyce".
Torvalds sądzi, że być może sterowniki urządzeń będą następną porcją kodu, którą można przepisać w jęzku Rust. To dlatego, że jest ich bardzo dużo, ale są przy okazji niezależne od innych porcji kodu systemowego.
Do przepisania całego systemu w Ruście jeszcze długa droga, ale widać, że poczyniono istotne pierwsze kroki.