Dördüncü nəşr kernel yamaları Linux Rust dili dəstəyi ilə

Miguel Ojeda, "Rust-for-" layihəsinin müəllifiLinux, kernel geliştiriciləri tərəfindən nəzərdən keçirilməsi üçün təklif edildi Linux Rust-da cihaz drayverlərinin hazırlanması üçün komponentlərin dördüncü versiyası. Rust dəstəyi eksperimental hesab olunur, lakin artıq linux-next filialına daxil edilməsi üçün təsdiqlənib və kernel altsistemləri üzərində abstraksiya təbəqələrinin yaradılması, eləcə də drayverlərin və modulların yazılması üzərində işə başlamaq üçün kifayət qədər yetkindir. İnkişaf Google və HTTPS-i və internet təhlükəsizliyini yaxşılaşdırmaq üçün texnologiyaların inkişafını təşviq edən Let's Encrypt layihəsinin təsisçisi ISRG (İnternet Təhlükəsizliyi Tədqiqat Qrupu) tərəfindən maliyyələşdirilir.

Xatırladaq ki, təklif olunan dəyişikliklər Rust dilini drayverlərin və nüvə modullarının hazırlanması üçün ikinci dil kimi istifadə etməyə imkan verir. Rust dəstəyi defolt olaraq aktivləşdirilməyən və kernel üçün tələb olunan qurma asılılıqları sırasına Rust-un daxil edilməsi ilə nəticələnməyən seçim kimi təqdim olunur. Sürücüləri inkişaf etdirmək üçün Rust-dan istifadə sizə minimum səylə yaddaş sahəsinə daxil olmaq, boş göstəricilərə istinad etmək və bufer aşmaq kimi problemlərdən azad olaraq daha təhlükəsiz və daha yaxşı drayverlər yaratmağa imkan verəcək.

Yaddaşın təhlükəsiz işləməsi Rust-da kompilyasiya zamanı istinad yoxlaması, obyekt sahibliyi və obyektin istifadə müddətini (əhatə dairəsini) izləmək, həmçinin kodun icrası zamanı yaddaşa girişin düzgünlüyünün qiymətləndirilməsi vasitəsilə təmin edilir. Rust həmçinin tam ədədlərin daşmasına qarşı qorunma təmin edir, istifadə etməzdən əvvəl dəyişən dəyərlərin məcburi işə salınmasını tələb edir, standart kitabxanada səhvləri daha yaxşı idarə edir, dəyişməz istinadlar və dəyişənlər konsepsiyasını standart olaraq tətbiq edir, məntiqi səhvləri minimuma endirmək üçün güclü statik yazma təklif edir.

Yamaların yeni versiyası yamaqların birinci, ikinci və üçüncü nəşrlərinin müzakirəsi zamanı edilən şərhləri aradan qaldırmağa davam edir. Yeni versiyada:

  • İstinad tərtibçisi kimi Rust 1.58.0-ın stabil buraxılışından istifadəyə keçid edildi. Əsas Rust alət dəstinə hələ daxil edilməyən layihə üçün zəruri dəyişikliklər arasında “-Zsymbol-mangling-version=v0” bayrağı (Rust 1.59.0-da gözlənilir) və “maybe_uninit_extra” rejimi (Rust 1.60.0-da gözlənilir) .XNUMX) qeyd olunur.
  • Müvafiq Rust alətlərinin mövcudluğu üçün avtomatik yoxlamalar əlavə edildi və sistemdə Rust dəstəyini sınaqdan keçirmək imkanı genişləndirildi.
  • Rust kodundan cihaz identifikator cədvəllərinə (“IdArray” və “IdTable”) daxil olmaq üçün yeni abstraksiyalar təklif edilmişdir.
  • Taymerlə əlaqəli funksiyalara (saat çərçivəsi) daxil olmaq üçün əlavə təbəqələr.
  • Platforma drayverləri indi xüsusiyyət tətbiqləri vasitəsilə müəyyən edilir.
  • Platforma drayverlərinin qeydiyyatını sadələşdirmək üçün yeni makro əlavə edilib və yeni ümumi sürücü şablonu təklif olunub.
  • "dev_*" strukturları üçün makrolar əlavə edildi.
  • IoMem növü üçün "{read,write}*_relaxed" üsulları əlavə edildi .
  • Fayl əməliyyatlarını sadələşdirmək üçün FileOpener xassəsi silindi.
  • Sürücü qeydiyyatdan keçərkən verilən arqumentlərə “ThisModule” parametri əlavə edilmişdir.
  • Rust dilində nüvə modullarının yaradılması üçün standart şablon təklif olunur.

Mənbə: opennet.ru

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster