Rust-for-projesinin yazarı Miguel OjedaLinuxÇekirdek geliştiricilerinin değerlendirmesine sunulması önerildi. Linux Rust ile aygıt sürücüleri geliştirmek için bileşenlerin 5. sürümü yayınlandı. Bu, sürüm numarası olmadan yayınlanan ilk sürümü de hesaba katarsak, yamaların altıncı revizyonudur. Rust desteği deneysel olarak kabul ediliyor, ancak linux-next dalına zaten dahil edildi ve çekirdek alt sistemleri üzerinde soyutlama katmanları oluşturmaya, ayrıca sürücüler ve modüller yazmaya başlamak için yeterince olgunlaştı. Geliştirme, HTTPS'yi ve internet güvenliğini iyileştirmek için teknolojilerin geliştirilmesini destekleyen Let's Encrypt projesinin kurucusu olan Google ve ISRG (İnternet Güvenliği Araştırma Grubu) tarafından finanse edilmektedir.
Ö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ü, dördüncü ve beşinci basımlarının tartışılması sırasında yapılan yorumları ortadan kaldırmaya devam ediyor. Yeni versiyonda:
- Araç seti Rust 1.59.0'ı yayınlayacak şekilde güncellendi. Alloc kütüphanesinin bir çeşidi de Rust'un yeni sürümüyle senkronize edilerek, hafızanın yetersiz olması gibi hatalar meydana geldiğinde ortaya çıkabilecek olası "panik" durumu ortadan kaldırılıyor. Birleştirici eklerini kullanma yeteneği ("feature(global_asm)") stabilize edildi.
- Rust'ta çekirdek derlemesi sırasında kullanılan ana bilgisayar programlarının oluşturulmasına yönelik destek eklendi.
- Önceden oluşturulmuş hedef platform spesifikasyon dosyalarını teslim etmek yerine, bunlar çekirdek yapılandırmasına dayalı olarak dinamik olarak oluşturulur.
- Rust'u destekleyen mimarileri etkinleştirmek için HAVE_RUST çekirdek parametresi eklendi.
- Bir donanım sözde rastgele sayı üreteci için Rust kodunda kullanılmak üzere soyutlamalar önerilmiştir.
- C'de hata kodlarının işlenmesine yaklaşmak için "Error::" öneki olmadan hata kodlarının kullanılmasına izin verildi (örneğin, "return Err(EINVAL)").
- Özel C-dizeleri için "CString" türü eklendi. Formatlayıcı ve Buffer türleri birleştirildi.
- Bool ve LockInfo türleri eklendi.
- Döndürme kilitlerinin uygulanması basitleştirilmiştir.
Kaynak: opennet.ru
