Linus Torvalds intenționează să includă modificările legate de Rust pe calea de ocolire a mentenabilor

Christoph Hellwig, mentenanța subsystemului DMA, KVM, Slab Allocator și arhitectura PowerPC în nucleul Linux, a refuzat în mod principial să accepte în nucleu înveliri Rust pentru subsistemul DMA și s-a alăturat discuției despre regulile de întreținere a Rust în cadrul nucleului, publicate de proiectul Rust for Linux. În opinia lui Christoph, astfel de reguli sunt inutile până când nu sunt convenite cu comunitatea și incluse în documentația nucleului.

De asemenea, Christoph a subliniat că regulile conțin informații incorecte referitoare la faptul că mentenanții pot lua decizii singuri cu privire la includerea codului legat de Rust în subsistemele lor. Potrivit lui Christoph, într-o discuție privată, Linus Torvalds a declarat că este ferm hotărât să accepte cod Rust în nucleu, în ciuda obiecțiilor mentenanților. Astfel, dezvoltatorii și mentenanții nucleului vor trebui acum să se ocupe de Rust, indiferent dacă vor sau nu.

Christoph a comparat din nou răspândirea învelirilor Rust cu o tumoră canceroasă care se va extinde pe toate subsistemele nucleului și va duce la fragmentare. Dintr-o unitate compactă, nucleul se transformă într-un proiect scris în mai multe limbaje, fără o definiție clară a momentului în care un limbaj ar trebui folosit. Potrivit lui Christoph, lucrul cu o astfel de bază de cod mixtă a devenit pentru el cel mai rău coșmar, deoarece în aceste condiții se face continuu rescrierea codului de pe un limbaj pe altul și apoi înapoi.

În acest context, Christoph cere să i se clarifice scopul introducerii Rust în nucleu. Dacă scopul este de a rezolva problemele de securitate care apar în urma lucrului la nivel de memorie, atunci este necesară modernizarea codului existent. Având în vedere că mentenanții reacționează în mod dureros chiar și la lucruri triviale, cum ar fi verificările de depășire a capabilității întregi, nu este clar cum se poate depăși disconfortul între o parte a nucleului care nu acceptă nici măcar reguli simple de securitate și cealaltă parte care respectă reguli stricte. Dacă scopul este simplificarea dezvoltării driverelor, atunci introducerea suportului pentru un alt limbaj va adăuga doar muncă suplimentară și va crește povara asupra oamenilor deja supraîncărcați care mențin infrastructura nucleului în stare de funcționare.

Cât despre susținătorii integrării Rust în nucleu, aceștia enumără următoarele obiective:

  • Scrierea noului cod în limbajul Rust va reduce riscul de erori în gestionarea memoriei și al stărilor de competiție, precum și va exclude unele erori logice.
  • Pentru mentenanți, va fi mai simplu să revizuiască modificările și să realizeze refactorizări ale modulelor având în vedere garanțiile oferite de limbajul Rust.
  • Prezența ablațiunilor care utilizează funcționalitățile avansate ale limbajului Rust va simplifica crearea de noi drivere și module.
  • Susținerea unui limbaj modern va atrage noi participanți în dezvoltarea nucleului.
  • Utilizarea capabilităților instrumentarului Rust va simplifica îndeplinirea cerințelor de documentare a codului. De exemplu, în proiectul Rust for Linux a fost introdusă cerința de documentare obligatorie a API-urilor publice, cerințelor de securitate, blocurilor unsafe și invariantelor de tip.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster