Ny version af kernelrettelser Linux med understøttelse af Rust-sprog

Miguel Ojeda, forfatter til Rust-for-projektetLinux, foreslået til overvejelse af kerneudviklere Linux выпуск v5 компонентов для разработки драйверов устройств на языке Rust. Это шестая редакция патчей с учётом первого варианта, опубликованного без номера версии. Поддержка Rust рассматривается как экспериментальная, но уже включена в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.

Husk at 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 såsom 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.

Den nye version af patches fortsætter med at løse de bekymringer, der blev rejst under diskussionen af ​​den første, anden, tredje, fjerde og femte udgave af patches. I den nye version:

  • Værktøjssættet er blevet opdateret til Rust 1.59.0-udgivelsen. Den nye version af Rust bringer også bibliotekets allokimplementering synkroniseret, hvilket fjerner mulig panik, når der opstår fejl som manglende hukommelse. Evnen til at bruge assembler-indsatser ("feature(global_asm)") er blevet stabiliseret.
  • Tilføjet understøttelse til oprettelse af værtsprogrammer i Rust brugt under kernekompilering.
  • I stedet for at levere forudgenererede målplatformspecifikationsfiler, genereres de nu dynamisk baseret på kernekonfigurationen.
  • Tilføjet kerneindstillingen HAVE_RUST, som er aktiveret for arkitekturer, der understøtter Rust.
  • Abstraktioner foreslås til brug i Rust-kode af en hardware pseudo-tilfældig tal generator.
  • Brugen af ​​fejlkoder uden "Error::"-præfikset (f.eks. "return Err(EINVAL)") er tilladt at tilnærme håndteringen af ​​fejlkoder i C.
  • Tilføjet "CString"-type til native C-strenge. Formater- og buffertyper er blevet slået sammen.
  • Tilføjet Bool og LockInfo typer.
  • Implementeringen af ​​spin-låse er blevet forenklet.

Kilde: opennet.ru

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