A Canonical új projektet támogat a nagy C kódbázisok biztonságos Rusttá fordítására

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A Canonical egy új, hároméves kutatási projektet támogat, amelynek célja, hogy gyakorlatban is használhatóvá tegye nagy, kiforrott szoftverprojektek automatikus átültetését C-ről Rust-ra. A projektet a Canonical és az Egyesült Királyságban működő Bristoli Egyetem közösen viszi, a munka 2026 vége felé indul.

A fő cél egy teljes platform létrehozása, amely képes nagy kódtárolók – akár több százezer soros C-kód – lefordítására biztonságos, megbízható és jól karbantartható Rust-ra.

A nagyobb kihívást azonban az a hatalmas mennyiségű, már most is használt, kiforrott C-szoftver jelenti. Ezek kézi újraírása drága és kockázatos, mert a kódjukban gyakran évek javításai, kompatibilitási frissítései, teljesítményhangolásai és rejtett tudása halmozódott fel.

A jelenlegi forrás–forrás fordítók csak a probléma egy részét kezelik. A Canonical szerint ezek az eszközök ugyan sok kóddal megbirkóznak, de túl szorosan másolják a C-szerkezeteket. Így olyan Rust-kód születik, amely továbbra is támaszkodik nem biztonságos funkciókra, megőrzi a C-stílusú mintákat, és rengeteg utólagos takarítást igényel, mielőtt Rust fejlesztők szívesen karbantartanák.

Az LLM-ek más jellegű kihívással szembesülnek. Gyakran tudnak jó, idiomatikus Rust-kódot írni kisebb, jól körülhatárolt kódrészletekre, de egy teljes tároló kontextusának kezelése sokkal nehezebb. Ráadásul a ránézésre helyes kód nem feltétlenül viselkedik ugyanúgy, mint az eredeti C-változat.

Erre a problémára a projekt egy hibrid, úgynevezett „neuroszimbolikus” megközelítést alkalmaz. Ez a gépi tanulást hagyományos programanalízissel, teszteléssel és formális módszerekkel ötvözi.

A Canonical szerint a nagy kódtárolókat először kisebb részekre bontják, amelyeket külön is le lehet fordítani, miközben megőrzik a típusokra, függőségekre és a program működésére vonatkozó kulcsfontosságú információkat.

A fordítás olyan nyelvi modelleket használ majd, amelyeket ismert C–Rust példákon tanítottak. A cél, hogy olyan Rust-kód szülessen, amely valódi Rust funkciókat használ, ahelyett hogy pusztán lemásolná a C-szintaxist. A fordítás után ellenőrzik, hogy az új kód ugyanúgy viselkedik-e, mint az eredeti C-verzió.

Ubuntu felhasználók számára fontos, hogy a kutatás nem áll meg a kis, akadémiai példáknál. A Canonical az AppArmor és a Snap-confine projekteket is beemeli, mint valós, gyakorlati esettanulmányokat.

Ugyanakkor a Canonical egyértelművé teszi, hogy az AppArmor-t és a Snap-confine-t jelenleg nem írják át Rust-ra. Ezeket a projekteket kizárólag esettanulmányként használják a technológia tesztelésére, és nincs tervben, hogy a mostani verzióikat lecseréljék a kutatás eredményeire.

Végül érdemes megemlíteni, hogy a kezdeményezés illeszkedik a Canonical szélesebb körű Rust-adaptációjába Ubuntu-on belül. A cég példaként említi az olyan projekteket, mint a uutils coreutils és a sudo-rs, amelyek Rust-ban készült megvalósításokként már helyet kaptak a disztribúcióban.

További részletek a Ubuntu Discourse csatornáiról érhetők el.