Un marc a Rust podria ser implementat en el nucli per millorar els controladors

Rust Linux Kernel

Josh Triplett, una companyia amb seu a Intel i membre de comitè de supervisió de el desenvolupament Crates.io, presentar ja fa alguns dies un grup de treball en el seu discurs en l'Open Source Technology Summit que té com a objectiu portar a Rust a l'una amb C en la programació de el nucli de Linux.

En el grup de treball, que està en procés de creació, els desenvolupadors de Rust, juntament amb els enginyers d'Intel, prepararan especificacions que puguin destacar la funcionalitat que Rust necessita implementar per a la programació dins el nucli de Linux. La programació de sistema sovint requereix manipulacions de baix nivell, com l'execució d'instruccions privilegiades de el processador i l'obtenció d'informació detallada sobre l'estat de l'processador.

De les capacitats similars que ja s'estan desenvolupant per Rust, s'admet el suport per estructures sense nom, Unions (unió), inserits de assemblador (la macro «asm!») I el format de nombre de punt flotant BFLOAT16.

Josh creu que el futur de la programació de el sistema és per Rust, i el llenguatge C a les realitats modernes afirma ser el lloc que ocupava Assembler en el passat. Rust no només alleuja els desenvolupadors dels problemes específics de l'llenguatge C que sorgeixen a causa de la feina de baix nivell amb la memòria, sinó que també ofereix la possibilitat d'aplicació en el desenvolupament de paradigmes de programació moderns.

Durant la discussió de l'discurs de Josh, es va expressar la idea de:

afegir la possibilitat de desenvolupar controladors en el llenguatge Rust a el nucli de Linux, el que permetria amb un mínim esforç a crear controladors millors i més segurs que alleugen problemes com ara accedir a l'àrea de memòria després d'alliberar-la, fer referència a punters nuls i sortir més enllà dels límits de la memòria intermèdia.

Greg Kroah-Hartman, responsable de mantenir una branca estable de el nucli de Linux, ixpresó la seva disposició a afegir un marc de controlador Rust a l'nucli si té avantatges reals sobre C, per exemple, proporcionarà enllaços assegurances sobre API de el nucli A més, Greg considera aquest marc només com una opció que no està activa per defecte, per no incloure Rust en el nombre de dependències d'acoblament de l'nucli.

Va resultar que diversos equips ja estan treballant en aquesta direcció. Per exemple, els desenvolupadors de Fish in a Barrel van preparar un joc d'eines per a escriure a mòduls per al nucli de Linux en el llenguatge Rust, utilitzant un conjunt de capes abstractes sobre les interfícies i estructures de el nucli per augmentar la seguretat.

Les capes intermèdies es generen automàticament en funció dels arxius de capçalera de l'nucli disponibles utilitzant la utilitat bindgen. Clang s'usa per construir capes intermèdies. Els mòduls acoblats, a més de les capes, usen el paquet staticlib.

Paral·lelament, s'està desenvolupant un altre projecte, centrat en el desenvolupament de controladors per a sistemes encastats i dispositius d'Internet de les coses, que també utilitza bindgen per generar intercalars basats en arxius de capçalera de l'nucli.

El marc li permet millorar la seguretat de l'controlador sense fer canvis en el nucli; en lloc de crear nivells d'aïllament addicionals per als controladors en el nucli, es proposa bloquejar els problemes en l'etapa de compilació utilitzant un llenguatge Rust més segur.

Se suposa que els fabricants d'equips poden desenvolupar aquest enfocament de manera precipitada sense una auditoria adequada.

Encara no s'ha implementat tota la funcionalitat planificada, però el marc ja és prou adequat per al treball i s'utilitza per escriure un controlador que funcioni per al controlador LAN9512 USB Ethernet subministrat a la placa Raspberry Pi 3.

El controlador smsc95xx existent es va escriure com una implementació de referència a l'escriure el controlador Rust en llenguatge C.

S'observa que la mida de la lliçó i la sobrecàrrega dels components de temps d'execució no són significatius quan es desenvolupa un controlador per Rust, que li permet utilitzar el marc per a dispositius amb recursos limitats.

font: https://hub.packtpub.com


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.   L1ch va dir

    No trobo informació d'un controlador smsc95xx a la font o que vagi a implementar alguna cosa a Rust en Linux.