Разработчики Mesa обсуждают возможность добавления кода на языке Rust

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

Сторонники использования Rust выдвигают на передний план возможность повышения качества работы с памятью и избавление от таких проблем, как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера. Поддержка Rust также позволила бы включить в состав Mesa сторонние наработки, такие как система программного рендеринга Kazan с реализацией графического API Vulkan, написанная на языке Rust.

Отмечается, что актуальность повышения безопасности драйверов последнее время выросла в свете использования OpenGL при выполнения не заслуживающего доверия кода в браузерах, поддерживающих WebGL, что делает драйверы важным вектором для совершения атак на системы пользователей. В настоящее время для минимизации проблем при работе памятью в Mesa уже используются такие средства, как ralloc и статический анализ кода, но их применения недостаточно.

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

Движение в сторону использования Rust для разработки также наблюдается в компании AMD, которая на днях открыла вакансию программиста на языке Rust для разработки нового инструментария, связанного с 3D-драйваерами для GPU Radeon.

Источник: http://www.opennet.ru/opennews/art.shtml? num=53827

©  OpenNet