A Linux kernel dráma közepette érkezett a Rust 1.85.0

 Az 1.85 a 2024-es kiadás egy újabb javítása, amely tovább javítja memóriabiztonságot és az egyidejűségi modelleket és igyekszik egy jobb és megbízhatóbb eszközöket nyújtani teljesítménykritikus rendszerek fejlesztéséhez. A Rust elfogadtatása azonban, pont ott halad a legnehezebben, ahol a leginkább létjogosultsága van, a Linux kernel fejlesztésében.

A változások, amelyek szintaktikai és szemantikai kérdéseket is érintenek a visszafelé kompatibilitás szem előtt tartásával kerültek bevezetésre, hogy a meglévő kódbázisok destabilizálása nélkül lehessen a projektekbe a frissítéseket bevezetni. Tehát maga a nyelv tervezése és az azt övező filozófiák is azt sejtetik, hogy ez az a nyelv amivel kernel szinten dolgozni érdemes.

Főbb Rust 2024 változások

A Return Position Impl Trait élettartam rögzítési szabályai

Az egyik legjelentősebb változás a return position impl Trait (RPIT) típusok rögzítési szabályait érinti. A 2024-es kiadás módosítja az alapértelmezett élettartamrögzítési viselkedést, hogy kizárja a paraméterek implicit rögzítését, hacsak nem kérik kifejezetten a use<...> szintaxissal. Ez a módosítás megakadályozza a véletlen élettartam-bővítési forgatókönyveket, amelyek korábban finom hibákhoz vezettek az aszinkron függvényekben és a trait implementációkban. A régebbi kódbázisokat migráló fejlesztőknek ellenőrizniük kell a visszatérési típusaláírásokat, különösen az általános paramétereket aszinkron műveletekkel kombináló kontextusokban.

Időbeli hatókör-beállítások

A kiadás finomított időbeli hatókörszabályokat vezet be az if let kifejezések és a block tail kifejezések esetében. Az if let feltételekben létrehozott időbeliségek mostantól az egész if let blokkban fennmaradnak, kiküszöbölve ezzel a használat utáni hibák egy csoportját, amelyek akkor fordulhattak elő, amikor több mintaillesztésen keresztül hivatkoztak értékekre. Hasonlóképpen, a blokkokban lévő „tail” kifejezések hosszabb időbeli élettartamot kapnak, ami lehetővé teszi a kifejezések természetesebb láncolását mesterséges let-kötési követelmények nélkül. Ezek a változtatások a Rust érettségét mutatják a bonyolult vezérlésáramlási minták biztonságos kezelésében.

Natív aszinkron lezárások támogatása

A Rust 1.85.0 az async || {} szintaxis stabilizálásával teljesíti az aszinkron lezárások régóta várt ígéretét. Ez a funkció a Rust párhuzamossági eszköztárának kritikus hiányosságát zárja be azzal, hogy a zárlatok rögzíthetik a környezetüket, miközben futures-t állítanak elő. A megvalósítás három új szabványos könyvtári tulajdonságot vezet be - AsyncFn, AsyncFnMut és AsyncFnOnce -, amelyek tükrözik szinkron társaikat, de impl Future-t adnak vissza.

A következmények az aszinkronizált kódbázisokra nézve mélyrehatóak. Vegyük például ezt a HTTP-kiszolgálói middleware példát: 

async fn handle_request(req: Request) -> Response {
    let auth_token = req.headers().get("Authorization");
    let authenticate = async || {
        let db = connect_to_database().await;
        db.validate_token(auth_token.unwrap()).await
    };
    
    if authenticate().await.is_ok() {
        process_request(req).await
    } else {
        Response::unauthorized()
    }
}

 Ez a szintaxis kiküszöböli a kézi future wrappinggel kapcsolatos bojlerplate-et, miközben fenntartja a Rust szigorú tulajdonosi garanciáit az aszinkron határok között.

Rust-verzió-tudatos függőségi feloldás

A Cargo függőségi feloldója az 1.85.0-ban bevezeti a rust-verzió tudatosságot, kihasználva a Cargo.toml manifesztekben lévő rust-version mezőt. Ez a funkció megakadályozza az olyan függőségi gráf feloldást, amely a megadottnál újabb Rust verziót igényel, így hatékonyan kiküszöböli az eszközlánc-kompatibilitási problémák egy osztályát. A munkaterület karbantartók számára a feloldó mostantól szigorúan érvényesíti a default-features = false deklarációkat az örökölt függőségekre vonatkozóan, konzisztenciát teremtve a nagyméretű projektkonfigurációkban.

Stílus kiadások a Rustfmt-ben

