Canonical финансирует проект по автоматическому переводу C-кода на Rust для Ubuntu Linux.
Это трёхлетняя совместная работа с Бристольским университетом и UK Research and Innovation.
И это не эксперимент в духе «вот мой C-код, перепиши его на Rust и ничего не сломай».
Процесс состоит из четырёх этапов — кодовую базу разбивают на части с учётом зависимостей, затем переводят с помощью моделей, обученных на реальных примерах миграции C → Rust, после чего проверяют через фаззинг и формальную эквивалентность, а найденные расхождения пытаются автоматически исправлять с помощью символьного восстановления программ.
В качестве первых целей выбрали AppArmor и snap-confine — критически важные для безопасности компоненты, которые входят в каждую установку Ubuntu.
Выбор интересный. Автоматически переписать какую-нибудь вспомогательную библиотеку — одно. Начать сразу с критичных компонентов — совсем другое.
Пока это всё ещё исследовательский проект. Три года — большой срок, а диссертация сама по себе ещё не означает готовый продукт.
Но если их система проверки действительно окажется надёжной, такой подход вполне может стать способом массово переносить Linux-проекты с C на Rust. По крайней мере внутри Ubuntu.
👉 @Cpportal
Это трёхлетняя совместная работа с Бристольским университетом и UK Research and Innovation.
И это не эксперимент в духе «вот мой C-код, перепиши его на Rust и ничего не сломай».
Процесс состоит из четырёх этапов — кодовую базу разбивают на части с учётом зависимостей, затем переводят с помощью моделей, обученных на реальных примерах миграции C → Rust, после чего проверяют через фаззинг и формальную эквивалентность, а найденные расхождения пытаются автоматически исправлять с помощью символьного восстановления программ.
В качестве первых целей выбрали AppArmor и snap-confine — критически важные для безопасности компоненты, которые входят в каждую установку Ubuntu.
Выбор интересный. Автоматически переписать какую-нибудь вспомогательную библиотеку — одно. Начать сразу с критичных компонентов — совсем другое.
Пока это всё ещё исследовательский проект. Три года — большой срок, а диссертация сама по себе ещё не означает готовый продукт.
Но если их система проверки действительно окажется надёжной, такой подход вполне может стать способом массово переносить Linux-проекты с C на Rust. По крайней мере внутри Ubuntu.
👉 @Cpportal