Kita „Rust“ iteracija „Linux 6.2“ atgaivina diskusijas apie C pakeitimą į Rust

RustLinux

„Rust“ integracija „Linux“ sulaukė didelio bendruomenės ir kūrėjų pritarimo

Vienas iš pagrindinės problemos, iškilusios kuriant branduolį Linux ilgą laiką, yra idėja rasti tobulą kandidatą pakeisti programavimo kalbą „C“ – modernesniam ir dar visai neseniai, atėjus „Rust“, ši idėja nenustojo keliama ant stalo.

Su pirmąja „Rust“ peržiūra „Linux 6.1“, Aš atgaivinu didelės dalies kūrėjų nuotaiką iš branduolio ir Jonathanas Corbetas atkreipia dėmesį į tai, kad „branduolyje vis tiek neužtektų rūdžių, kad būtų galima nuveikti ką nors įdomaus“, šios kalbos įtraukimas vėl įžiebė diskusiją dėl būtinybės atmesti C kalbą, pakeičiant Rustą. sistemos programavimo. Klausimas skaldo kūrėjų bendruomenę.

asahi linija ėmėsi užduoties sukurti grafikos apdorojimo bloko (GPU) tvarkyklę Mac M1 in Rust.

Apie jūsų Rust ir C kalbų palyginimą mini, kad:

„Nėra jokios galimybės, kad jums nereikės susidurti su lygiagrečios prieigos valdymu, bandymais pasiekti atminties sritis po išleidimo ir visokiomis kitomis problemomis, jei tai rašytumėte C. Visos lygiagretumo problemos išnyksta naudojant Rust! Atmintis atlaisvinama, kai reikia! Kai išmoksite, kad „Rust“ veiktų jums, manau, tai padės jums parašyti tinkamą kodą, net ir viršijant kalbos saugumo pažadus. Tai tikrai stebuklinga! »

"Yra daug diskusijų apie tai, ar Rust yra naudinga branduolyje, ar ne... Mano patirtis rodo, kad tai daug naudingiau, nei aš kada nors įsivaizdavau!" “, – priduria ji.

Jūsų komentarai tarsi kartojasi iš techninių priežasčių, kurios tikriausiai pateisina C kalbos atsisakymą Rusto naudai. Tiesą sakant, 15,9 % iš 2288 20 pažeidžiamumų, kurie paveikė Linux branduolį per XNUMX metų (CVE) žodyno skaičiai, yra susiję su C kalbos trūkumais, problemomis, susijusiomis su atminties valdymu: buferio perpildymu. , paskirstymai neatlaisvinti, prieiga prie netinkamų ar atlaisvintų atminties sričių ir kt.

Be to, pagrindiniai Linux branduolio prižiūrėtojai yra susipažinę su C kalba, kurios amžius jau laikomas trečiuoju. Daugėja naujos kartos prižiūrėtojų, kurių amžiaus grupė yra trisdešimties metų, ir todėl sunku rasti Linux branduolio prižiūrėtojus, jei bus toliau plėtojama C kalba. Priežastys, kodėl Linusas Torvaldsas atvėrė duris branduoliui plėtra Rust.

Kalbant apie galimybę atsisakyti C kalbos, C kalbos kūrėjas išvardija daugybę priežasčių, kodėl iniciatyvos gali žlugti kurie eina šia kryptimi:

VS kalbos įrankių grandinė

C kalba yra ne tik pati kalba, bet ir visi šiai kalbai sukurti kūrimo įrankiai.

Ar norite atlikti statinę šaltinio kodo analizę? – Daug žmonių šiuo klausimu dirba C. Įrankiai, skirti aptikti atminties nutekėjimą, duomenų lenktynes ​​ir kitas klaidas? Jų yra daug, net jei jūsų kalba yra geriau parengta.

Jei norite nukreipti į mažai žinomą platformą, tikėtina, kad naudojate C. C kaip lingua franca kompiuterijos statusą, todėl verta rašyti įrankius, ir daugelis įrankių yra parašyti.

Jei kas turi veikiančią įrankių grandinę:

kam rizikuoti keisti kalbą? „Geresnis C“ turėtų sukurti daug papildomo našumo, kad būtų motyvuotas laikas, praleistas kuriant naują įrankių grandinę. Ar tai įmanoma, dar reikia pamatyti.

Naujos kalbos neapibrėžtumai

Kol kalba nesubręsta, ji greičiausiai bus klaidinga. ir yra gerokai modifikuotas siekiant išspręsti kalbos semantines problemas. Ir ar kalba net atitinka skelbimą? Jis gali pasiūlyti kažką panašaus į „išskirtinį kompiliavimo laiką“ arba „greitesnį nei C“, tačiau šiuos tikslus sunku pasiekti, kai kalba prideda

O prižiūrėtojai? Žinoma, galite naudoti atvirojo kodo kalbą, bet abejoju, kad daugelis įmonių būtų suinteresuotos naudoti kalbą, kurią vėliau gali būti priverstos naudoti. Lažintis dėl naujos kalbos yra didelė rizika.

Tai, kad kalba gali būti nepakankamai gera

Ar kalba sprendžia tikrąsias C skausmo vietas?

Pasirodo Žmonės ne visada sutaria, kokios yra C silpnosios pusės. Atminties paskirstymas, masyvo ir eilučių tvarkymas dažnai yra sudėtingas, tačiau naudojant tinkamas bibliotekas ir gerą atminties strategiją, jų galima sumažinti.

Ar kalba nesprendžia problemų, kurios pažengusiems vartotojams nelabai rūpi? Jei taip, jo tikroji vertė gali būti daug mažesnė nei tikėtasi.

Ir dar blogiau, jei kalba praleidžia esminius bruožus, kurie yra C? Funkcijos, kuriomis pasitiki pažangūs C programuotojai? Ši rizika padidėja, jei kalbos kūrėjas nenaudojo daug C, bet ateina iš C++, Java ir kt.

Trūksta patyrusių kūrėjų naujai kalbai

Nauja kalba, žinoma, turės daug mažesnį patyrusių kūrėjų būrį. Bet kuriai vidutinei ar didelei įmonei tai yra didelė problema. Kuo daugiau kūrėjų bus prieinama įmonei, tuo jai geriau.

Be to, jei įmonė turi C kūrėjų įdarbinimo patirties, jie nežino, kaip įdarbinti šią naują kalbą.

Galiausiai, jei norite sužinoti daugiau apie tai, galite kreiptis į išsami informacija šioje nuorodoje.


Straipsnio turinys atitinka mūsų principus redakcijos etika. Norėdami pranešti apie klaidą, spustelėkite čia.

Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.