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

Miguel Ojeda, skrywer van die Rust-for-Linux-projek, het 'n vierde weergawe van komponente voorgestel vir die ontwikkeling van toestelbestuurders in die Rust-taal vir oorweging deur Linux-kernontwikkelaars. Roesondersteuning word as eksperimenteel beskou, maar daar is reeds ooreengekom vir insluiting in die linux-next-tak en is volwasse genoeg om te begin werk aan die skep van abstraksielae oor kernsubstelsels, sowel as die skryf van drywers en modules. Die ontwikkeling word befonds 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 en derde uitgawes van die kolle uit te skakel. In die nuwe weergawe:

  • Die oorgang na die gebruik van die stabiele vrystelling van Rust 1.58.0 as die verwysingsamesteller is gemaak. Onder die veranderinge wat nodig is vir die projek, wat nog nie ingesluit is in die hoof Rust toolkit, die "-Zsymbol-mangling-version=v0" vlag (verwag in Rust 1.59.0) en die "miskien_uninit_extra" modus (verwag in Rust 1.60.0) .XNUMX) opgemerk word.
  • Bygevoeg outomatiese kontrole vir die beskikbaarheid van geskikte Roes gereedskap en uitgebrei die vermoë om Roes ondersteuning in die stelsel te toets.
  • Nuwe abstraksies is voorgestel vir toegang tot toestelidentifiseerdertabelle (“IdArray” en “IdTable”) vanaf Rust-kode.
  • Lae bygevoeg vir toegang tot timerverwante funksies (klokraamwerk).
  • Platformdrywers word nou gedefinieer deur eienskapimplementerings.
  • 'n Nuwe makro is bygevoeg om die registrasie van platformbestuurders te vereenvoudig, en 'n nuwe generiese bestuurdersjabloon is voorgestel.
  • Bygevoeg makros vir "dev_*" strukture.
  • Bygevoeg "{read,write}*_relaxed" metodes vir die IoMem tipe .
  • Het die FileOpener-eienskap verwyder om lêerbewerkings te vereenvoudig.
  • Die "ThisModule"-parameter is bygevoeg by die argumente wat geslaag is wanneer 'n bestuurder geregistreer is.
  • 'n Standaard sjabloon vir die skep van kernmodules in die Rust-taal word voorgestel.

Bron: opennet.ru

Voeg 'n opmerking