Rust was niet vrijgesteld van de kritiek van Linus Torvalds

Enkele weken geleden het nieuws van ongeveer enkele implementaties die zijn gemaakt in de linux-next branch, die een eerste set componenten bevat om apparaatstuurprogramma's te ontwikkelen in de Rust-taal.

Deze documentatie werd apart gepubliceerd over het gebruik van Rust in de Linux-kernel en een voorbeeld van een kernelmodule met een character device driver in de Rust-taal. De code is toegevoegd door Stephen Rothwell, onderhouder van de branche.

Daarna nam Linus Torvalds de implementatiebeoordeling door patch met mogelijkheden om Rust-taalstuurprogramma's in de Linux-kernel in te stellen en uitte enige kritiek.

De grootste klachten werden veroorzaakt door het potentieel om te ontsnappen "Run-time failure panicen" in verkeerde situaties, bijvoorbeeld in een situatie waarin het geheugen onvoldoende is, wanneer bewerkingen voor dynamische geheugentoewijzing, inclusief kernelbewerkingen, mislukken.

Torvalds verklaarde dat een dergelijke focus op de kernel fundamenteel onaanvaardbaar is, En als u dit punt niet begrijpt, kunt u elke code die een dergelijke benadering probeert te gebruiken, volledig afwijzen. Aan de andere kant was de ontwikkelaar van de patch het eens met het probleem en vond hij het oplosbaar.

Een ander probleem zijn pogingen om drijvende komma of 128 bit-typen te gebruiken, die niet geldig zijn voor omgevingen zoals de Linux-kernel.

U begrijpt misschien niet de gevolgen van wanneer het kan gebeuren, dus misschien
is minder een probleem dan ik denk, maar fundamenteel
Ik denk dat als een Rust mapping paniek kan veroorzaken, dit simpelweg is
_ fundamenteel_ niet acceptabel.

Fouten in kaart brengen in een niet-kerncontroller of code, en dat is voor
definitie, geheel nieuwe Rust-code, kan nooit NOOIT veroorzaken
paniek terecht. Hetzelfde geldt voor «oh, in sommige gevallen heb ik het niet geprobeerd
128-bits gehele getallen of drijvende komma '.

Dus als de Rust-compiler verborgen opdrachten veroorzaakt, kan dat niet
detecteren en retourneren als fouten, dan geloof ik serieus dat dit alles
aanpak moet volledig NAK'ed zijn, en de Rust-infrastructuur,
ofwel op het compilerniveau of in de kernel-wrappers, heb je meer nodig
werk.

Dit bleek een serieuzer probleem te zijn., sinds op dit moment De centrale bibliotheek van Rust is ondeelbaar en vertegenwoordigt een grote vlek​ er is geen manier om slechts enkele van de functies aan te vragen, waardoor het gebruik van een of andere problematische functionaliteit wordt vermeden.

De oplossing voor het probleem vereist mogelijk wijzigingen aan de rust-compiler en bibliotheek, hoewel het team nog geen strategie heeft om modulariteit voor taalbibliotheken te implementeren.

Bovendien heeft Torvalds wees erop dat de meegeleverde voorbeeldcontroller nutteloos is en adviseerde om als voorbeeld een driver toe te voegen die een van de echte problemen oplost.

Voor dit Google kondigde aan deel te nemen aan een initiatief om Rust-ondersteuning in de Linux-kernel te promoten y geleverde technische aspecten van de haalbaarheid van het implementeren van Rust om problemen te bestrijden die ontstaan ​​door fouten bij het werken met geheugen.

Google denkt dat Rust klaar is om zich bij C aan te sluiten als ontwikkeltaal Linux-kernelcomponenten. Het artikel geeft ook voorbeelden van het gebruik van de Rust-taal om kerneldrivers te ontwikkelen, in de context van het gebruik ervan op het Android-platform (Rust wordt erkend als een officieel ondersteunde taal voor Android-ontwikkeling).

Cabe señalar que Google heeft een eerste prototype voorbereid van een controller die in Rust is geschreven voor het communicatiemechanisme tussen processen van Binder, dat een gedetailleerde vergelijking van prestaties en beveiliging van Binder-implementaties in C en Rust mogelijk maakt.

In zijn huidige vorm is het werk nog niet voltooid, maar voor bijna alle basis abstracties van kernelfunctionaliteit die nodig zijn om Binder te laten werken, zijn lagen voorbereid om deze abstracties in de Rust-code te gebruiken.

Als u er tenslotte meer over wilt weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Miguel Rodriguez zei

    Al hun kritiek is terecht, aangezien Rust een nieuwe taal is die werkt met een ander paradigma dan dat van C, is het begrijpelijk dat er bezorgdheid bestaat over elk detail in de bibliotheken of in de compiler zelf waar, hoewel de code geldig is, het zal ervoor zorgen dat de kernel kapot gaat zoals het wordt geïmplementeerd en gebouwd. Dat is de reden waarom suggesties zoals het kunnen modulariseren van de bibliotheek om alleen die functies aan te roepen en actief te houden die nodig zijn voor het programma (of in dit geval voor elke controller) correct werken. Het is ook niet onredelijk waar je om vraagt, dat ze je een echte prototype-controller brengen die goed werk doet bij een huidig ​​probleem (of in ieder geval hetzelfde werk doet als een bestaand probleem in de kernel en zonder paniek werkt).

  2.   Sete zei

    Af en toe herlees ik artikelen van Linux Adictos Maar het kost me heel weinig tijd om te wanhopen als ik zie dat ondanks de zeer goede inhoud, het eindresultaat teniet wordt gedaan door een vreselijke spelling.
    Zullen spelling en grammatica zo moeilijk zijn?
    Een schande!
    Kop op!