Проект Verona: Microsoft перепишет часть Windows на новом языке
Проект Verona: Microsoft перепишет часть Windows на новом языке

Microsoft запустила экспериментальный проект по разработке собственного языка программирования Verona, основанного на Rust. По данным CNews, Microsoft планирует переписать на новом языке некоторые низкоуровневые компоненты ОС Windows 10, чтобы сделать систему надежнее.
Зачем это нужно
Microsoft хочет создать новый язык программирования для разработки низкоуровневых компонентов. Сейчас они написаны в основном на С и С++. Основная цель – сделать компоненты устойчивыми ко взлому.
Экспериментировать будут с частью ОС, правда, какие именно компоненты затронут, неизвестно. Но, по словам инсайдеров, впоследствии все компоненты, которые атакуют особенно часто, могут переписать с нуля на новом языке программирования. Это сделает Windows гораздо безопаснее.
Чем плохи С и С++
С и С++ универсальны. Они сочетают возможность высокоуровневой разработки и функции непосредственной работы с фундаментальными компонентами (памятью, процессами, потоками, адресами и т.д.).
Но в то же время у С и С++ есть множество потенциальных и реальных проблем. Очень многое здесь отдается на откуп программисту. Особенно часто сложности возникают при работе с оперативной памятью.
Около 70% уязвимостей связаны в ошибками контроля памяти
Специалист Microsoft Мэттью Миллер заявил, что 70% уязвимостей в ПО компании, найденных за последние 12 лет, связаны с ошибками контроля памяти. Часто программы падают, обращаясь к адресу памяти после его освобождения. Нередки и выходы за границы буфера, дедлоки (взаимная блокировка ресурсов параллельными потоками), утечки памяти, которую выделили динамически, но забыли освободить.
В С и С++ нет многих встроенных инструментов, которые появились в других языках – например, проверка выхода за границы массива. Такие вещи реализовали в стандартных и пользовательских библиотеках, но с ними приходится жертвовать производительностью. Сборщика мусора (механизма, который удаляет ненужные программе объекты) в С и С++ тоже нет.
Особенности нового языка
Сам язык с нуля Microsoft разрабатывать не планирует. За основу взяли Rust – достаточно молодой проект Mozilla, создателя браузера Firefox.
Главное отличие нового языка от Rust – в модели владения. В Rust используется модель на базе единичных объектов, в новом языке будут оперировать группами объектов.
Принцип владения в новом языке также предполагает автоматическое управление памятью. Закрывая возможность манипулировать памятью вручную, создатели языка избавляют разработчиков от снежного кома потенциальных проблем.
В оригинальном Rust нет сборщика мусора – это сделано для повышения производительности, к тому же за счет модели владения объектами сборщик попросту не нужен. В новом языке сборщик мусора могут реализовать, но с минимальным ущербом для производительности.
Исходные коды наработок Microsoft планирует открыть для изучения и распространять под свободной лицензией Apache 2.0. На Github уже появился репозиторий Verona, но он пока пуст.
Эксперименты с Rust
Microsoft заинтересовалась Rust несколько месяцев назад. Тогда инсайдеры заявили, что компания хочет использовать язык, чтобы переписать несколько своих продуктов.
Разработчик системы аппаратной виртуализации Hyper-V Адам Берч в ноябре заявил в корпоративном блоге, что переписывает на Rust с нуля некий низкоуровневый компонент Windows. На тот момент был не завершен, но Берч положительно оценил опыт работы в нем.
Разработчик отметил, что в Rust, конечно, нет некоторых возможностей, к которым он привык в С. Он предположил, что компания сможет их добавить. Но в целом перевести кодовую базу компонентов системы на Rust и создать решения с «чистыми интерфейсами» не составит труда.
Применение Rust
Rust призван закрыть критические уязвимости в Firefox. Код браузера включал более 4 млн строк на С++, и именно они в основном провоцировали утечки данных и падения.
Rust изначально создавался с прицелом на параллельное выполнение задач и безопасность. Mozilla в рамках проекта Quantum полностью переработала архитектуру Firefox и перевела многие компоненты браузера на Rust. Кроме того, язык использовали для создания движка HTML-рендеринга Servo для Firefox.
Вскоре проектом заинтересовались и другие гиганты. Известно, что Rust используют Google, Facebook, Amazon, Dropbox, Fastly, Baidu.
Ведущий инженер Intel Джош Триплетт заявил: его компания заинтересована в развитии Rust, чтобы он мог конкурировать с С. А разработчик ядра Linux Грег Кроа-Хартман пообещал не препятствовать включению в ядро системы фреймворков для создания драйверов на Rust.
Источник: https://infostart.ru/journal/news/tekhnologii/proekt-verona-microsoft-perepishet-chast-windows-na-novom-yazyke_1163910/
См. также
В ближайшие годы возрастет потребность в персонале центров обработки данных
вчера в 15:30 1563 SKravchenko 0
Rustоманы из Долины: Google, Microsoft, Huawei, Mozilla и AWS основали фонд поддержки языка программирования
16.02.2021 1571 user1015646 0
Украинская команда FireWay одержала победу в хакатоне NASA Space Apps Challenge 2020
05.02.2021 1881 SKravchenko 2
Microsoft участвует в разработке цифрового паспорта вакцинации от Covid-19
02.02.2021 1696 capitan 3
Что нового в Chrome 88: проверка надежности паролей и поддержка профилей
01.02.2021 2148 user1015646 0
280 символов для науки: Twitter откроет доступ ученым к архиву твитов
29.01.2021 1435 VKuser24342747 1
Представлен GitLab 13.7: автооткат при сбоях и улучшенная проверка мердж-реквестов
22.01.2021 2316 user1015646 0
Российские исследователи представили новый фреймворк для работы с большими данными
21.01.2021 2284 user1015646 2