Microsoft идет на ржавчине для основной инфраструктуры и многое другое

Недавно я писал о Марке Руссновичу, Microsoft Azure The CO, рассказывая о том, как Rust Code доставлен в Windows, но я не охватывал все, что он сказал в Rustconf 2025 в начале этого месяца в Сиэтле. На самом деле, я даже не покрывал половину.

В то время как я писал в первую очередь о переписывании Microsoft компонентов Windows в Rust, это был лишь вступительный акт для Russinovich в его основной доме на этом мероприятии. Он провел большую часть своего разговора, демонстрируя проекты, которые показывают, как далеко пройденная кроличья дыра, Microsoft фактически ушла.

Виртуальные машины за миллисекунд

Его дискуссия о гипергалке была действительно впечатляющей. Russinovich показал систему, которая разворачивает виртуальные машины (VMS) в 1,5 миллисекундах. Не контейнеры — фактические виртуальные машины с правильными границами изоляции.

«Послушайте, мы не хотим полномасштабного гипервизора с полномасштабной операционной системой, просто чтобы запустить какой-то код пользователя, которому мы не доверяем»,-сказал он, подтягивая слайды, показывая архитектуру. «Это очень излишняя для выполнения крошечной функции».

Hyperlight начинался как прототип C#, но был переписан в ржавчине, когда производительность стала критической. Теперь он обрабатывает реальное трафик в входной двери Azure, где клиенты могут развернуть функции Edge, которые обрабатывают сетевые запросы. В случае использования имеет смысл — вам нужна сильная изоляция для ненадежного кода, но традиционные виртуальные машины слишком медленные для функций, которые могут работать тысячи раз в секунду.

Что впечатляет в Hyperlight, так это то, насколько он минимален. Нет гостевой ОС, просто небольшая среда выполнения, которая обеспечивает API для кода, работающего внутри. Он поддерживает Webassembly и собственные двоичные файлы, но в любом случае поверхность атаки крошечная по сравнению с полным стеком виртуальной машины.

Кроме того, все это открытый исходный код, сказал Русснович.

Полезная интеграция сборки

Microsoft также рассмотрела вопрос о том, как использовать ржавчину в существующих проектах, не переписывая все.

Их ответ — плагин грузового плана для MSBuild, который позволяет вам сбросить модули ржавчины в кодовые базы C ++ и C#. Руссович признал, что это родилось из -за необходимости: «Мы не можем просто сказать командам, чтобы выбросить миллионы линий рабочего кода».

Плагин прост: вы пишете свой код ржавчины, груз строит его, а MSBuild относится к нему как к любой другой зависимости. Но получить сведения о связывании и ABI правильно приняли серьезную работу. Microsoft также открыла это, что говорит о том, что другие компании столкнутся с той же проблемой.

Это похоже на тот тип практического инструмента, который мог бы переместить иглу при усыновлении. Большинство компаний не собираются переписать целые приложения, но они могут заменить критические модули, если это достаточно легко.

Рекомендации, которые не отстой

Russinovich сказал, что Microsoft также опубликовала свои «прагматические рекомендации ржавчины» — по сути, свою внутреннюю пьесу для написания кода ржавчины в масштабе предприятия. Он был прямо в этом: «Если вы опытный разработчик ржавчины, ничто из этого не удивит вас. Это действительно для людей, которые являются новыми».

Интересно, что они сделали две версии — одну для людей и конденсированную версию, специально отформатированную для помощников по кодированию ИИ. «Вы можете бросить это в свои инструкции по копированию, и ИИ на самом деле будет следовать за ним», — отметил Русснович.

Руководящие принципы охватывают такие вещи, как шаблоны обработки ошибок, лучшие практики по внешней функции (FFI) и когда использовать различные асинхрологические времена. Ничего революционного, но иметь официальные рекомендации Microsoft могли бы помочь командам избежать общих ошибок.

AI-оптимизированная версия-это умное прикосновение, так как в наши дни много Rust-Code написан с помощью AI. Наличие руководящих принципов, которые хорошо работают с этими инструментами, показывает, что Microsoft практически думает о том, как происходит развитие.

Переписывание драгоценностей короны

Затем Русснович объяснил, что Microsoft находится в процессе переписывания своей криптографической библиотеки Symcrypt в Rust.

