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.
| Aspekt | Angabe |
|---|---|
| Laufzeit | 3 Jahre |
| Forschungseinrichtung | Programming Languages Research Group, Universität Bristol |
| Finanzierung | Canonical und UK Research and Innovation |
| Untersuchungsobjekte | snap-confine und AppArmor |
| Ziel | Sicherer, 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.
| Ansatz | Potenzial | Risiko |
|---|---|---|
| Vollständige Neuentwicklung | Saubere Architektur ohne Altlasten | Verlust impliziter Sonderfallbehandlung |
| Klassische automatische Übersetzung | Schnelle Verarbeitung großer Codemengen | Viele unsafe-Bereiche und übernommene C-Idiome |
| KI-gestützte Refaktorisierung | Strukturelle Zerlegung und Nutzung sicherer Rust-Konzepte | Zuverlä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.

