Den tiende version af patches til Linux-kernen med Rust-sprogunderstøttelse

Miguel Ojeda, forfatteren af ​​Rust-for-Linux-projektet, foreslog udgivelsen af ​​v10-komponenter til udvikling af enhedsdrivere i Rust-sproget til overvejelse af Linux-kerneudviklere. Dette er den ellevte udgave af patches, idet der tages hensyn til den første version, der er udgivet uden et versionsnummer. Inkluderingen af ​​Rust-understøttelse er blevet godkendt af Linusum Torvalds til inklusion i Linux 6.1-kernen, med forbehold for uforudsete problemer. Udviklingen er finansieret af Google og ISRG (Internet Security Research Group), som er grundlæggeren af ​​Let's Encrypt-projektet og promoverer HTTPS og udviklingen af ​​teknologier til at forbedre internetsikkerheden.

Ligesom den tidligere version af patches er v10-udgivelsen trimmet ned til det absolutte minimum, tilstrækkeligt til at bygge et simpelt kernemodul skrevet på Rust-sproget. Forskelle fra den tidligere version kommer ned til mindre redigeringer, der erstatter sizeof med ARRAY_SIZE i kallsyms.c og tilpasser patches til v6.0-rc7 kernen. Det forventes, at minimumspatchen, hvis størrelse er blevet reduceret fra 40 til 13 tusind linjer kode, vil forenkle overtagelsen af ​​Rust-understøttelse i hovedkernen. Efter at have ydet minimal support er det planlagt gradvist at øge den eksisterende funktionalitet ved at overføre andre ændringer fra Rust-for-Linux-grenen.

De foreslåede ændringer gør det muligt at bruge Rust som et andet sprog til udvikling af drivere og kernemoduler. Rust-understøttelse præsenteres som en mulighed, der ikke er aktiveret som standard og resulterer ikke i, at Rust inkluderes som en påkrævet build-afhængighed for kernen. Brug af Rust til driverudvikling vil give dig mulighed for at skabe sikrere og bedre drivere med minimal indsats, fri for problemer som f.eks. hukommelsesadgang efter frigørelse, nul pointer-dereferencer og bufferoverskridelser.

Hukommelsessikker håndtering leveres i Rust på kompileringstidspunktet gennem referencekontrol, holde styr på objektejerskab og objektlevetid (scope), samt gennem evaluering af korrektheden af ​​hukommelsesadgang under kodeudførelse. Rust giver også beskyttelse mod heltalsoverløb, kræver obligatorisk initialisering af variabelværdier før brug, håndterer fejl bedre i standardbiblioteket, anvender konceptet med uforanderlige referencer og variabler som standard, tilbyder stærk statisk skrivning for at minimere logiske fejl.

Kilde: opennet.ru

Tilføj en kommentar