Новости C++ против Rust: Windows решает, какой язык прокачает ее драйверы

NewsMaker

I'm just a script
Премиум
13,850
20
8 Ноя 2022
Rust лидирует, но есть свои нюансы.


7whh2lmhn0k6he1q6ykygg8zn9jmdstq.jpg


На платформе Github Для просмотра ссылки Войди или Зарегистрируйся от Microsoft , который позволит разработчикам создавать Windows -драйверы на языке Rust . Это важный шаг на пути к повышению безопасности операционной системы.

Еще в 2019 году исследователи из Microsoft Для просмотра ссылки Войди или Зарегистрируйся методы устранения уязвимостей на ранних этапах. Особое внимание уделялось языкам программирования, обеспечивающим безопасное управление памятью. В числе лидеров оказался Rust, изначально разработанный командой Mozilla.

Rust не только экономит память, но и предотвращает ошибки, которые могут возникнуть при одновременном доступе нескольких потоков к одним и тем же данным.

В 2022 году Марк Руссинович, главный технический директор Azure, подчеркнул, что нужно отходить от создания новых проектов на C/C++ и активнее использовать Rust, особенно в случаях, когда требуется высокая производительность без автоматической сборки мусора.

Большая часть действующих систем Windows написана на C и C++. Многие современные компоненты переписываются и оптимизируются, но основной код остается прежним. Например, в инструментах для создания драйверов, таких как Для просмотра ссылки Войди или Зарегистрируйся .

С Rust разработчики смогут создавать драйверы как для WDM (Windows Driver Model), так и для WDF (Windows Driver Framework). Но стоит учитывать, что проект все еще находится на ранней стадии и пока не предназначен для коммерческого использования.

Ранний код в новом репозитории Microsoft содержит комментарий: // FIXME: Should this trigger Bugcheck via KeBugCheckEx?

Одна из главных Для просмотра ссылки Войди или Зарегистрируйся — обработка ошибок. В отличие от других языков, Rust не использует классическую схему исключений. Вместо этого он сообщает о возможных проблемах через переменную "Result" и прекращает работу в критических ситуациях, активируя режим "panic".

Это серьезный недостаток, особенно если речь идет о разработке ядра системы. Основатель Linux, Линус Торвальдс, когда-то говорил, что код ядра должен отличаться от пользовательских инструментов. Если ядро сталкивается с нехваткой памяти, это ни в коем случае не должно вызывать крах системы. В таких случаях ядро должно корректно обработать исключение и вернуть соответствующий статус.

Тем не менее, для специалистов переход к Rust кажется перспективным шагом. В целом прогнозы положительные, поэтому остается только наблюдать за тем, как сработает новый метод.
 
Источник новости
www.securitylab.ru

Похожие темы