Fënneft Editioun vu Patches fir de Linux Kernel mat Ënnerstëtzung fir d'Rust Sprooch

De Miguel Ojeda, Autor vum Rust-for-Linux Projet, huet eng fënneft Versioun vu Komponente proposéiert fir Gerät Treiber an der Rust Sprooch ze entwéckelen fir d'Rücksicht vu Linux Kernel Entwéckler. Rust Ënnerstëtzung gëtt als experimentell ugesinn, awer ass schonn an der Linux-nächst Branche abegraff an ass genuch entwéckelt fir d'Aarbecht unzefänken fir Abstraktiounsschichten iwwer Kernel-Subsystemer ze kreéieren, souwéi Treiber a Moduler ze schreiwen. D'Entwécklung gëtt finanzéiert vu Google an dem ISRG (Internet Security Research Group), deen de Grënner vum Let's Encrypt Projet ass a fördert HTTPS an d'Entwécklung vun Technologien fir d'Sécherheet vum Internet ze verbesseren.

Erënneren, datt déi proposéiert Ännerungen maachen et méiglech Rust als zweet Sprooch ze benotzen fir Chauffeuren an Kär Moduler Entwécklungslänner. Rust Ënnerstëtzung gëtt als eng Optioun presentéiert déi net als Standard aktivéiert ass an net resultéiert datt Rust als erfuerderlech Build Ofhängegkeet fir de Kernel abegraff ass. Mat Rust fir Chauffeurentwécklung erlaabt Iech méi sécher a besser Chauffeuren mat minimalem Ustrengung ze kreéieren, fräi vu Probleemer wéi Erënnerungszougang no der Befreiung, Null Pointer-Dereferenzen, a Pufferiwwerschëss.

Gedächtnissécher Handhabung gëtt a Rust zur Kompiléierungszäit duerch Referenzkontrolle geliwwert, d'Objetbesëtzung an d'Liewensdauer vum Objekt (Ëmfang) verfollegen, souwéi duerch d'Evaluatioun vun der Richtegkeet vum Erënnerungszougang wärend der Code Ausféierung. Rust bitt och Schutz géint ganz Zuelen Iwwerschwemmungen, erfuerdert obligatoresch Initialiséierung vu variabelen Wäerter virum Gebrauch, handhabt Feeler besser an der Standardbibliothéik, applizéiert d'Konzept vun onverännerleche Referenzen a Variablen als Standard, bitt staark statesch Tippen fir logesch Feeler ze minimiséieren.

Déi nei Versioun vun de Patches eliminéiert weider d'Kommentaren, déi während der Diskussioun vun der éischter, zweeter, drëtter a véierter Editioun vun de Patches gemaach goufen. An der neier Versioun:

  • Komponent Tester fir Rust Ënnerstëtzung gouf op de kontinuéierleche Integratioun System baséiert op der Intel-ënnerstëtzt 0DAY / LKP Bot an d'Publikatioun vun Tester Rapporten ugefaang. Mir preparéiere fir Rust Ënnerstëtzung an der KernelCI automatiséiert Test System z'integréieren. Testen baséiert op GitHub CI gouf op d'Benotzung vu Container transferéiert.
  • Rust Kernel Moduler si befreit vun der Bedierfnes fir d'Këschtattributer "#![no_std]" an "#![Feature(...)]" ze definéieren.
  • Zousätzlech Ënnerstëtzung fir eenzel Versammlungsziler (.o, .s, .ll an .i).
  • Code Richtlinnen definéieren Regele fir Kommentaren ze trennen ("//") an Dokumentatioun Code ("///").
  • Den is_rust_module.sh Skript gouf ëmgeschafft.
  • Zousätzlech Ënnerstëtzung fir statesch (global gemeinsam Variabel) Synchroniséierungsprimitiven baséiert op der "CONFIG_CONSTRUCTORS" Implementatioun.
  • Spär Gestioun ass vereinfacht: Gard an GuardMut sinn kombinéiert an eent parameterized Typ.
  • Et ass méiglech zousätzlech Parameteren ze definéieren wann Dir Apparater registréiert.
  • D'"RwSemaphore" Abstraktioun bäigefüügt, déi als Wrapper iwwer d'rw_semaphore C Struktur wierkt.
  • Fir mmap ze benotzen, goufen en neie mm Modul an eng VMA Abstraktioun bäigefüügt (e Wrapper iwwer d'vm_area_struct Struktur).
  • De GPIO PL061 Chauffer gouf op de Macro "dev_*!" benotzt.
  • Eng allgemeng Botzen vum Code gouf duerchgefouert.

Source: opennet.ru

Setzt e Commentaire