Den tionde versionen av patchar för Linux-kärnan med Rust-språkstöd

Miguel Ojeda, författaren till Rust-for-Linux-projektet, föreslog lanseringen av v10-komponenter för utveckling av enhetsdrivrutiner i Rust-språket för övervägande av Linux-kärnutvecklare. Detta är den elfte upplagan av patchar, med hänsyn till den första versionen, publicerad utan versionsnummer. Inkluderingen av Rust-stöd har godkänts av Linusum Torvalds för inkludering i Linux 6.1-kärnan, med undantag för oförutsedda problem. Utvecklingen finansieras av Google och ISRG (Internet Security Research Group), som är grundare av Let's Encrypt-projektet och främjar HTTPS och utvecklingen av tekniker för att förbättra Internetsäkerheten.

Liksom den tidigare versionen av patchar, är v10-versionen trimmad till ett minimum, tillräckligt för att bygga en enkel kärnmodul skriven på Rust-språket. Skillnaderna från den tidigare versionen beror på mindre redigeringar, att ersätta sizeof med ARRAY_SIZE i kallsyms.c och anpassa patchar till v6.0-rc7 kärnan. Det förväntas att den minsta patchen, vars storlek har reducerats från 40 till 13 tusen rader kod, kommer att förenkla införandet av Rust-stöd i huvudkärnan. Efter att ha tillhandahållit minimalt stöd är det planerat att gradvis öka den befintliga funktionaliteten och överföra andra ändringar från Rust-for-Linux-grenen.

De föreslagna ändringarna gör det möjligt att använda Rust som ett andra språk för att utveckla drivrutiner och kärnmoduler. Ruststöd presenteras som ett alternativ som inte är aktiverat som standard och resulterar inte i att Rust ingår som ett obligatoriskt byggberoende för kärnan. Genom att använda Rust för drivrutinsutveckling kan du skapa säkrare och bättre drivrutiner med minimal ansträngning, utan problem som minnesåtkomst efter frigöring, nollpekarereferenser och buffertöverskridanden.

Minnessäkerhet tillhandahålls i Rust vid kompileringstillfället genom referenskontroll, hålla reda på objektägande och objektlivslängd (scope), samt genom utvärdering av korrektheten av minnesåtkomst under kodexekvering. Rust ger också skydd mot heltalsspill, kräver obligatorisk initiering av variabelvärden innan användning, hanterar fel bättre i standardbiblioteket, tillämpar konceptet med oföränderliga referenser och variabler som standard, erbjuder stark statisk typning för att minimera logiska fel.

Källa: opennet.ru

Lägg en kommentar