Symcrypt — это не просто другая библиотека. Это криптографическое ядро ​​Microsoft — код, который обрабатывает RSA, эллиптические кривые и любую другую часть криптографии по окнам, лазуре и офису. «Это буквально самый чувствительный код, который у нас есть», — сказал Русснович.

Но это не просто прямой порт. Microsoft Research имеет формальные инструменты проверки для ржавчины, поэтому оно доказывает математические свойства нового крипто -кода. Проверенная ржавчина может даже быть перенесена обратно в C ++ для более легкой интеграции с существующими системами.

Новые алгоритмы, такие как ML-KEM (стандарт обмена ключами после Quantum) написаны ржавчиной с нуля. Это говорит о том, что Microsoft считает, что Rust будет его крипто -языком в будущем не только для новых проектов, но и для его наиболее важного существующего кода.

Тот факт, что он готов прикоснуться к Symcrypt вообще, показывает, насколько уверенно он стал в Rust Tooling и Experize.

АИ-двигательный перевод кода

Самая футуристическая часть разговора включала технологию Microsoft GraphRAG, применяемая к переводу кода. Russinovich продемонстрировал инструмент, который автоматически преобразует приложения Python в Rust, сохраняя структуру и функциональность.

Он показал простую игру с боковой прокруткой, написанную на Python: три файла, может быть, всего 200 строк. Инструмент перевода проанализировал структуру кода, понял взаимосвязь между модулями и сгенерированным эквивалентным кодом ржавчины, который составлял и работал одинаково.

«Нормальный LLM [large language model] Перевод дает вам мусор », — сказал Русснович, показывая разбитый код из стандартного перевода CHATGPT.« Но если вы дадите ИИ семантическое понимание всей кодовой базы, он может рассуждать о том, что на самом деле делает код ».

Демонстрация работала, но неясно, насколько хорошо это масштабируется для более крупных, более сложных кодовых баз. Игра на Python с тремя файлами-это одно; Приложение C ++ на миллион линии является еще одним.

Тем не менее, если Microsoft сможет сделать автоматизированный перевод надежным, это может решить самый большой барьер для внедрения ржавчины. У большинства компаний есть огромные существующие кодовые базы, которые они не могут позволить себе переписать вручную.

Проверка реальности

Тем не менее, Русснович был удивительно откровенен в отношении грубых краев Руста. По его словам, внутренние опросы Microsoft показывают, что разработчики все еще борются с Interop, асинхронной отладкой и динамичным связью. Кривая обучения для разработчиков C ++ действительно сложно.

«Это шок, когда вы приезжаете из C ++», — признался он. «Ваш мозг должен полностью пересмотреть, как вы думаете о памяти и собственности».

Но даже разработчики, которые жалуются на ржавчину, не хотят возвращаться к C ++, сказал он. Через несколько месяцев они адаптируются и становятся адвокатами. Производительность неизменно лучше. Целые категории ошибок просто исчезают.

Microsoft приложила серьезные усилия для улучшений инструментов — интеграция кода Visual Studio, поддержка отладчиков, лучшие сообщения об ошибках. Они также обнаружили, что помощники по кодированию ИИ очень помогают с кривой обучения Руста.

Большая картина

Презентация Руссовича показала масштаб ставки Microsoft на ржавчину. Он не просто использует его для новых проектов — он систематически заменяет C ++ в своих наиболее важных системах. Win32k.sys, Hyper-V, Symcrypt, Azure Data Explorer. Это не эксперименты; Это производственные системы, обрабатывающие масштаб.

Структура драйвера выходит за рамки собственного кода Microsoft. Если поставщики оборудования начинают писать драйверы ржавчины, Windows становится более безопасной, если Microsoft выполняет всю работу.

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

Действительно ли это происходит, зависит от исполнения. Автоматический перевод должен надежно работать на сложных кодовых базах. Построение интеграции должна быть плавной. Безопасные абстракции для разработки водителя должны быть полными и хорошо документированными.

Но Microsoft, похоже, привержена тому, чтобы заставить его работать. Как сказал Русснович: «Руста пронизывает нашу основную инфраструктуру. Это просто ускоряется».

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэррил К. Тафт охватывает DevOps, инструменты разработки программного обеспечения и проблемы, связанные с разработчиком из своего офиса в районе Балтимора. Он имеет более чем 25 -летний опыт работы в бизнесе и всегда ищет следующий совок. Он работал … читайте больше от Дэррила К. Тафта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *