Rust dilini dəstəkləyən Linux nüvəsi üçün yamaqların dördüncü nəşri

Rust-for-Linux layihəsinin müəllifi Migel Ojeda Linux nüvəsi tərtibatçıları tərəfindən nəzərdən keçirilməsi üçün Rust dilində cihaz drayverlərinin hazırlanması üçün komponentlərin dördüncü versiyasını təklif etdi. Rust dəstəyi eksperimental hesab olunur, lakin artıq Linux-növbəti filialına daxil olmaq üçün razılaşdırılıb və nüvə alt sistemləri üzərində abstraksiya təbəqələrinin yaradılması, həmçinin drayverlərin və modulların yazılması üzərində işə başlamaq üçün kifayət qədər yetkindir. İnkişaf Google və Let's Encrypt layihəsinin yaradıcısı olan və HTTPS-i və internet təhlükəsizliyini yaxşılaşdırmaq üçün texnologiyaların inkişafını təşviq edən ISRG (İnternet Təhlükəsizliyi Araşdırma 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

Добавить комментарий