LinuxRustCanonical

Canonical: KI soll C-Code in Rust übersetzen

Canonical und UKRI finanzieren ein dreijähriges Forschungsprojekt zur KI-gestützten Übersetzung großer C-Codebasen in sicheren Rust-Code. Untersucht wird, ob sich dabei auch über Jahre gewachsenes Wissen über Sonderfälle erhalten lässt.

Canonical: KI soll C-Code in Rust übersetzenBild: KI-generiert

Canonical erforscht die Modernisierung großer C-Codebasen

Canonical finanziert gemeinsam mit UK Research and Innovation ein dreijähriges Promotionsprojekt an der Universität Bristol. Die Programming Languages Research Group soll untersuchen, ob Large Language Models umfangreiche C-Programme in sicheren, wartbaren und verhaltensgetreuen Rust-Code überführen können.

Im Fokus stehen Codebasen mit Hunderttausenden Zeilen. Diese sollen zunächst automatisiert in kleinere Komponenten zerlegt und anschließend schrittweise übersetzt werden. Ob diese Zerlegung zuverlässig funktioniert, ist eine zentrale und bislang offene Forschungsfrage.

AspektAngabe
Laufzeit3 Jahre
ForschungseinrichtungProgramming Languages Research Group, Universität Bristol
FinanzierungCanonical und UK Research and Innovation
Untersuchungsobjektesnap-confine und AppArmor
ZielSicherer, wartbarer und verhaltensgetreuer Rust-Code

Warum bisherige Übersetzer nicht ausreichen

Source-to-Source-Übersetzer übertragen Quellcode automatisiert von einer Programmiersprache in eine andere. Solche Werkzeuge können große Mengen C-Code verarbeiten, übernehmen dessen Strukturen und Eigenheiten aber häufig zu wörtlich.

Das Ergebnis lässt sich dann zwar als Rust kompilieren, nutzt jedoch weiterhin viele unsafe-Operationen. Diese Bereiche setzen zentrale Sicherheitsgarantien von Rust außer Kraft, etwa beim direkten Umgang mit Speicher. Zusätzlich bleiben schwer wartbare C-Idiome erhalten, wodurch erhebliche manuelle Nacharbeit notwendig wird.

Herkömmliche Übersetzer können große Codemengen verarbeiten, bewahren die C-Struktur aber oft zu genau. Der erzeugte Rust-Code kompiliert zwar, verwendet jedoch weiterhin unsichere Operationen, übernimmt unhandliche C-Muster und benötigt viel manuelle Überarbeitung, bevor Rust-Verantwortliche ihn dauerhaft pflegen würden, so Canonicals Engineering-Vizepräsident Jon Seager sinngemäß.

Das Forschungsprojekt soll deshalb nicht nur Syntax austauschen. Es geht um eine strukturelle Überarbeitung, bei der Rusts Speichersicherheit tatsächlich genutzt wird und das bestehende Verhalten dennoch erhalten bleibt.

Gewachsener C-Code enthält undokumentiertes Wissen

Eine vollständige Neuentwicklung klingt oft sauberer als die Migration eines alten Systems. Sie birgt jedoch das Risiko, implizites Wissen zu verlieren. In ausgereiften C-Codebasen stecken häufig jahrelange Korrekturen für seltene Randfälle, die außerhalb des Quellcodes nie vollständig dokumentiert wurden.

Eine verhaltensgetreue Transformation könnte solche Korrekturen eher bewahren als eine Neuimplementierung auf Basis einer Spezifikation. Gleichzeitig muss verhindert werden, dass überholte Strukturen und unsichere Entwurfsmuster lediglich in einer neuen Sprache fortgeführt werden.

AnsatzPotenzialRisiko
Vollständige NeuentwicklungSaubere Architektur ohne AltlastenVerlust impliziter Sonderfallbehandlung
Klassische automatische ÜbersetzungSchnelle Verarbeitung großer CodemengenViele unsafe-Bereiche und übernommene C-Idiome
KI-gestützte RefaktorisierungStrukturelle Zerlegung und Nutzung sicherer Rust-KonzepteZuverlässigkeit bislang nicht nachgewiesen

AppArmor und snap-confine als konkrete Testfälle

Als Untersuchungsobjekte nennt das Projekt snap-confine und AppArmor. AppArmor kontrolliert auf Linux-Systemen, auf welche Dateien, Prozesse und Ressourcen Anwendungen zugreifen dürfen. snap-confine ist eine sicherheitsrelevante Komponente des Snap-Paketsystems.

Canonical hat bereits praktische Erfahrung mit Rust-Komponenten. In Ubuntu 25.10 wurden die von Menschen entwickelten Neuimplementierungen sudo-rs und uutils coreutils eingeführt. Diese Projekte entstanden allerdings als eigenständige Codebasen und nicht durch eine automatische Übersetzung bestehenden C-Codes.

Die wissenschaftliche Leitung übernehmen Jon Seager von Canonical sowie Professor Meng Wang und Dr. Cristina David von der Universität Bristol. Welche KI-Modelle oder LLM-Architekturen eingesetzt werden, ist nicht bekannt. Auch zum finanziellen Umfang der Förderung wurden keine Angaben gemacht.

Relevanz für Linux-Infrastruktur im DACH-Raum

Für Unternehmen mit Ubuntu oder Debian im Serverbetrieb ist die Forschung langfristig relevant, weil AppArmor Teil der Sicherheitsarchitektur solcher Umgebungen sein kann. Eine erfolgreiche Migration müsste allerdings mindestens dieselben Schutzfunktionen und Randfälle abdecken wie die etablierte C-Implementierung.

Der Einsatz von KI löst zudem nicht automatisch die Anforderungen an Prüfung und Wartung. Wie bei den wachsenden KI-Reviews im Linux-Kernel bleibt nachvollziehbare menschliche Kontrolle entscheidend. Rust allein schützt außerdem nicht vor manipulierten Abhängigkeiten, wie der Angriff auf Rust-Pakete bei crates.io gezeigt hat.

Für Industrieunternehmen mit eigenen C- oder C++-Systemen könnte der Ansatz dennoch eine Alternative zwischen teurer Komplettentwicklung und dauerhafter Pflege unsicherer Altsoftware schaffen. Statt eine proprietäre Blackbox einzukaufen, ließe sich vorhandener Code möglicherweise mit KI-Unterstützung in eine offen kontrollierbare und speichersichere Architektur überführen.

Bis dahin bleibt das Vorhaben Grundlagenarbeit. Entscheidend ist nicht, ob ein Modell gültigen Rust-Code erzeugt, sondern ob es große Systeme sinnvoll zerlegen, ihr Verhalten bewahren und einen dauerhaft wartbaren Stand erreichen kann.