Добавить в корзинуПозвонить
Найти в Дзене
Борис Державец

Использование Rust в эмуляторе QEMU набирает обороты

Эмулятор процессора QEMU, играющий важную роль в стеке виртуализации Linux с открытым исходным кодом, получает экспериментальную поддержку языка программирования Rust, развивающегося в его кодовой базе. Продолжается значительный прогресс в поддержке Rust, поскольку все больше компонентов QEMU переносится на этот язык программирования для обеспечения безопасности памяти и других преимуществ безопасности. Паоло Бонзини из Red Hat в пятницу опубликовал обновление о текущем использовании Rust в QEMU. Поддержка Rust пока остается экспериментальной, но были внесены улучшения в привязки Rust, и теперь в коде Rust стало возможно больше функций. Бонзини подытожил текущее состояние Rust в QEMU следующим образом: <<«В целом, он сказал, что прогресс хороший: большинство недостающих функций, упомянутых в предыдущем обновлении, были исправлены или, по крайней мере, имеют план на ближайшие несколько месяцев. QEMU при сборке с ``--enable-rust`` компилируется на всех поддерживаемых платформах сборки.
Really why
Really why

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

Паоло Бонзини из Red Hat в пятницу опубликовал обновление о текущем использовании Rust в QEMU. Поддержка Rust пока остается экспериментальной, но были внесены улучшения в привязки Rust, и теперь в коде Rust стало возможно больше функций. Бонзини подытожил текущее состояние Rust в QEMU следующим образом:

<<«В целом, он сказал, что прогресс хороший: большинство недостающих функций, упомянутых в предыдущем обновлении, были исправлены или, по крайней мере, имеют план на ближайшие несколько месяцев.

QEMU при сборке с ``--enable-rust`` компилируется на всех поддерживаемых платформах сборки. Он проходит CI (Continuous integration ) и ``make check-unit`` запускает тесты для rust/qemu-api. ``make check-qtests`` охватывает модели устройств Rust pl011 и HPET, включая миграцию первой. pl011 полностью реализован с использованием безопасного кода (за исключением миграции и свойств qdev). HPET использует небезопасный в некоторых небольших и довольно хорошо ограниченных случаях. После предыдущего обновления стали очевидны некоторые ошибки в коде ранних привязок; в частности, правила сирот слишком усложнили реализацию классов вне контейнера qemu_api и, в целом, разделение контейнера qemu_api на несколько частей — например, частей, которые представляют интерес для инструментов, и частей, которые используется только эмуляторами систем.

Еще одним важным изменением является разделение между типами, сгенерированными bindgen, и структурами, которые фактически используются кодом Rust. Это позволяет указывать такие черты, как Send, Sync или Zeroable, независимо для структур C и Rust. >>

Continuous integration (CI) это практика автоматизации интеграции изменений кода от нескольких участников в единый программный проект. Это основная передовая практика DevOps, позволяющая разработчикам часто объединять изменения кода в центральном репозитории, где затем запускаются сборки и тесты.