Linux için Rust, desteklemek için çeşitli geliştirmeler içerir

Son aylarda Linux geliştiricileri tartışıyor olasılığı Rust dilinin kullanımına izin ver çekirdek için yeni aygıt sürücüleri yazmak için.

Geçen yıl, Linux çekirdek geliştiricileri bu konuda bir anlaşmaya varmış görünüyorlar, Rust destekçileri, Android ve Ubuntu'da CVE'lere atanan çekirdek güvenlik açıklarının kabaca üçte ikisinin bellek güvenliği sorunlarıyla ilgili olduğunu gösteren çalışmalara atıfta bulundu.

Bu açıklamanın ardından, yazılım mühendisi, Linux çekirdeğinin baş yaratıcısı ve geliştiricisi Linus Torvalds bir röportajda konuyla ilgili tartışmaların dil üzerine uzun bir Google gönderisinden çok daha önemli olacağını söyledi.

Rust kullanma önerisi sorulduğunda, "Buradaki çözüm basit: Rust yerine C++ kullanın" dedi.

Daha sonra Mart ayında ilk destek başlatıldıBu, Rust sürücülerinin ana çekirdeğe nihai olarak dahil edilmeden önce daha fazla test için Linux-Next ağacına yerleştirilmesine izin verdi.

Hemen arkasında, Linux çekirdeği için Rust kodu perspektifi hakkında çekirdek posta listesinde yeniden yayınlanan bir "yorum isteği" vardı.

miguel ojedaLinux çekirdeği geliştiricisi, Linux çekirdeği posta listesinde bir Yorum İsteği (RFC) önerisi başlattı.

Posta listesi gönderisi, çekirdeğe Rust kodu eklemeye dahil olan geliştiricilerin inançlarını, gelişmiş bellek güvenliği gibi faydaları ve daha fazlasını özetledi.

“Bazılarınız son haftalarda ve aylarda çekirdeğe ikinci bir dil getirmek için ciddi bir girişimin yapıldığını fark ettiniz. Sonunda Linux çekirdeğine Rust desteği ekleyen bir RFC ile karşınızdayız ”dedi Miguel Ojeja. "Çekirdeğe yeni bir dil eklemenin çok büyük maliyetleri ve riskleri olduğunu biliyoruz" diye ekledi.

Linux Proje Ekibi için Rust Rust beta derleyicisinden kararlı sürümleri kullanmaya geçti, her yeni sürüm yayınlandığında taşınıyor.

Miguel, "Çekirdeğin kullanabilmesi için bu seçenekler üzerinde bizimle birlikte çalıştığı için Rust'a teşekkür etmek istiyoruz" dedi.

Derleyiciyi güncellerken, ekip bazı kararsız özellikleri listeden kaldırabildi: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic ve try_reserve.

Buna ek olarak, vurgulanır ki bazı modülerleştirme seçenekleri eklendi bazı gereksiz işlevleri devre dışı bırakmak için daha fazlası: no_rc ve no_sync.

Yukarı akış, çekirdek kullanım durumunun iyi desteklenmesi veya daha kesin olarak, çekirdeğin ihtiyaç duyduğu seçeneklerin "karışımı" için Yukarı akış çekirdeği ayrıca no_fp_fmt_parse ekledi.

Öte yandan Rust, Rust ve Clippy derleyicisi için bir dizi ek tanılamayı etkinleştirdi. C'den bir fark, genel durumda daha katı olan kodda Rust tanılamanın devre dışı bırakılmasının biraz daha kolay olmasıdır.

ayrıca soyutlamalar ve sürücü güncellemeleri uygulandı. Ekip, akış kilitleri, güç yönetimi geri aramaları, io belleği (readX / writeX), irq yongaları ve üst düzey akış yöneticileri, gpio yongaları (irq yongaları dahil), çevre birimleri, amba çevre birimleri ve sürücüler için soyutlamalar ekledi.

desteği veriyolundan bağımsız bir altyapı ile geliştirilmiş kontrolör, Geri alınabilir nesneler, geri alınabilir muteksler, verimli bit yineleyiciler, daha iyi panik tanılama ve basitleştirilmiş işaretçi sarmalayıcılar. Ek olarak, Ref nesnelerini iyileştirdi ve basitleştirdi (refcount_t ile uyumlu) ve tüm Rust örneklerinin yerini aldı.

Ve gpio PL061 aygıtları için yeni bir sürücü uygulandı ve RFC yaması olarak gönderildi.

Son olarak not edilmelidir ki Pas desteği hala deneysel olarak kabul ediliyor. Bununla birlikte, destek, çekirdek geliştiricilerin çalışmaya başlaması için yeterince iyi Yazma alt sistemleri, denetleyiciler ve diğer modüller için Rust soyutlamalarında. Mevcut seri Linux-next'e yeni geldi, bu nedenle ilk çalıştırma bu hafta gerçekleşecek.

kaynak: https://lkml.org/lkml


Yorumunuzu bırakın

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

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  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.