Rust no es fora de perill de les critiques de Linus Torvalds

Fa poques setmanes s'havia donat a conèixer la notícia de sobre algunes implementacions que es van realitzar en la branca linux-next, en el qual s'inclou un conjunt inicial de components per desenvolupar controladors de dispositius en el llenguatge Rust.

Aquesta documentació va ser publicada per separat sobre l'ús de Rust en el nucli de Linux i un exemple d'un mòdul de kernel amb un controlador de dispositiu de caràcters en el llenguatge Rust. El codi va ser agregat per Stephen Rothwell, mantenidor de la branca.

Després d'això Linus Torvalds va passar revisant la implementació de pegats de possibilitats per establir controladors de llenguatge Rust en el nucli de Linux i va expressar algunes crítiques.

Les majors queixes van ser causades per el potencial d'escapament «Run-time failure panicen» en situacions errònies, per exemple, en una situació de memòria insuficient, quan les operacions d'assignació de memòria dinàmica, incloses les de l'nucli, poden fallar.

de Torvald declarar que tal enfocament en el nucli és fonamentalment inacceptable, i si no comprèn aquest punt, pot rebutjar completament qualsevol codi prova d 'usar aquest enfocament. D'altra banda, el desenvolupador de l'pegat va estar d'acord amb el problema i ho va considerar solucionable.

Un altre problema han estat els intents d'utilitzar tipus de coma flotant o de 128 bits, que no són vàlids per a entorns com el nucli de Linux.

És possible que no entengui les ramificacions de quan pot succeir, per la qual cosa potser
sigui un problema menor del que crec que és, però fonamentalment
crec que si alguna assignació de Rust pot causar pànic, això és simplement
_ Fundamentalmente_ no acceptable.

Les falles d'assignació en un controlador o codi no central, i això és, per
definició, tot el codi Rust nou, mai MAI poden causar
pànic de manera vàlida. El mateix passa amb «oh, en algun cas no vaig provar l'ús de
sencers de 128 bits o de punt flotant ».

Llavors, si el compilador de Rust causa assignacions ocultes que no es poden
detectar i tornar com errors, llavors crec seriosament que tot aquest
enfocament ha de ser completament NAK'ed, i la infraestructura de Rust,
ja sigui a nivell de l'compilador o en els embolcalls de l'nucli, necessita més
treball.

Això va resultar ser un problema més seriós, Ja que en aquest moment la biblioteca central de Rust és indivisible i representa una gran taca; no hi ha forma de sol·licitar només algunes de les característiques, la qual cosa evita l'ús d'una o altra funcionalitat problemàtica.

La solució a el problema pot requerir canvis en el compilador i la biblioteca de rust, encara que l'equip encara no té una estratègia sobre com implementar la modularitat de les biblioteques d'idiomes.

A més, Torvalds va assenyalar que el controlador d'exemple proporcionat és inútil i va aconsellar adjuntar com a exemple algun controlador que resolgui un dels problemes reals.

davant d'això Google va anunciar la seva participació en una iniciativa per promoure el suport de Rust en el nucli de Linux y brindar aspectes tècnics de la viabilitat d'implementar Rust per combatre els problemes que sorgeixen d'errors en el treball amb la memòria.

Google creu que Rust està a punt per unir-se a C com a llenguatge per desenvolupar components de el nucli de Linux. L'article també proporciona exemples de l'ús de l'llenguatge Rust per desenvolupar controladors de nucli, en el context del seu ús a la plataforma Android (Rust és reconegut com un llenguatge oficialment suportat per al desenvolupament d'Android).

Cal assenyalar que Google ha preparat un prototip inicial d'un controlador escrit a Rust per al mecanisme de comunicació entre processos de Binder, que permetrà una comparació detallada de el rendiment i la seguretat de les implementacions de Binder en C i Rust.

En la seva forma actual, el treball encara no s'ha completat, però per a gairebé totes les abstraccions bàsiques de la funcionalitat de l'nucli requerides perquè Binder funcioni, s'han preparat capes per utilitzar aquestes abstraccions en el codi Rust.

Finalment si vols conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Miguel Rodríguez va dir

    Totes les seves crítiques són vàlides, atès que Rust és un llenguatge nou que treballa amb un paradigma diferent a el de C és comprensible la preocupació davant de qualsevol detall a les llibreries o en el mateix compilador on si bé el codi sigui vàlid faci trencar el nucli tal com està implementat i construït. Per això els suggeriments com el poder modularitzar la biblioteca per trucar i mantenir actives només aquelles funcions necessàries per al programa (o en aquest cas per a qualsevol controlador) treballi correctament. Tampoc el que demana és desgavellat, que li portin un prototip real de controlador que faci bé un treball sobre un problema actual (o que al menys faci la mateixa feina d'un existent en el nucli i funcioni sense entrar en pànic).

  2.   Seteja va dir

    De tant en tant torno a llegir articles de Linux Adictos però trigo molt poc a desesperar-me en veure que tot i tenir molt bons continguts es destrossa el resultat final amb una ortografia espantosa.
    Serà tan difícil l'ortografia i la gramàtica?
    Una llàstima!
    Ànim!