Linux çekirdeği için Rust dilini destekleyen yamaların beşinci sürümü

Rust-for-Linux projesinin yazarı Miguel Ojeda, Linux çekirdek geliştiricilerinin değerlendirmesi için Rust dilinde aygıt sürücüleri geliştirmeye yönelik bileşenlerin beşinci sürümünü önerdi. Rust desteği deneysel olarak kabul edilir, ancak zaten linux-sonraki dalına dahil edilmiştir ve çekirdek alt sistemleri üzerinde soyutlama katmanları oluşturmanın yanı sıra sürücü ve modül yazma çalışmalarına başlamak için yeterince geliştirilmiştir. Geliştirme, Google ve Let's Encrypt projesinin kurucusu olan ISRG (İnternet Güvenliği Araştırma Grubu) tarafından finanse ediliyor ve HTTPS'yi ve İnternet güvenliğini artıracak teknolojilerin geliştirilmesini destekliyor.

Önerilen değişikliklerin Rust'un sürücü ve çekirdek modüllerini geliştirmek için ikinci bir dil olarak kullanılmasını mümkün kıldığını hatırlayın. Rust desteği, varsayılan olarak etkin olmayan bir seçenek olarak sunulur ve Rust'un çekirdek için gerekli bir yapı bağımlılığı olarak dahil edilmesine yol açmaz. Sürücü geliştirme için Rust'u kullanmak, minimum çabayla, serbest bırakma sonrasında belleğe erişim, boş işaretçi referansları ve arabellek aşımları gibi sorunlardan arınmış, daha güvenli ve daha iyi sürücüler oluşturmanıza olanak tanır.

Rust'ta derleme zamanında referans kontrolü, nesne sahipliği ve nesne ömrünün (kapsam) izlenmesi ve ayrıca kod yürütme sırasında bellek erişiminin doğruluğunun değerlendirilmesi yoluyla güvenli bellek kullanımı sağlanır. Rust ayrıca tamsayı taşmalarına karşı koruma sağlar, kullanımdan önce değişken değerlerinin zorunlu olarak başlatılmasını gerektirir, standart kitaplıkta hataları daha iyi işler, değişmez referanslar ve değişkenler kavramını varsayılan olarak uygular, mantıksal hataları en aza indirmek için güçlü statik yazım sunar.

Yamaların yeni versiyonu, yamaların birinci, ikinci, üçüncü ve dördüncü baskıları tartışılırken yapılan yorumları ortadan kaldırmaya devam ediyor. Yeni versiyonda:

  • Intel destekli 0DAY/LKP bot tabanlı sürekli entegrasyon sistemine Rust desteğine yönelik bileşen testleri eklenmiş ve test raporlarının yayınlanmasına başlanmıştır. Rust desteğini KernelCI otomatik test sistemine entegre etmeye hazırlanıyoruz. GitHub CI'ya dayalı testler konteynerlerin kullanımına aktarıldı.
  • Rust çekirdek modülleri, “#![no_std]” ve “#![feature(…)]” kasa niteliklerini tanımlama ihtiyacından kurtulmuştur.
  • Tekli derleme hedefleri (.o, .s, .ll ve .i) için destek eklendi.
  • Kod yönergeleri, yorumları ("//") ve kodu belgelemeyi ("///") ayırmaya yönelik kuralları tanımlar.
  • is_rust_module.sh betiği yeniden düzenlendi.
  • "CONFIG_CONSTRUCTORS" uygulamasını temel alan statik (genel paylaşımlı değişken) senkronizasyon temelleri için destek eklendi.
  • Kilit yönetimi basitleştirilmiştir: Guard ve GuardMut birleştirilmiştir ve parametrelendirilmiş tek tiptir.
  • Cihazları kaydederken ek parametreler tanımlamak mümkündür.
  • rw_semaphore C yapısı üzerinde sarmalayıcı görevi gören "RwSemaphore" soyutlaması eklendi.
  • Mmap'i kullanmak için yeni bir mm modülü ve bir VMA soyutlaması eklenmiştir (vm_area_struct yapısı üzerine bir sarıcı).
  • GPIO PL061 sürücüsü “dev_*!” makrosunu kullanacak şekilde değiştirildi.
  • Kodun genel temizliği yapıldı.

Kaynak: opennet.ru

Yorum ekle