C++ срещу Rust: Microsoft решава на кой програмен език да базира своите драйвери

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

В платформата Github се появи код от Microsoft, който дава възможност на разработчиците да създават драйвери за Windows на езика Rust. Това е важна стъпка към подобряване на сигурността на операционната система.

Още през 2019 г. изследователи от Microsoft обсъждаха методи за ранно отстраняване на уязвимости. Специално внимание бе обърнато на езиците за програмиране, които осигуряват сигурно управление на паметта. Сред лидерите беше Rust, първоначално разработен от екипа на Mozilla.

Rust не само спестява памет, но и предотвратява грешки, които могат да възникнат при едновременен достъп на няколко нишки до едни и същи данни.

През 2022 г. Марк Русинович, главен технически директор на Azure, подчерта необходимостта да се престане със създаването на нови проекти на C/C++ и да се използва повече Rust, особено в случаите, когато се изисква висока производителност без автоматично събиране на боклука.

Повечето настоящи системи на Windows са написани на C и C++. Редица съвременни компоненти са пренаписани и оптимизирани, но основният код остава същият. Така например в инструментите за създаване на драйвери, като е при Windows Driver Kit .

C++ срещу Rust: Microsoft решава на кой програмен език да базира своите драйвери

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

Едно от основните предизвикателства е обработката на грешките. За разлика от други езици, Rust не използва класическата схема за изключения. Вместо това той съобщава за възможни проблеми чрез променливата „Result“ и спира работа в критични ситуации, като активира режима „panic“.

Това е сериозен недостатък, особено когато става въпрос за разработване на ядрото на една система. Основателят на Linux, Линус Торвалдс, веднъж каза, че кодът на ядрото трябва да се различава от потребителските инструменти. Ако ядрото се сблъска с недостиг на памет, то никога не трябва да предизвиква срив на системата. В такива случаи ядрото трябва правилно да обработи изключението и да върне съответния статус.

Въпреки това за специалистите преходът към Rust изглежда обещаваща стъпка. Като цяло прогнозите са положителни, така че остава само да видим как ще работи новият метод.

В началото на тази пролет първата област от имплементацията на Rust бе кодът DWriteCore, който осигурява разбор на шрифтовете. В проекта, чието пренаписване отне шест месеца, участваха двама разработчици. Прилагането на новата имплементация, пренаписана на Rust, подобри производителността на генерирането на глифове за текст с 5-15%. Втората област на използване на Rust бе имплементацията на типа данни REGION в GDI (Graphics Driver Interface) на Win32k. Компонентите на GDI, пренаписани в Rust, вече успешно преминават всички тестове при използване в средата на Windows и се очаква новият код скоро да бъде включен по подразбиране в тестовите компилации на Windows 11 Insider.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

Нови ревюта

Подобни новини