Twórcy Mesy omawiają możliwość dodania kodu Rust

Twórcy projektu Mesa dyskutują możliwość wykorzystania języka Rust do tworzenia sterowników OpenGL/Vulkan i komponentów stosu graficznego. Dyskusję zainicjowała Alyssa Rosenzweig, programistka sterowników panfrost dla procesorów graficznych Mali opartych na mikroarchitekturach Midgard i Bifrost. Inicjatywa jest na etapie dyskusji, nie zapadły jeszcze żadne konkretne decyzje.

Zwolennicy używania Rusta podkreślają możliwość poprawy wydajności pamięci i wyeliminowania problemów, takich jak dostęp do pamięci po zwolnieniu, wyłuskiwanie wskaźników zerowych i przepełnienie bufora. Obsługa Rusta umożliwiłaby także Mesie włączenie rozwiązań innych firm, takich jak system renderowania oprogramowania Kazan z implementacją API graficznego Vulkan, napisanego w języku Rust.

Należy zauważyć, że ostatnio wzrosło pilne zapotrzebowanie na poprawę bezpieczeństwa sterowników w świetle wykorzystania OpenGL podczas wykonywania niewiarygodnego kodu w przeglądarkach obsługujących WebGL, co czyni sterowniki ważnym wektorem ataków na systemy użytkowników. Obecnie Mesa korzysta już z narzędzi takich jak ralloc i statyczna analiza kodu, aby zminimalizować problemy z pamięcią, ale ich użycie nie wystarczy.

Przeciwnicy wdrożenia Rusta rozważ, że większość przydatnych funkcji Rusta można uzyskać poprzez przeniesienie programowania do współczesnego C++, co wygląda atrakcyjniej, biorąc pod uwagę, że większość Mesy jest napisana w C. Wśród argumentów przeciwko Rustowi wymienia się także powikłanie systemy montażowe, nie pożądanie powiązać z systemem przesyłek cargo,
rozszerzenie wymagań dotyczących środowiska montażu i trzeba uwzględnić Kompilator Rust do zależności zestawu wymaganych do zbudowania kluczowych komponentów pulpitu w systemie Linux.

Ruch w kierunku wykorzystania Rusta do celów programistycznych obserwuje się także w firmie AMD, która od niedawna otworzył wakat Programista Rusta do opracowania nowych narzędzi związanych ze sterownikami 3D dla procesorów graficznych Radeon.

Źródło: opennet.ru

Dodaj komentarz