Heves vita alakult ki a Rust nyelv Linux kernelen belüli alkalmazhatóságáról a fejlesztői levelezőlistán.

A Linux kernel fejlesztői levelezőlistáján egy komoly vita bontakozott ki a Rust programozási nyelv bevezetése körül. A levélfolyamban több fejlesztő is kifejtette véleményét a nyelv alkalmazásáról, különböző szempontok alapján. Az egyik legfőbb vitaforrás a Rust stabilitása, valamint annak összeegyeztethetősége a kernel hagyományos C kódjával és annak fejlesztési gyakorlatával.

Heves vita alakult ki a Rust nyelv Linux kernelen belüli alkalmazhatóságáról a fejlesztői levelezőlistán.

Christoph Hellwig kritikája a Rust Linux kernelbe történő integrációja kapcsán

Christoph Hellwig, aki a DMA vezérlők és más kernel területek karbantartója, régóta kritikusan viszonyul a Rust használatához a kernelben. Hellwig úgy véli, hogy a Rust kód hosszú távú fenntarthatósága és integrálhatósága komoly problémákat vet fel, különösen a kernel fejlesztésében. Szerinte a Rust kód integrálása nemcsak a különböző programozási nyelvek közötti különbségeket hozza előtérbe, hanem egyre inkább fragmentálja a kernel struktúráját is.

Linus Torvalds és a karbantartói ellenvetések

A legújabb fejlemények a Linux kernel fejlesztésével kapcsolatos vitákban akkor kerültek napvilágra, amikor Hellwig nyilvánosságra hozott egy levelezést, amelyben arról számolt be, hogy Linus Torvalds a magánbeszélgetéseiben kijelentette, hogy a karbantartói ellenállás ellenére is be fogja vonni a Rust kódot a kernelbe. Ez arra utal, hogy a fejlesztőknek, akármilyen személyes álláspontot képviselnek is a kérdésben, mostantól el kell fogadniuk a Rust jelenlétét a Linux kernelben.

A Rust „bindingek” problémája

Hellwig szerint a Rust kód, különösen a „bindingek”, amelyek a kernel és a Rust közötti kommunikáció érdekében készülnek, nemcsak nem illeszkednek jól az idiomatikus Rust kódba, hanem egy jelentős szemantikai szakadékot próbálnak áthidalni a Rust és a kernel adatstruktúrák között. A bindingek egyre inkább minden egyes alrendszerbe és könyvtárba beférkőznek, ami szerinte a kernel kódjának irreverzibilis fragmentálódásához vezethet. A Linux így egy többnyelvű kódbázissá válhat, amelyben nincs világos irányelv arra vonatkozóan, hogy melyik nyelvet kell alkalmazni a különböző moduloknál, és ez alapvetően ellentmond a projekt hagyományos egységességre vonatkozó céljainak.

A Rust bevezetésének célja és hatásai

Hellwig szerint a Rust bevezetésének célja nem lehet csupán a driverek írásának egyszerűsítése, mivel ez további munkát és terhet jelentene azok számára, akik a kernel alapinfrastruktúráját tartják karban. A meglévő memória-biztonsági problémák, mint például a túlcsordulás és a nem megfelelő szinkronizáció, szerinte sokkal inkább megoldhatók lennének a meglévő C kódbázisban anélkül, hogy új nyelvek alkalmazására lenne szükség. Így a Rust bevezetése valójában egy újabb terhet róhat a már amúgy is túlterhelt fejlesztőkre.

Dan Carpenternek ironizálni támadt kedve

A levelezésben más karbantartók és kernel fejlesztők is megosztották véleményüket. Ilyen volt Dan Carpenter, aki szintén a Linux kernel fejlesztésében dolgozik, aki hozzászólásában kifejtette, hogy szerinte a kernel alapvető stabilitása és a nyelvi szabályok nem állnak összhangban. Carpenter ironikusan felvetette, hogy a jelenlegi gyakorlat, amely szerint a kódot folyamatosan egyik nyelvről a másikra konvertálják „nyelvi” okokból, végül a fejlesztők túlterheltségét növelheti.

Hellwig végkövetkeztetése a „Rust for Linux” projekt kapcsán

A”Rust for Linux” projekt célja, hogy meghatározza a Rust kernel politikáját, ám Hellwig véleménye szerint, ha a szabályokat Linus Torvalds határozza meg, akkor nem sok változásra számíthatunk, mivel a döntések központilag, Torvalds akaratán alapulnak. Hellwig végül arra a következtetésre jutott, hogy ha a cél a Rust kód integrálása, akkor azt világos elvárásokkal és irányelvekkel kellene megerősíteni.