Rust, Linus Torvalds'ın eleştirilerinden muaf tutulmadı

Birkaç hafta önce hakkında haberler yapılan bazı uygulamalar ilk bileşen kümesini içeren bir sonraki linux dalı aygıt sürücülerini geliştirmek için Rust dilinde.

Bu dokümantasyon, Rust'un Linux çekirdeğinde kullanımı ve Rust dilinde bir karakter aygıt sürücüsüne sahip bir çekirdek modülü örneği hakkında ayrı olarak yayınlanmıştır. Kod, şubenin yöneticisi Stephen Rothwell tarafından eklendi.

Bundan sonra Linus Torvalds uygulama incelemesinin üzerinden geçti Linux çekirdeğinde Rust dil sürücülerini ayarlama olasılıkları yaması ve bazı eleştiriler dile getirdi.

En büyük şikayetler neden oldu kaçış potansiyeli Yanlış durumlarda "çalışma zamanı hatası paniği", örneğin, çekirdek işlemleri dahil olmak üzere dinamik bellek ayırma işlemlerinin başarısız olabileceği bellek yetersizliği durumunda.

Torvalds çekirdek üzerinde böyle bir odaklanmanın temelde kabul edilemez olduğunu belirtti, Ve bu noktayı anlamazsanız, böyle bir yaklaşımı kullanmaya çalışan herhangi bir kodu tamamen reddedebilirsiniz. Öte yandan, yamanın geliştiricisi problemle hemfikirdi ve çözülebilir olduğunu düşünüyordu.

Diğer bir sorun, kayan nokta veya 128 bit türleri kullanma girişimleridir, Linux çekirdeği gibi ortamlar için geçerli olmayan.

Ne zaman olabileceğinin sonuçlarını anlamayabilirsiniz, bu yüzden belki
sandığımdan daha az sorun, ama temelde
Bence herhangi bir Rust haritalaması paniğe neden olabilirse, bu basitçe
_ temelde_ kabul edilemez.

Çekirdek olmayan bir denetleyicide veya kodda hataları eşleme ve bu,
tanım, tüm yeni Rust kodu, ASLA neden olamaz
geçerli bir panik. Aynı şey «ah, bazı durumlarda kullanmayı denemedim
128-bit tam sayılar veya kayan nokta '.

Dolayısıyla, Rust derleyicisi, yapılamayacak gizli atamalara neden olursa
hata olarak algılayıp geri döndüyseniz, tüm bunların
yaklaşım tamamen NAK'ed olmalı ve Rust altyapısı,
ya derleyici düzeyinde ya da çekirdek sarmalayıcılarda, daha fazlasına ihtiyacınız var
çalışması.

Bunun daha ciddi bir sorun olduğu ortaya çıktı.şu andan beri Rust'un merkez kütüphanesi bölünemez ve büyük bir lekeyi temsil eder; sadece bazı özellikleri talep etmenin bir yolu yoktur, bu nedenle bir veya daha fazla sorunlu işlevselliğin kullanımından kaçınılır.

Ekibin dil kitaplıkları için modülerliğin nasıl uygulanacağına dair henüz bir stratejisi olmasa da, sorunun çözümü, pas derleyicide ve kitaplıkta değişiklik yapılmasını gerektirebilir.

Buna ek olarak, Torvalds, sağlanan örnek denetleyicinin işe yaramaz olduğuna dikkat çekti ve örnek olarak gerçek sorunlardan birini çözen bir sürücü eklemenizi tavsiye etti.

Bundan önce Google, Linux çekirdeğinde Rust desteğini teşvik etmek için bir girişime katıldığını duyurdu y sağlanan teknik yönler Hafıza ile çalışırken ortaya çıkan hatalardan kaynaklanan sorunlarla mücadele etmek için Rust uygulamasının fizibilitesi.

Google, Rust'un bir geliştirme dili olarak C'ye katılmaya hazır olduğunu düşünüyor Linux çekirdek bileşenleri. Makale ayrıca Android platformunda kullanımı bağlamında çekirdek sürücülerini geliştirmek için Rust dilinin kullanımına ilişkin örnekler sunmaktadır (Rust, Android geliştirme için resmi olarak desteklenen bir dil olarak kabul edilmektedir).

Unutmayın Google, Rust'ta yazılmış bir denetleyicinin ilk prototipini hazırladı C ve Rust'taki Binder uygulamalarının ayrıntılı performans ve güvenlik karşılaştırmasına izin verecek olan Binder'ın süreçler arası iletişim mekanizması için.

Mevcut haliyle, çalışma henüz tamamlanmadı, ancak Binder'ın çalışması için gereken çekirdek işlevselliğinin neredeyse tüm temel soyutlamaları için, katmanlar bu soyutlamaları Rust kodunda kullanacak şekilde hazırlandı.

Son olarak, hakkında daha fazla bilgi edinmek istiyorsanız, ayrıntıları kontrol edebilirsiniz. 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.

  1.   Miguel Rodriguez dijo

    Rust'un C'den farklı bir paradigma ile çalışan yeni bir dil olduğu göz önüne alındığında, tüm eleştirileri geçerlidir, kodun geçerli olmasına rağmen çekirdeğin neden olduğu kütüphanelerde veya derleyicinin kendisindeki herhangi bir ayrıntıyla ilgili endişe anlaşılabilir bir durumdur. olduğu gibi kırmak. nasıl uygulanıp inşa edildiğini. Bu nedenle, sadece program için (veya bu durumda herhangi bir kontrolör için) gerekli olan fonksiyonları çağırmak ve aktif tutmak için kütüphaneyi modülerleştirebilme gibi öneriler doğru çalışır. İstediğiniz şey mantıksız değil, size mevcut bir problemde iyi bir iş çıkaran (veya en azından çekirdekte mevcut olanla aynı işi yapan ve panik yapmadan çalışan) gerçek bir prototip denetleyici getirmeleri de mantıksız değil.

  2.   Sete dijo

    Zaman zaman makaleleri tekrar okuyorum Linux Adictos Ancak içeriğin çok iyi olmasına rağmen nihai sonucun berbat bir yazımla mahvolduğunu görünce umutsuzluğa kapılmam çok az zaman alıyor.
    Yazım ve dil bilgisi bu kadar zor olacak mı?
    Utanç!
    Neşelendirmek!