A Rustfmt a nyelvi kiadásoktól függetlenített stíluskiadásokat vezet be, lehetővé téve a csapatok számára, hogy a modern formázási szabályokat a teljes kiadásváltás vállalása nélkül is átvegyék. Az 1.85.0 kiadás javított azonosító rendezési algoritmusokat tartalmaz, amelyek a nyers azonosítókat (r#foo) és a numerikus utótagokat következetesen kezelik a projektekben.

A Linux kernel dráma

A Linux kernelt hagyományosan C nyelven fejlesztik, de 2021-től fokozatosan elkezdték a Rust bevezetését a jobb memóriabiztonság és a gyakori programozási hibákkal szembeni kisebb sebezhetőség ígérete miatt. Azonban több fejlesztő köztük veterán kernel karbantartók, már rögtön a kezdeteknél megkérdőjelezték, hogy célszerű e különböző programozási nyelvek keverése egy ilyen kritikus helyen mint a kernel. A viták egészen odáig fajultak, hogy azok kezdtek vallási felhangot kapni.

A vita az idei év elején érte el a csúcspontot, amikor Christoph Hellwig a kernel DMA (Direct Memory Access) segédprogramjainak karbantartója elutasította azokat azokat a javításokat, amelyek lehetővé tették volna, hogy a Rust illesztőprogramok együttműködhessenek az ő C-alapú alrendszereivel. Hellwig azzal érvelt a nyelvek közötti integráció megnehezíti a karbantartást és széttöredezi a kritikus infrastruktúrát, és gyakorlatilag rákos daganathoz hasonlította a Rust betüremkedését az ő fejlesztői munkájába. A Rust fejlesztők ezt nyilván nem hagyták szó nélkül hiszen Hellwig egyértelműen korlátozásokat vezetett be olyan alrendszerek magvalósításánál amelyek nem tartoztak a felügyelete alá. A Rust fejlesztők először a közösségi médiában kerestek támogatókat, majd Linus Torvalds-ot kérték meg hogy oldja fel a problémát. Linusnak nem tetszett, hogy a Rust fejlesztők élükön Hector Martin a közösségi médiához fordultak. Miután Linus nem Matinnak adott igazat sőt őt nevezte meg a probléma forrásaként, Martin lemondott karbantartói pozíciójáról és csalódottságának adott hangot a vezetéssel kapcsolatban.

A dráma végül azzal vett pozitív fordulatot, hogy rögzítették az együttműködési irányelveket, és a Rust fejlesztéseket elismerték. A C kódok a továbbiakban nem módosíthatják úgy az apikat, hogy a Rust-ban meglévő fejlesztések működésképtelenné váljanak. Linus tehát végül felülbírálta Hellwig blokádját. 

Osszd meg ezt a cikket
ALT Linux 11.0 Education az orosz oktatási intézmények fundamentuma
Az ALT Linux egy orosz gyökerekkel rendelkező, RPM csomagkezelőre épülő Linux disztribúció, amelynek alapjait a Sisyphus csomagtár képezi. Kezdetben orosz lokalizációs erőfeszítésekből nőtte ki magát, együttműködve olyan nemzetközi disztribúciókkal, mint a Mandrake és a SUSE Linux, különös tekintettel a cirill betűs írás támogatására.
Nem támogatja tovább az X11-et GNOME 49
Bár a GNOME talán a legáltalánosabban használt asztali környezet az egyes Linux disztribúciók esetében, a fejlesztők a GNOME 49-ben mégis mélyebb szerkezeti változások mellett döntöttek, amely kihatással lesz a disztribúciók támogatására.
openEuler 24.03-LTS-SP2 a kínai nagyvállalatok meghatározó platformja
A digitális infrastruktúra jövője egyre inkább olyan operációs rendszerekre épül, amelyek képesek egyszerre kielégíteni a különböző iparágak stabilitási, innovációs és kompatibilitási elvárásait. Az openEuler, Kína első közösségi nyílt forráskódú operációs rendszere, nem csupán egy technológiai termék, hanem egy hosszú távú stratégiai törekvés eredménye, amely arra irányul, hogy független és sokrétű technológiai ökoszisztémát hozzon létre. Ennek a fejlesztési vonalnak legújabb fontos állomása az openEuler 24.03 LTS SP2.
 Mit kínál a RefreshOS 2.5 a Linux-felhasználók számára?
A Linux-disztribúciók világa gazdag, de sokszor megosztó: az egyik oldalon a komplex, puritán rendszerek, a másikon a minden igényt kielégíteni próbáló, de gyakran túlterhelt megoldások állnak. A RefreshOS e kettő közé kíván hidat verni. Az eXybit Technologies™ (korábban eGoTech™) által fejlesztett rendszer legfrissebb, 2.5-ös kiadása ezen törekvés újabb állomása, amely a Debian stabil alapjaira építve igyekszik egyszerű, mégis korszerű felhasználói élményt nyújtani.
Ufficio Zero egy olasz Linux disztribúció a fenntartható digitális munkavégzésért
Az Ufficio Zero Linux OS egy kevéssé ismert, de egyre komolyabb figyelmet érdemlő olasz fejlesztésű operációs rendszer. Elsősorban irodai és hivatali munkakörnyezetek számára készült, és különösen azoknak lehet érdekes, akik stabil, megbízható és hosszú távon is használható alternatívát keresnek a kereskedelmi rendszerekkel szemben. Az Ufficio Zero sajátos helyet foglal el a nyílt forráskódú rendszerek világában: egyszerre kíván választ adni a digitális infrastruktúra elavulására, valamint a munkavégzéshez nélkülözhetetlen szoftvereszközök elérhetőségének problémáira.
Megjelent a Kali Linux 2025.2: Mértéktartó fejlesztések egy érett rendszerben
A népszerű etikus hackelésre és kiberbiztonsági elemzésekre specializált Linux disztribúció, a Kali Linux legújabb stabil kiadása, a 2025.2-es verzió, 2025 júniusában vált elérhetővé. A fejlesztők ezúttal sem csupán karbantartási frissítéseket hoztak, hanem több olyan újdonságot is bevezettek, amelyek a rendszer használhatóságát és funkcionalitását egyaránt bővítik. A frissítések különösen azok számára lehetnek érdekesek, akik az operációs rendszert behatolástesztelésre, hálózati forgalom elemzésére vagy más biztonsági célokra használják.

Az elmúlt néhány napban megjelent Linux disztribúció frissítések