Ny version af patches til Linux-kernen med understøttelse af Rust-sprog

Miguel Ojeda, forfatteren af Rust-for-Linux-projektet, har foreslået, at Linux-kerneudviklerne overvejer udgivelsen af v5 komponenter til udvikling af enhederdrivere i Rust. Dette er den sjette version af patches med hensyntagen til den første, der blev offentliggjort uden versionsnummer. Supporten for Rust betragtes som eksperimentel, men er allerede inkluderet i linux-next og er tilstrækkeligt udviklet til at begynde arbejdet med at skabe abstraktionslag over kerneundersystemer samt til at skrive drivere og moduler. Udviklingen finansieres af Google og organisationen ISRG (Internet Security Research Group), der er stifter af Let’s Encrypt-projektet og fremmer HTTPS og udviklingen af teknologier til at forbedre internetsikkerheden.

Det skal bemærkes, at de foreslåede ændringer giver mulighed for at bruge Rust som det andet sprog til udvikling af drivere og kerne-moduler. Rust-understøttelse præsenteres som en mulighed, der ikke er aktiveret som standard og ikke fører til, at Rust bliver en obligatorisk byggeafhængighed for kernen. Brug af Rust til driverudvikling vil gøre det muligt at skabe sikre og af højere kvalitet drivere med minimal indsats, fri for problemer som adgang til hukommelse efter frigivelse, dereferencering af nullpegepinde og buffer-overløb.

Sikker hukommelseshåndtering sikres i Rust under kompileringen gennem referencekontrol, overvågning af ejerskab af objekter og livscyklus (scope) af objekter, samt evaluering af korrekt hukommelsestilgang under kodeudførelse. Rust tilbyder også midler til beskyttelse mod heltalsoverskridelser, kræver obligatorisk initialisering af variabelværdier før brug, håndterer fejl bedre i standardbiblioteket, anvender konceptet med immutability (uændrede) referencer og variabler som standard, og tilbyder stærk statisk typekontrol for at minimere logiske fejl.

I den nye version af patches er arbejdet med at rette de bemærkninger, der blev fremsat under diskussionen af den første, anden, tredje, fjerde og femte version, fortsat. I den nye version:

  • Værktøjet er opdateret til Rust 1.59.0. Den nye version af Rust er også synkroniseret med variantbiblioteket alloc, som er blevet fritaget for mulige panik-tilstande ved fejl som hukommelsesmangel. Muligheden for at bruge assemblerindsætninger (feature(global_asm)) er blevet stabiliseret.
  • Tilføjet support til at skabe værtprogrammer i Rust, der anvendes i kernelkompilationsprocessen.
  • I stedet for at levere forudoprettede filer med specifikationer til målplatforme er der mulighed for dynamisk generering baseret på kernekonfigurationen.
  • Tilføjet kerneparameteren HAVE_RUST, der aktiveres for arkitekturer, hvor Rust understøttes.
  • Abstraktioner til brug i Rust-kode for hardwaren genererer pseudotilfældige tal er blevet foreslået.
  • Brug af fejlkoder uden præfikset 'Error::' (for eksempel 'return Err(EINVAL)') er tilladt for at nærme sig fejlhåndteringen i C.
  • Tilføjet typen 'CString' til C-strenge. Typerne Formatter og Buffer er blevet fusioneret.
  • Typerne Bool og LockInfo er blevet tilføjet.
  • Implementeringen af spin-låse er blevet forenklet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster