Распрацоўнікі Mesa абмяркоўваюць магчымасць дадання кода на мове Rust

Распрацоўнікі праекта Mesa абмяркоўваюць магчымасць выкарыстання мовы Rust для распрацоўкі драйвераў OpenGL/Vulkan і кампанентаў графічнага стэка. Ініцыятарам абмеркавання стала Аліса Розенцвейг (Alyssa Rosenzweig), якая развівае драйвер. Панфрост для GPU Mali на базе мікраархітэктур Midgard і Bifrost. Ініцыятыва знаходзіцца на стадыі абмеркавання, канкрэтных рашэнняў пакуль не прынята.

Прыхільнікі выкарыстання Rust вылучаюць на пярэдні план магчымасць павышэння якасці працы з памяццю і збавенне ад такіх праблем, як зварот да вобласці памяці пасля яе вызвалення, разнайменаванне нулявых паказальнікаў і выхад за межы буфера. Падтрымка Rust таксама дазволіла б уключыць у склад Mesa іншыя напрацоўкі, такія як сістэма праграмнага рэндэрынгу Казань з рэалізацыяй графічнага API Vulkan, напісаная на мове Rust.

Адзначаецца, што актуальнасць падвышэння бяспекі драйвераў апошнім часам вырасла ў святле выкарыстання OpenGL пры выкананні не варты даверу кода ў браўзэрах, якія падтрымліваюць WebGL, што робіць драйверы важным вектарам для здзяйснення нападаў на сістэмы карыстачоў. У наш час для мінімізацыі праблем пры працы памяццю ў Mesa ужо выкарыстоўваюцца такія сродкі, як ralloc і статычны аналіз кода, але іх ужыванні нядосыць.

Праціўнікі ўкаранення Rust лічаць, Што большую частку карысных магчымасцяў Rust можна атрымаць праз пераклад распрацоўкі на сучасны С++, які выглядае больш прывабным ва ўмовах таго, што большая частка Mesa напісана на мове Сі. З довадаў супраць Rust таксама згадваецца ўскладненне сістэмы зборкі, не жаданне прывязвацца да пакетнай сістэмы cargo,
пашырэнне патрабаванняў да зборачнага асяроддзя і неабходнасць уключэння кампілятара Rust у зборачныя залежнасці, абавязковыя для пабудовы ключавых кампанентаў працоўнага стала ў Linux.

Рух у бок выкарыстання Rust для распрацоўкі таксама назіраецца ў кампаніі AMD, якая на днях адкрыла вакансію праграміста на мове Rust для распрацоўкі новага інструментара, звязанага з 3D-драйваерамі для GPU Radeon.

Крыніца: opennet.ru

Дадаць каментар