Microsoft развивает новый язык программирования на основе Rust

Candellmans

Мастер
Сообщения
7,955
Реакции
8,482
Microsoft развивает новый язык программирования на основе Rust

3\12\19
Компания Microsoft в рамках экспериментального проекта Verona развивает новый язык программирования, основанный на языке Rust и ориентированный на разработку защищённых приложений, не подверженных типовым проблемам с безопасностью. Исходные тексты текущих наработок, связанных с проектом, в ближайшее время планируется открыть под лицензией Apache 2.0.

Рассматривается возможность использования развиваемого языка в том числе для переработки низкоуровневых компонентов Windows с целью блокирования потенциальных проблем, всплывающих при применении языков C и C++. Безопасность кода повышается за счёт автоматического управления памятью, которое избавит разработчиков от необходимости манипулирования указателями и защитит от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.

Основным отличием Verona от Rust является применение модели владения на основе групп объектов, а не единичных объектов. Данные в Verona рассматриваются как структуры, представляющие собой коллекции объектов. Проверки заимствования и контроль владения производятся в привязке к группе объектов, что позволяет обеспечить безопасность при манипуляциях с составными структурам и лучше отражает уровень абстракции, обычно применяемый при разработке.

<iframe title="vimeo-player" src="Digital Security by Design: Security and Legacy at Microsoft - Matthew Parkinson, Microsoft from Knowledge Transfer Network on Vimeo" width="640" height="360" frameborder="0" allowfullscreen></iframe>

OpenNet
 
Последнее редактирование:
Дополнение к материалу

Microsoft полностью перепишет часть Windows на своем новом языке программирования

03.12.2019
Microsoft в рамках экспериментального проекта Verona развивает новый язык программирования, основанный на Rust. Не исключено, что некоторые низкоуровневые компоненты Windows 10 впоследствии будут переписаны на нем, что позволит сделать систему значительно более устойчивой к киберугрозам.

Проект Verona
Корпорация Microsoft разрабатывает новый язык программирования, который ориентирован на создание приложений, не подверженных наиболее распространенным проблемам безопасности, пишет Zdnet.

Новый язык базируется на набирающем популярность Rust, развитием которого занимается компания Mozilla, разработчик известного браузера Firefox. Проект получил название Verona и, по данным издания, ключевое его отличие от Rust заключается в применении модели владения на основе групп объектов, а не единичных объектов. Ожидается, что исходные тексты текущих наработок в его рамках будут открыты под свободной лицензией Apache 2.0. Репозиторий проекта уже появился на принадлежащей Microsoft c 2018 г. платформе Github, но пока пуст.

Как отмечает Zdnet, Microsoft также может переписать некоторые низкоуровневые компоненты Windows 10 с использованием модифицированного Rust, чтобы исключить потенциальные проблемы, возникающие при применении языков C и C++.

Как смена языка поможет повысить безопасность
Языки C и C++ в течение десятилетий повсеместно используются в качестве инструмента разработки системного ПО и возлагают на программиста задачу управления оперативной памятью, что неизбежно приводит к возникновению ошибок, таких как обращение к участку памяти после его освобождения или, например, выход за границы буфера. По словам Мэтта Миллера
(Matt Miller), специалиста Microsoft по безопасности, около 70% всех уязвимостей, обнаруженных в программных продуктах корпорации за последние 12 лет, связанны с ошибками управления памятью.

microsoftmemorysafetytrends.png
Около 70% всех уязвимостей, обнаруженных в программных продуктах Microsoft за последние 12 лет, связанны с ошибками управления памятью

В языке Rust (как, видимо, и в Verona), в отличие от C и C++, реализован механизм автоматического управления памятью на основе принципа «владения», который избавляет программиста от необходимости вручную манипулировать памятью, тем самым снижая вероятность возникновения ошибок. Стоит также отметить, что в угоду производительности в Rust не используется так называемый сборщик мусора (Garbage Collector, GC), в задачи которого входит автоматическое удаление из памяти объектов, которые более не востребованы программой.

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

В начале ноября 2019 г. Адам Берч (Adam Burch), программист из команды разработчиков Hyper-V (системы аппаратной виртуализации для x64-систем на основе гипервизора), написал в корпоративном блоге о том, что ему поручили переписать на Rust некий низкоуровневый компонент Windows, назвать который он пока не может.

По его словам, несмотря на незавершенность проекта, опыт применения Rust оказался в целом позитивным. Он также отметил, что кодовую базу новых компонентов и уже существующих, но с «чистыми интерфейсами», перевести на Rust не составит большого труда. Кроме того, Берч посетовал на отсутствие некоторых возможностей в языке по сравнению с привычным ему C, но выразил уверенность в том, что Microsoft сможет посодействовать их добавлению.

Несколько слов о Rust
Rust появился в 2006 г. как личный проекта Грейдона Хоара (Graydon Hoare), сотрудника Mozilla. В 2009 г. Mozilla начала спонсировать разработку Rust для собственных нужд, а также расширила команду для дальнейшего развития языка.
Интерес Mozilla к Rust был вызван наличием огромного числа критических уязвимостей в разрабатываемом компанией
браузером Firefox, в реализации которого присутствовало свыше 4 млн строк на языке C++.

Rust был создан с учетом требований безопасности и параллелизма, что сделало его подходящим выбором для переписывания многих компонентов Firefox в рамках проекта Quantum по полной переработке архитектуры браузера. Кроме того, Mozilla использовала Rust для разработки Servo, движка рендеринга HTML, который должен был заменить действующий движок рендеринга Firefox.

Помимо Mozilla и Microsoft в своих проектах Rust применяют Google, Facebook, Amazon, Dropbox, Fastly, Baidu.
В августе 2019 г. в рамках саммита по технологиям с открытым исходным кодом (Open Source Technology Summit) Джош Триплетт (Josh Triplett), ведущий инженер Intel, рассказал о том, что его компания заинтересована в том, чтобы в ближайшем будущем Rust достиг «паритета» с доминирующим в области системной и низкоуровневой разработки языком C.

В том же месяце Грег Кроа-Хартман (Greg Kroah-Hartman), один из ключевых разработчиков ядра Linux, заявил, что не станет препятствовать включению в ядро фреймворка для написания драйверов на языке Rust.

CNews
 
Назад
Сверху Снизу