Linux'ta Rust sürücü desteği için yamaların ikinci sürümü zaten gönderildi

Bu yılın Mart ayında linux-sonraki dalında Linux çekirdeği 5.13 için çalıştığı sırada, aygıt sürücülerini geliştirmek için bir ilk bileşen seti dahil edildi. dil Rust ve şimdi ikinci bir baskı eklemek için talepte bulunuldu Linux çekirdeğine Rust desteği eklemek için yama sayısı.

Linux geliştiricilerine talebi gönderen kişi, Rust-for-Linux projesinin yazarı ve birkaç gün önce bahsettiğimiz Miguel Ojeda'dır. Rust ile Linux çekirdek belleğinin güvenliğini sağlamak için kritik yazılım altyapısını güvenli bir koda taşıma çabalarını koordine etmeye odaklanır (proje hakkında daha fazla bilgi edinmek istiyorsanız, Aşağıdaki linkte yayınlanmıştır.)

Linux'ta Rust sürücüleri
İlgili makale:
Prossimo, Rust ile Linux çekirdek belleğinin güvenliğini sağlamaya yönelik bir ISRG projesi

Miguel Ojeda tarafından gönderilen istek, ikinci bir güncellenmiş versiyondur. Rust dilinde aygıt sürücülerinin geliştirilmesi için bileşenlerin bulunduğu ve yamaların ilk sürümünün tartışılması sırasında yapılan yorumların silindiği ve Linus Torvalds'ın zaten tartışmaya katıldığı ve bazı bit işlemlerini işlemek için mantığın değiştirilmesini önerdiği.

faydaları içinde bahsedilenler şunlar Rust'ta güvenli bellek yönetimi garanti edilir derleme zamanında referansları kontrol ederek, nesne sahipliğini ve nesne ömrünü izleyerek ve çalışma zamanında bellek erişiminin doğruluğunu değerlendirerek.

Rust ayrıca sağlar tamsayı taşma koruması, kullanımdan önce değişken değerlerin zorunlu olarak başlatılmasını gerektirir, standart kitaplıktaki hataları daha iyi işler, varsayılan olarak referanslar ve değişmez değişkenler kavramını benimser ve mantıksal hataları en aza indirmek için güçlü statik yazma sunar.

Göze çarpan değişikliklerden Bahsedilen yamaların bu yeni sürümünden:

  • Bellek ayırma kodu, yetersiz bellek gibi hatalar oluştuğunda panik durumu oluşturma olasılığını engeller.
  • İçerir Kodun kilitleri işlemek için yeniden işlendiği Rust tahsis kitaplığının bir çeşidi, ancak nihai hedef, çekirdek için gerekli tüm özellikleri alloc'un ana sürümüne getirmektir (değişiklikler zaten hazırlanmış ve standart Rust kitaplığına aktarılmıştır).
  • Gecelik derlemeler yerine artık beta ve kararlı sürümler kullanılabilir Rust etkin bir çekirdeği derlemek için rustc derleyicisi. Şu anda rustc 1.54-beta1 referans derleyici olarak kullanılmaktadır ancak ay sonundaki 1.54 sürümünden sonra referans derleyici olarak desteklenecektir.
  • Standart Rust özelliği "# [test]" kullanılarak testler yazma desteği ve belgelerdeki örnek kodu test olarak kullanmak için doküman testleri kullanma yeteneği eklendi.
  • Daha önce desteklenen x32_86 ve ARM64'e ek olarak ARM64 ve RISCV mimarileri için destek eklendi.
    Geliştirilmiş GCC uygulamaları Rust (Rust için GCC ön ucu) ve rustc_codegen_gcc (GCC için rustc arka ucu) artık tüm kriterleri geçiyor.
  • bir yeni soyutlama seviyesi Rust programlarının ağaçlar, referans sayma nesneleri, dosya tanımlayıcıları, görevler, dosyalar ve G/Ç vektörleri oluşturma gibi C ile yazılmış çekirdek mekanizmalarını kullanması için.
  • Sürücü geliştirme bileşenleri, "file_processs" modülü, "modül!" Makro, makro günlüğü ve ilkel sürücüler (araştırma ve silme) için geliştirilmiş desteğe sahiptir.
  • Binder, dosya tanımlayıcılarını ve LSM bağlantılarını geçirme desteğine sahiptir.
  • Raspberry Pi kartları için bir donanım rastgele sayı üreteci için bir Rust sürücüsünün daha işlevsel bir örneği olan bcm2835-rng önerilmiştir.

Son olarak, daha fazla bilgi edinmek istiyorsanız, ayrıntılara başvurabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.