Vyfde uitgawe van pleisters vir die Linux-kern met ondersteuning vir die Rust-taal

Miguel Ojeda, skrywer van die Rust-for-Linux-projek, het 'n vyfde weergawe van komponente voorgestel vir die ontwikkeling van toestelbestuurders in die Rust-taal vir oorweging deur Linux-kernontwikkelaars. Roesondersteuning word as eksperimenteel beskou, maar is reeds ingesluit in die linux-next-tak en is voldoende ontwikkel om te begin werk aan die skep van abstraksielae oor kernsubstelsels, sowel as die skryf van drywers en modules. Die ontwikkeling word gefinansier deur Google en die ISRG (Internet Security Research Group), wat die stigter van die Let's Encrypt-projek is en HTTPS en die ontwikkeling van tegnologieë bevorder om internetsekuriteit te verbeter.

Onthou dat die voorgestelde veranderings dit moontlik maak om Rust as 'n tweede taal te gebruik vir die ontwikkeling van drywers en kernmodules. Roes-ondersteuning word aangebied as 'n opsie wat nie by verstek geaktiveer is nie en lei nie tot die insluiting van Rust onder die vereiste bouafhanklikhede vir die kern nie. Deur Rust te gebruik om drywers te ontwikkel, sal jy veiliger en beter bestuurders met minimale inspanning kan skep, vry van probleme soos toegang tot 'n geheue-area nadat dit vrygestel is, die verwysing van nulwysers en bufferoorskryding.

Geheueveiligheid word tydens samestellingstyd in Rust verskaf deur verwysingskontrolering, hou van objekeienaarskap en objekleeftyd (omvang), asook deur evaluering van die korrektheid van geheuetoegang tydens kode-uitvoering. Roes bied ook beskerming teen heelgetal-oorvloei, vereis dat veranderlikes geïnisialiseer word voor gebruik, hanteer foute beter in die standaardbiblioteek, pas die konsep van onveranderlike verwysings en veranderlikes by verstek toe, en bied sterk statiese tik om logiese foute te minimaliseer.

Die nuwe weergawe van die kolle gaan voort om die opmerkings wat gemaak is tydens die bespreking van die eerste, tweede, derde en vierde uitgawes van die kolle uit te skakel. In die nuwe weergawe:

  • Komponenttoetsing vir Rust-ondersteuning is bygevoeg tot die deurlopende integrasiestelsel gebaseer op die Intel-ondersteunde 0DAY/LKP-bot en die publikasie van toetsverslae het begin. Ons berei voor om Rust-ondersteuning in die KernelCI-geoutomatiseerde toetsstelsel te integreer. Toetse gebaseer op GitHub CI is oorgedra na die gebruik van houers.
  • Roes kernmodules word bevry van die behoefte om die kratteienskappe “#![no_std]” en “#![feature(…)]” te definieer.
  • Bygevoeg ondersteuning vir enkelsamestelling teikens (.o, .s, .ll en .i).
  • Koderiglyne definieer reëls vir die skeiding van opmerkings (“//”) en dokumentasie van kode (“///”).
  • Die is_rust_module.sh-skrip is herwerk.
  • Bygevoeg ondersteuning vir statiese (globale gedeelde veranderlike) sinchronisasie primitiewe gebaseer op die "CONFIG_CONSTRUCTORS" implementering.
  • Slotbestuur is vereenvoudig: Guard en GuardMut is gekombineer en een geparameteriseerde tipe.
  • Dit is moontlik om bykomende parameters te definieer wanneer toestelle geregistreer word.
  • Bygevoeg die "RwSemaphore" abstraksie, wat dien as 'n omhulsel oor die rw_semaphore C struktuur.
  • Om mmap te gebruik, is 'n nuwe mm-module en 'n VMA-abstraksie bygevoeg ('n omhulsel oor die vm_area_struct-struktuur).
  • Die GPIO PL061-bestuurder is oorgeskakel na die gebruik van die "dev_*!"-makro.
  • 'n Algemene skoonmaak van die kode is uitgevoer.

Bron: opennet.ru

Voeg 'n opmerking