Kerla projesi Rust'ta Linux uyumlu bir çekirdek geliştiriyor

Kerla projesi Rust'ta yazılmış bir işletim sistemi çekirdeği geliştiriyor. Yeni çekirdek, baştan sona Linux çekirdeğiyle ABI düzeyinde uyumlu olacak şekilde tasarlandı; bu, Linux için oluşturulmuş değiştirilmemiş yürütülebilir dosyaların Kerla tabanlı bir ortamda çalışmasına olanak tanıyacak. Kod Apache 2.0 ve MIT lisansları altında dağıtılmaktadır. Proje, C ile yazılmış Resea mikro çekirdek işletim sistemini oluşturmasıyla tanınan Japon geliştirici Seiya Nuta tarafından geliştiriliyor.

Geliştirmenin mevcut aşamasında Kerla yalnızca x86_64 sistemlerinde çalışabilir ve yazma, stat, mmap, yönlendirme ve yoklama gibi temel sistem çağrılarını uygulayabilir, sinyalleri, adsız kanalları ve bağlam anahtarlarını destekler. Süreç yönetimi için fork, wait4, execve gibi çağrılar sağlanır. Tty ve sözde terminaller (pty) desteği vardır. Dosya sistemlerinden initramf'lar (kök FS'yi bağlamak için kullanılır), tmpf'ler ve devf'ler hala desteklenmektedir. Smoltcp kütüphanesi temelinde uygulanan TCP ve UDP soketleri desteğiyle bir ağ yığını sağlanır.

Geliştirici, zaten SSH aracılığıyla bağlanabileceğiniz, QEMU'da veya virtio-net sürücüsüyle Firecracker sanal makinesinde çalışan önyüklenebilir bir ortam hazırladı. Musl bir sistem kütüphanesi olarak kullanılır ve BusyBox kullanıcı yardımcı programları olarak kullanılır.

Kerla projesi Rust'ta Linux uyumlu bir çekirdek geliştiriyor

Docker temel alınarak Kerla çekirdeği ile kendi boot initramf'larınızı oluşturmanıza olanak sağlayan bir build sistemi hazırlanmıştır. Balık benzeri nsh kabuğu ve Wayland protokolünü temel alan Kazari GUI yığını ayrı ayrı geliştirilmektedir.

Kerla projesi Rust'ta Linux uyumlu bir çekirdek geliştiriyor

Bir projede Rust dilinin kullanılması, güvenli kodlama teknikleri uygulayarak koddaki hata sayısını azaltır ve bellekle çalışırken sorunları belirleme verimliliğini artırır. Rust'ta bellek güvenliği, derleme zamanında referans kontrolü, nesne sahipliğinin ve nesne ömrünün (kapsam) takip edilmesi ve ayrıca kod yürütme sırasında bellek erişiminin doğruluğunun değerlendirilmesi yoluyla sağlanır. Buna ek olarak Rust, tam sayı taşmalarına karşı koruma sağlar, değişken değerlerin kullanımdan önce zorunlu olarak başlatılmasını gerektirir, varsayılan olarak değişmez referanslar ve değişkenler kavramını uygular, mantıksal hataları en aza indirmek için güçlü statik yazma sunar ve kalıp eşleştirme olanakları aracılığıyla giriş değeri işlemeyi basitleştirir . .

İşletim sistemi çekirdeği gibi düşük seviyeli bileşenlerin geliştirilmesi için Rust, ham işaretçiler, yapı paketleme, montajcı satır içi eklemeleri ve montajcı dosyası satır içi oluşturma için destek sağlar. Standart kitaplığa bağlı kalmadan çalışmak için dizeler, vektörler ve bit bayrakları üzerinde işlemler gerçekleştirmek için ayrı kasa paketleri vardır. Avantajları arasında, kod kalitesini değerlendirmek (linter, pas analizörü) ve yalnızca gerçek donanımda değil aynı zamanda QEMU'da da çalıştırılabilen birim testleri oluşturmak için yerleşik araçlar da vardır.

Kaynak: opennet.ru

Yorum ekle