Rust a Linux: avenços, desafiaments i estat actual

Controladors Rust a Linux

Des que Linus Torvalds va incloure Rust a la versió 6.1 del Kernel de Linux, el llenguatge ha estat guanyant terreny gradualment i cada vegada són més els desenvolupadors que s'uneixen a aquest moviment.

No obstant això, alguns dels desenvolupadors del Kernel de Linux ressalten que els avenços cada vegada més suposaran més feina i desafiaments, ja que dins dels seus comentaris donen a entendre que és possible que sorgeixi un estancament.

Cal aclarir que no esmentem que la implementació arribi a un punt mort, sinó que atesos els comentaris de diversos desenvolupadors i com ja esmentem, a l'estat actual, ha començat a sorgir la necessitat de disminuir el ritme de treball, o almenys això és el que ens suggereix el següent article de LWN.net.

I és que ja fa diverses setmanes em vaig trobar amb aquest article on es tracta d'abordar l'estat actual de l'ús de Rust a Linux i analitzar si l'experiment amb aquest llenguatge de programació ha estat exitós.

S'esmenta que des de fa alguns anys, Rust ha estat un tema que no ha deixat de tocar-se a la «Kernel Maintainers Summit» i la celebrada aquest 2023 no va ser l'excepció, ja que des de la implementació oficial de Rust com a segon llenguatge de programació a Linux, Miguel Ojeda, desenvolupador de Rust-for-Linux, va destacar el creixent interès en l'ús de Rust per al desenvolupament del nucli durant la sessió dedicada a aquest tema.

Miguel Ojeda esmenta que el projecte Rust-for-Linux ha experimentat un impuls significatiu en el darrer any, ja que s'hi ha sumat un enginyer a temps complet i un desenvolupador estudiantil i que diverses empreses s'han sumat al suport del treball. A més, s'està treballant per integrar l'eina Coccinelle al codi Rust. Tot i això, no tot és color de rosa, ja que un dels desafiaments actuals és reclutar més revisors per al codi que s'està desenvolupant.

Linux Kernel
Article relacionat:
Linux 6.1 arriba amb Rust, millores de rendiment, en controladors i més

A l'article si esmenta què els problemes han començat a ser notoris a la cadena d'eines, ja que el progrés del compilador Rust basat en GCC, conegut com a gccrs, s'ha alentit. D'altra banda, el generador de codi GCC per a rustc mostra avenços prometedors i ha estat fusionat amb el compilador, cosa que permetrà expandir el suport de Rust a arquitectures que no són compatibles amb LLVM.

Article relacionat:
A GCC van aprovar la implementació de RUST (gccrs)

Dins del nucli, s'estan realitzant avenços en diversos subsistemes, tal és el cas de la implementació a Rust del binder d'Android que ha demostrat un rendiment comparable a la implementació en C, amb una quantitat mínima de codi insegur. A més, s'està treballant en vinculacions de sistemes de fitxers amb l'objectiu d'aconseguir suport de només lectura a Rust, amb la visió d'implementar un sistema de fitxers completament segur a Rust.

Dave Airlie, el mantenidor del subsistema DRM (gràfics), va dir que, si se'n surt amb la seva, hi haurà un controlador Rust DRM fusionat en els propers llançaments. Christoph Hellwig va respondre que Airlie estava disposada a «fer la vida de tots un infern» per poder jugar amb la seva joguina favorita. Hellwig va dir que fusionar Rust obligaria altres a bregar amb un segon llenguatge, noves cadenes d'eines i «embolcalls amb semàntica estranya». Dan Williams va dir que la situació actual "és el que sembla l'èxit" i que la comunitat del nucli ja estava compromesa amb Rust.

Tot i que s'observa un creixent interès per part dels mantenidors a adoptar Rust, sorgeixen desafiaments, ja que s'ha debatut la necessitat de tenir controladors de referència al nucli escrits a Rust per mostrar com es poden escriure controladors en aquest llenguatge. Tot i això, la duplicació de funcionalitat entre controladors a Rust i C ha generat desconfiança entre els mantenidors.

La discussió sobre la inclusió de Rust ha pres diferents adreces, doncs alguns mantenidors advoquen per la fusió de controladors Rust autònoms, com el controlador de binder, per demostrar la seva viabilitat, mentre que per laltra banda de la moneda altres expressen preocupacions sobre la complexitat de mantenir un nucli amb dos llenguatges de programació.

Airlie va continuar dient que gran part del treball de Rust està actualment bloquejat en una mena de problema de l'ou i la gallina. Les abstraccions no es poden fusionar fins que hi hagi un usuari, però el codi que necessita aquestes abstraccions es bloqueja esperant que el codi arribi a múltiples subsistemes. Com a resultat, els desenvolupadors que treballen a Rust estan arrossegant grans quantitats de pegats que necessiten perquè el seu codi funcioni. Trencar aquest obstacle requerirà permetre l'entrada d'algunes abstraccions sense usuaris immediats.

Malgrat els desafiaments, la comunitat del nucli reconeix el potencial de Rust per millorar la seguretat i l'estabilitat del codi. Es planteja la possibilitat de fusionar controladors més àmpliament utilitzats a Rust en el futur, una vegada es resolguin les preocupacions sobre la capacitat de revisió i manteniment.

Ojeda va estar d'acord que aquest problema ha alentit el progrés, però va dir que ha intentat no pressionar els mantenidors perquè fusionin el codi ràpidament. En el cas de les xarxes, irònicament, els desenvolupadors de Rust van haver de demanar als encarregats de la xarxa que alentissin la fusió del codi Rust.

Finalment, cal esmentar que el camí cap a l'adopció generalitzada de Rust a Linux presenta desafiaments, l'interès i el progrés en aquest espai són evidents. Amb el temps, s'espera que Rust tingui un paper important en la millora de Linux.

font: https://lwn.net/


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ó.