Maestro ekran görüntüsü
Rust yeterince popülerlik kazandı öyle bir dereceye kadar ki, Linux'a ve diğer işletim sistemlerine ikincil dil olarak entegre edilmek üzere seçilen dillerden biri haline geldi; kodun bir kısmı zaten Rust'ta bulunan Android'de, Windows'ta da var. diğerlerinin yanı sıra onay verdi.
Rust sağlam bir dil olduğunu kanıtladı ve büyük bir güven yarattı Hatta bazı işletim sistemleri bu programlama diliyle oluşturulmuştur ve elimizdeki birkaçından bahsetmek gerekirse: Redoks, Ayrıca sıfırdan yazılmış çekirdeklerimiz de var. Kerala veya kullanılan Çekirdek Çin'in yakın zamanda fırlattığı uydu.
Bunu belirtmemin nedeni geçenlerde dikkatimi çeken bir habere rastlamamdı ve o da şuydu: Rust ile yazılmış bir çekirdeğin geliştirildiği proje sunuldu ve kısmen Linux ile uyumludur.
Bu projenin adı "Öğretmen" ve belirtildiği gibi, Rust'ta yazılmış, Linux çekirdeğinden gelen sistem çağrılarının bir alt kümesini uygulayan Unix benzeri bir çekirdektir standart çalışma ortamları oluşturmaya yeterlidir. Hal böyle olunca "Maestro" projesi yeni bir şey değil, geliştirici projenin 2018 yılında doğduğunu ancak o dönemde C dilinde yazıldığını ve Rust'ın farklı yararları ve özellikleri nedeniyle projeyi baştan yazdığını belirttiği için "Maestro" projesi yeni bir şey değil. sıfır.
Proje sayfasında Değişikliğin nedenleri şöyle anlatılıyor:
O anda birçok avantajı temsil eden Rust'a (bu dildeki ilk projem) geçmeye karar verdim:
- Önceki hatalardan öğrenilen dersleri kullanarak projeyi en baştan yeniden başlatın.
- C'de Linux benzeri bir çekirdek yazmaktan biraz daha yenilikçi olun. Sonuçta o anda sadece Linux kullanın.
- Bazı çekirdek programlama zorluklarından yararlanmak için Rust dilinin güvenliğini kullanın. Rust yazma sistemini kullanmak, bellek güvenliği sorumluluğunun bir kısmını programcıdan derleyiciye aktarmanıza olanak tanır.
Çekirdek geliştirmede hata ayıklama çeşitli nedenlerden dolayı çok zordur:
- Belgeleri bulmak genellikle zordur ve BIOS uygulamaları hatalı olabilir (düşündüğünüzden daha sık).
- Önyükleme sırasında çekirdeğin belleğe tam erişimi vardır ve yazmaması gereken yerlere (örneğin kendi kodunu) yazabilir.
- Bellek sızıntılarını gidermek kolay değildir. Valgrind gibi araçlar kullanılamaz.
- gdb, QEMU ve VMWare ile kullanılabilir, ancak çekirdek, farklı bir emülatörde veya sanal makinede çalıştırıldığında farklı davranabilir. Ayrıca bu emülatörler gdb'yi (örn. VirtualBox) desteklemeyebilir.
- QEMU veya VMWare'deki gdb desteğinde bazı özellikler eksiktir ve gdb bazen çökebilir.
İle ilgili olarak Projenin özelliklerinde Çekirdeğin yekpare olduğu göze çarpıyor ve şu anda yalnızca 86 bit modundaki x32 sistemlerinde desteklenmektedir. Çekirdek kod tabanı yaklaşık 49 bin satırı kapsıyor ve hem gerçek donanımda hem de QEMU veya VirtualBox gibi sanallaştırılmış ortamlarda çalıştırılabilir.
«Maestro»nun mevcut gelişiminde, %31'i uygulandı (135/437) Linux sistem çağrılarının sayısı. Bu Bash ve Musl standart C kütüphanesini temel alan bir konsol ortamını yüklemek için yeterli. Ayrıca Maestro tabanlı ortam, GNU coreutils paketindeki bazı yardımcı programları ve herhangi bir Unix sistemindeki temel paketlemeyi çalıştırabilir. Şu anda, bir ağ yığınının uygulanmasına yönelik çalışmalar yapılıyor ve aynı zamanda bir X11 sunucusu, bir paket yöneticisi, bir önyükleme yükleyicisi, bir yükleyici ve bir işletim sistemi oluşturmaya yönelik diğer temel yardımcı programların geliştirilmesi üzerinde de çalışmalar yapılıyor.
Arasında Maestro'nun mevcut özellikleri öne çıkıyor aşağıdaki::
- PS/2 klavye ve terminal için metin moduna ve ANSI dizileri için kısmi desteğe sahip kontrolörler.
- Sanal bellek desteğine sahip bellek ayırma sistemi.
- POSIX sinyallerini destekleyen, hepsini bir kez deneme algoritmasını temel alan görev zamanlayıcı.
- PCI cihazlarının tanımı.
- IDE/PATA denetleyicisi.
- Ext2 dosya sistemi.
- /tmp ve /proc sanal dosya sistemleri desteği.
- FS, MBR ve GPT disk bölümlerini bağlama yeteneği.
- initramfs desteği.
- Zamanlayıcı ve hassas zaman için RTC denetleyicisi.
- Çekirdek modüllerini yükleme desteği.
- Yürütülebilir dosyaları ELF formatında çalıştırma yeteneği.
Için proje hakkında biraz daha fazlasını öğrenmekle ilgileniyorum, detayları kontrol edebilirsiniz Aşağıdaki bağlantıda. Proje koduyla ilgilenenler şunu bilmeli: MIT lisansı altında dağıtılmaktadır.