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

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

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.

Автор:
Обозреватель

См. также

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1920    VKuser24342747    4       

2

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    1157    VKuser24342747    0       

2

Спустя пять лет разработки вышел релиз компилятора для языков программирования Python и Cython – проект Cython 3.0. Он позволяет транслировать код Python в представление на C/C++.

28.07.2023    1743    VKuser24342747    0       

2

GitLab представила собственную нейросеть Code Suggestions, способную генерировать код по запросу на естественном языке. ИИ-помощник поддерживает работу с 13 языками программирования.

10.07.2023    1751    VKuser24342747    0       

1

Stack Overflow представил рейтинг языков программирования за 2023 год. В исследовании учитывали не только частоту применения языка, но и интерес разработчиков к нему. Также компания составила рейтинг платформ и ИИ-инструментов. 

20.06.2023    2122    VKuser24342747    1       

2

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

14.12.2022    7528    VKuser24342747    0       

3

В статистическом отчете репозитория названы самые популярные языки программирования среди пользователей платформы, а также данные об активности аудитории сервиса.

01.12.2022    8929    VKuser24342747    11       

3

Ричард Мэттью Столлман, основатель Фонда свободного программного обеспечения, представил руководство по языку C и расширениям GNU. Пособие доступно всем желающим и предназначено как для опытных, так и начинающих программистов.

19.09.2022    12262    VKuser24342747    0       

4

Комментарии

Инфостарт бот
1. protexprotex 05.12.19 17:06 Сейчас в теме
1С + Rust = ?
2. DoctorRoza 05.12.19 17:13 Сейчас в теме
(1) Писали бы сразу на 1С!
3. frkbvfnjh 06.12.19 07:21 Сейчас в теме
(1) 1 Сраст
user1314022; 1serger; dimisa; mrChOP93; +4 Ответить
4. protexprotex 06.12.19 07:34 Сейчас в теме
(3) Как то грубо будет звучать. Или как назовешь так и поплывет?
5. Darklight 06.12.19 12:00 Сейчас в теме
(1)Зачем?
6. protexprotex 06.12.19 18:23 Сейчас в теме
(5) Шутка была

Оставьте свое сообщение