Rust var ikke fritaget for kritikken fra Linus Torvalds

For få uger siden nyheden om nogle implementeringer, der blev foretaget i den næste Linux-gren, som inkluderer et indledende sæt komponenter at udvikle enhedsdrivere på Rust-sproget.

Denne dokumentation blev offentliggjort separat om brugen af ​​Rust i Linux-kernen og et eksempel på et kernemodul med en karakterenhedsdriver på Rust-sproget. Koden blev tilføjet af Stephen Rothwell, vedligeholder af filialen.

Derefter gennemgik Linus Torvalds implementeringsgennemgangen patch af muligheder for at indstille Rust-sprogdrivere i Linux-kerne og gav udtryk for kritik.

De største klager var forårsaget af undslippe potentiale "Kørselsfejl får panik" i forkerte situationer, for eksempel i en situation uden for hukommelsen, når dynamiske hukommelsesallokeringsoperationer, herunder kerneoperationer, muligvis mislykkes.

Torvalds sagde, at et sådant fokus på kernen i grunden er uacceptabelt, Og hvis du ikke forstår dette punkt, kan du helt afvise enhver kode, der forsøger at bruge en sådan tilgang. På den anden side var udvikleren af ​​programrettelsen enig i problemet og betragtede det som løst.

Et andet problem har været forsøg på at bruge flydende punkt eller 128 bit typer, som ikke er gyldige i miljøer som Linux-kernen.

Du forstår måske ikke konsekvenserne af, hvornår det kan ske, så måske
er mindre et problem, end jeg tror det er, men grundlæggende
Jeg tror, ​​at hvis nogen Rust-kortlægning kan forårsage panik, er dette simpelthen
_ grundlæggende_ ikke acceptabelt.

Kortlægning af fejl i en ikke-core controller eller kode, og det er til
definition, al ny rustkode, kan ALDRIG forårsage
panik gyldigt. Det samme gælder for «åh, i nogle tilfælde prøvede jeg ikke brugen af
128-bit heltal eller flydende punkt '.

Så hvis Rust-kompilatoren forårsager skjulte opgaver, der ikke kan være
opdage og returnere som fejl, så tror jeg seriøst på, at alt dette
tilgang skal være helt NAK'et, og Rust-infrastrukturen,
enten på kompilerniveau eller i kerneindpakninger, har du brug for mere
arbejde.

Dette viste sig at være et mere alvorligt problem., siden i dette øjeblik Rusts centrale bibliotek er udelelig og repræsenterer en stor plet; der er ingen måde at kun anmode om nogle af funktionerne og dermed undgå brugen af ​​en eller anden problematisk funktionalitet.

Løsningen på problemet kan kræve ændringer i rustkompilatoren og biblioteket, selvom teamet endnu ikke har en strategi for, hvordan man implementerer modularitet for sprogbiblioteker.

Derudover Torvalds påpegede, at den medfølgende eksempler controller er ubrugelig og rådes til at vedhæfte som et eksempel en driver, der løser et af de virkelige problemer.

Før dette Google annoncerede sin deltagelse i et initiativ til at fremme Rust-support i Linux-kernen y forudsat tekniske aspekter af muligheden for at implementere Rust for at bekæmpe problemer, der skyldes fejl i arbejdet med hukommelse.

Google mener, at Rust er klar til at deltage i C som et udviklingssprog Linux-kernekomponenter. Artiklen giver også eksempler på brug af Rust-sproget til at udvikle kernedrivere i forbindelse med dets anvendelse på Android-platformen (Rust anerkendes som et officielt understøttet sprog til Android-udvikling).

Det skal bemærkes, at Google har udarbejdet en indledende prototype af en controller skrevet i Rust til Binders interkommunikationskommunikationsmekanisme, som giver mulighed for en detaljeret sammenligning af ydeevne og sikkerhed af Binder-implementeringer i C og Rust.

I sin nuværende form er arbejdet endnu ikke afsluttet, men for næsten alle de grundlæggende abstraktioner af kernefunktionalitet, der kræves for at Binder fungerer, er lag blevet forberedt på at bruge disse abstraktioner i Rust-koden.

Endelig, hvis du vil vide mere om det, kan du kontrollere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Miguel Rodriguez sagde han

    Al deres kritik er gyldig, i betragtning af at Rust er et nyt sprog, der fungerer med et andet paradigme end C, er det forståeligt bekymringen for alle detaljer i bibliotekerne eller i selve compileren, hvor, selv om koden er gyldig, vil få kernen til at bryde som, hvordan den implementeres og bygges. Derfor fungerer forslag som at være i stand til at modulere biblioteket til kun at ringe og forblive aktive de funktioner, der er nødvendige for programmet (eller i dette tilfælde for enhver controller) korrekt. Det, du beder om, er heller ikke urimeligt, at de giver dig en ægte prototype-controller, der gør et job godt på et nuværende problem (eller i det mindste gør det samme job som en eksisterende i kernen og fungerer uden panik).

  2.   Sete sagde han

    Fra tid til anden genlæser jeg artikler af Linux Adictos Men det tager mig meget kort tid at fortvivle, når jeg ser, at på trods af et meget godt indhold, bliver det endelige resultat ødelagt med en forfærdelig stavning.
    Vil stavning og grammatik være så vanskeligt?
    En skam!
    Op med humøret!