Den tiende versjonen av patcher for Linux-kjernen med støtte for Rust-språket

Miguel Ojeda, forfatteren av Rust-for-Linux-prosjektet, foreslo utgivelsen av v10-komponenter for utvikling av enhetsdrivere i Rust-språket for vurdering av Linux-kjerneutviklere. Dette er den ellevte utgaven av oppdateringene, tatt i betraktning den første versjonen, publisert uten et versjonsnummer. Inkluderingen av Rust-støtte er godkjent av Linusum Torvalds for inkludering i Linux 6.1-kjernen, unntatt uforutsette problemer. Utviklingen er finansiert av Google og ISRG (Internet Security Research Group), som er grunnleggeren av Let's Encrypt-prosjektet og fremmer HTTPS og utvikling av teknologier for å forbedre Internett-sikkerheten.

Som den forrige versjonen av patcher, er v10-utgivelsen trimmet ned til et minimum, tilstrekkelig til å bygge en enkel kjernemodul skrevet på Rust-språket. Forskjeller fra den forrige versjonen kommer ned til mindre endringer, og erstatter sizeof med ARRAY_SIZE i kallsyms.c og tilpasser patcher til v6.0-rc7-kjernen. Det forventes at minimumsoppdateringen, hvis størrelse er redusert fra 40 til 13 tusen linjer med kode, vil forenkle innføringen av Rust-støtte i hovedkjernen. Etter å ha gitt minimal støtte, er det planlagt å gradvis øke den eksisterende funksjonaliteten, og overføre andre endringer fra Rust-for-Linux-grenen.

De foreslåtte endringene gjør det mulig å bruke Rust som andrespråk for utvikling av drivere og kjernemoduler. Rust-støtte presenteres som et alternativ som ikke er aktivert som standard og resulterer ikke i at Rust inkluderes som en nødvendig byggeavhengighet for kjernen. Å bruke Rust for driverutvikling vil tillate deg å lage tryggere og bedre drivere med minimal innsats, fri for problemer som minnetilgang etter frigjøring, null-pekereferanser og bufferoverskridelser.

Rust håndhever minnesikkerhet ved kompilering gjennom referansesjekking, objekteierskap og objektlevetidssporing (scopes), og ved å evaluere riktigheten av minnetilganger under kjøring. Rust gir også beskyttelse mot heltallsoverløp, krever at variabelverdier initialiseres før bruk, har bedre feilhåndtering i standardbiblioteket, bruker konseptet med uforanderlige referanser og variabler som standard, og tilbyr sterk statisk skriving for å minimere logiske feil.

Kilde: opennet.ru

Legg til en kommentar