Linux çekirdeğine yönelik Rust desteği Torvalds'ın eleştirileriyle karşı karşıya

Linus Torvalds, Linux çekirdeği için Rust dilinde sürücü oluşturma yeteneğini uygulayan yamaları inceledi ve bazı eleştirel yorumlarda bulundu.

En büyük şikayetler, hata durumlarında olası panik() olasılığından kaynaklanıyordu; örneğin, çekirdek içi de dahil olmak üzere dinamik bellek ayırma işlemlerinin başarısız olabileceği düşük bellek durumunda. Torvalds, çekirdekte böyle bir yaklaşımın temelde kabul edilemez olduğunu ve eğer bu nokta anlaşılmazsa, böyle bir yaklaşımı kullanmaya çalışan her kodu tamamen NAK'leyebileceğini belirtti. Öte yandan yama geliştiricisi de bu soruna katılıyor ve çözülebilir olduğunu düşünüyor.

Diğer bir sorun ise Linux çekirdeği gibi ortamlar için kabul edilmeyen kayan nokta veya 128 bit türlerinin kullanılmasına yönelik girişimlerdi. Bunun daha ciddi bir sorun olduğu ortaya çıktı, çünkü şu anda çekirdek Rust kütüphanesi bölünemez ve büyük bir bloğu temsil ediyor - yalnızca bazı özellikleri talep etmenin bir yolu yok, bu da şu veya bu sorunlu işlevselliğin kullanımını engelliyor. Sorunu çözmek, pas derleyicisinde ve kitaplıklarda değişiklik yapılmasını gerektirebilir, ancak şu anda ekibin dil kitaplıklarının modülerleştirilmesinin nasıl uygulanacağına dair bir stratejisi henüz yok.

Ayrıca Torvalds, sağlanan sürücü örneğinin işe yaramaz olduğunu belirtti ve bize gerçek sorunlardan birini çözen bazı sürücüleri örnek olarak kullanmamızı tavsiye etti.

Güncelleme: Google, Rust desteğini Linux çekirdeğine aktarma girişimine katıldığını duyurdu ve bellek hatalarından kaynaklanan sorunlarla mücadele etmek için Rust'un tanıtılmasının teknik nedenlerini açıkladı. Google, Rust'un Linux çekirdek bileşenlerini geliştirme dili olarak C'ye katılmaya hazır olduğuna inanıyor. Makale ayrıca, Android platformundaki kullanımları bağlamında çekirdek sürücülerini geliştirmek için Rust dilinin kullanımına ilişkin örnekler de sunmaktadır (Rust, Android geliştirme için resmi olarak desteklenen bir dil olarak kabul edilmektedir).

Google'ın, Binder süreçleri arası iletişim mekanizması için Rust'ta yazılmış bir sürücünün ilk prototipini hazırladığı, bu sürücünün C ve Rust'taki Binder uygulamalarının performans ve güvenliğinin ayrıntılı bir şekilde karşılaştırılmasına olanak sağlayacağı belirtiliyor. Mevcut haliyle çalışma henüz tamamlanmadı ancak Binder'ın çalışması için gerekli olan çekirdek işlevselliğinin hemen hemen tüm temel soyutlamaları için, bu soyutlamaların Rust kodunda kullanılmasına yönelik katmanlar hazırlandı.

Kaynak: opennet.ru

Yorum ekle