12 puan yazan GN⁺ 2024-01-09 | 3 yorum | WhatsApp'ta paylaş

Motūrus OS'e giriş

  • Motūrus projesi, bulut için basit, hızlı ve güvenli bir işletim sistemi olan MotūrusOS'u geliştiriyor.
  • Motūrus OS, sanal makine tabanlı iş yüklerini hedefleyen yeni bir işletim sistemi; web sunucuları, sunucusuz yapılar ve edge caching gibi alanlarda kullanılabiliyor.

Neden Motūrus OS?

  • Günümüzde sanallaştırılmış üretim iş yüklerinin çoğu Linux üzerinde çalışıyor.
  • Linux birçok gelişmiş özelliğe sahip olsa da, sanallaştırılmış iş yükleri için ideal olmayan bazı karmaşıklıklara da sahip:
    • Linux bare metal için optimize edilmiştir; bu yüzden VM içinde kullanıldığında verimsiz olabilir.
    • Linux'un kullanımı zordur.
    • Linux tarihsel olarak oldukça güvensizdi.
  • Sanallaştırılmış iş yüklerine odaklanan yeni bir işletim sistemi, Linux'tan çok daha basit ve güvenli şekilde tasarlanabilir; ayrıca performans ve verimlilikte Linux'u yakalayabilir ya da aşabilir.

Motūrus OS nedir?

  • Motūrus OS, mikrokernel tabanlı bir işletim sistemidir; Rust diliyle inşa edilmiştir ve yalnızca sanallaştırılmış iş yüklerini hedefler.
  • Şu anda x64 KVM tabanlı sanal makineleri destekliyor ve Qemu veya Cloud Hypervisor üzerinde çalışabiliyor.
  • Rust, Motūrus OS'in çekirdek dili; yalnızca uygulama için değil, ABI için de Rust kullanılıyor.

Çalışan özellikler

  • Şu anda alt sistemlerin çoğu POC/MVP modunda olsa da, web sunucusu gibi iş yüklerini çalıştırabiliyor.
  • Özellikle şu özellikler çalışıyor:
    • MBR(Qemu) veya PVH(Cloud Hypervisor) üzerinden yaklaşık 200 ms içinde önyükleme yapıyor.
    • himem mikrokernel.
    • Zamanlama: basit çok işlemcili round-robin (SMP), kernel zamanlaması cooperative.
    • Bellek yönetimi: şu anda yalnızca 4K sayfalar destekleniyor, stack korunuyor, kullanıcı alanındaki page fault'lar uygun şekilde işleniyor.
    • I/O alt sistemi (kullanıcı alanında): VirtIO-BLK ve VirtIO-NET sürücüleri, iki basit dosya sistemi, smoltcp tabanlı ağ iletişimi (yalnızca TCP destekleniyor).
    • Kullanıcı alanı: çoklu süreç, preemption, thread'ler, TLS, Rust standart kütüphanesinin büyük bölümü port edildi.
    • Basit bir Unix tarzı shell sunuluyor.

Çalışmayan özellikler

  • Büyük kısmı hâlâ üretim kullanımına hazır değil.
  • Herhangi bir güvenlik denetimi yapılmadı.
  • sys-io (kullanıcı alanı I/O alt sistemi) içinde kolayca "uygulanmadı" panic'iyle karşılaşabilirsiniz.
  • Özellikle şu özellikler henüz çalışmıyor:
    • Dosya sistemi: Rust std::fs API'sinin büyük kısmı POC olarak uygulanmış olsa da, asenkron I/O kullanılarak yeniden uygulanması gerekiyor.
    • Ağ iletişimi: std::net::TcpStream büyük ölçüde uygulanmış durumda, ancak diğer protokoller henüz uygulanmadı.
    • Rust standardı dışındaki ekosistem: Bazı crate'ler küçük uyarlamalarla derlenip kullanılabiliyor; ancak Tokio gibi asenkron runtime'lara bağımlı crate'ler şu anda derlenmiyor.

Motūrus OS nasıl derlenir/çalıştırılır?

  • docs/build.md belgesine bakın.

Teşekkürler

  • Rust ile OS yazma üzerine blog serisi hazırlayan Philipp Oppermann'a büyük teşekkürler. Pek çok kişiye bu alanda deneyler yapma ilhamı verdi.

GN⁺ görüşü

  • Yenilikçi yaklaşım: Motūrus OS, sanallaştırılmış ortamlara özel yeni bir işletim sistemi olarak Linux'un karmaşıklığını ve verimsizliklerini çözmeyi hedefliyor.
  • Rust dilinin benimsenmesi: Rust, bellek güvenliği ve performansa odaklanan bir dil olarak Motūrus OS'in güvenliğine ve verimliliğine katkı sağlayabilir.
  • Geliştirici topluluğuna katkı: Bu proje, işletim sistemi geliştirmeyle ilgilenen geliştiricilerin yeni olasılıkları keşfetmesine ve mevcut sınırların ötesine geçmesine yardımcı olabilir.

3 yorum

 
ing03201 2024-01-09

Ben de writing an os in rust blogunu takip ediyorum, daha şimdiden hareketlenme başlamış demek!
Güzel bir yazı gibi görünüyor

 
GN⁺ 2024-01-09
Hacker News görüşleri
  • Proje geliştiricisi/yazarının görüşleri:

    • Projeye gösterilen ilgi ve yapılan tartışmalar için teşekkür ediyor.
    • Uzun vadeli sürdürülebilirlik ve destek, derleyici ve ikili uyumluluğu konusunda endişeler bulunduğunu belirtiyor.
    • Topluluk olmadan projenin başarılı olamayacağını, ancak Motor OS gibi projelerin potansiyel faydalarının sonunda yaygın olarak kullanılan yeni bir işletim sistemine yol açacağına inandığını söylüyor.
    • Sanal makine içinde (ve bazen dışında) Linux’un sorunları olduğunu ve Linux geliştiricilerinin bunları çözmeye yeterince odaklanmadığını belirtiyor.
    • Derleyici istikrarsızlığı ve ikili uyumluluğu konusundaki endişeleri anlamadığını; modern Linux çekirdeklerinin çeşitli GCC veya LLVM toolchain’leriyle derlenebildiğini ve eski ikililerin de sorunsuz çalıştığını ifade ediyor.
    • Ek soruları yanıtlamaya hazır olduğunu belirtiyor.
  • "Rust-first" yaklaşımına dair açıklama:

    • "Rust-first", yalnızca mikroçekirdek ve sürücülerin Rust ile yazılması değil, kullanıcı alanı programlarının da şu anda yalnızca Rust ile yazılabildiği anlamına geliyor.
    • Teknik olarak C gibi başka dillerle Motor OS için uygulama yazmak amacıyla Rust tabanlı ABI’yi ve sağlanan Rust toolchain’ini tersine mühendislikle çözmenin mümkün olduğunu, ancak bunun belli bir çalışma gerektirdiğini belirtiyor.
    • Standart Rust programlarının standart Rust kütüphanesini kullanabildiğini ve FFI olmadan derlenip çalıştırılabildiğini açıklıyor.
  • Küçük bir çekirdeğin modern bilgisayarlarda neden 200 ms sürdüğüne dair merak:

    • Bellek sayfalarının meta verilerinin ilklendirilmesi, dosya sisteminin mount edilmesi, init sürecinin başlatılması gibi işlemlerin gerekli olduğunu, ancak tüm bunların birkaç mikrosaniye içinde gerçekleşmesi gerektiğini düşündüğünü söylüyor.
    • Gecikmenin, örneğin QEMU ve KVM’de olduğu gibi, host’un kaynakları hazırlamasının zaman almasından kaynaklanıp kaynaklanmadığını sorguluyor.
  • Rust ile yazılmış çekirdeklerde async-first bir çekirdek görmek isteyen görüş:

    • Async-first bir çekirdeğin özellikle zor ya da değersiz mi görüldüğünü, yoksa sadece denenmediğini mi merak ettiğini ifade ediyor.
    • Phil Oppermann’ın Rust ile yazılmış OS serisini takip ederek bunun mümkün olduğunu bildiğini, ancak son dönemdeki Rust tabanlı OS’lerin bunu denemiyor gibi göründüğünü belirtiyor.
  • Linux rekabeti hakkında Linus Torvalds’ın geçmişteki sözlerini hatırlatan görüş:

    • Torvalds’a rekabetten korkup korkmadığı sorulduğunda, kendisinin aygıt sürücüsü yazmayı sevdiğini ve bunu seven genç, tutkulu biri ortaya çıkana kadar rekabetten korkmadığını söylediğini hatırlıyor.
  • Motor OS gibi projeleri ilginç bulan ve geliştirilmesinin sürmesini isteyen görüş:

    • Motor OS benzeri pek çok projenin başarısız olduğunu, bu yüzden artık kolay heyecanlanamadığını ifade ediyor.
    • Bulut gibi belirli kullanım alanlarında Linux’un yerini almanın son derece zor olduğunu belirtiyor.
  • Linux’un karmaşıklığı nedeniyle Docker, Nix OS ve "serverless" gibi şeylerin var olduğu görüşü:

    • Docker ve NixOS’un kullanıcı alanındaki paket yönetimi sorunları nedeniyle; serverless’ın ise işletmelerin talebe göre işlem gücü için ödeme yapmak istemesi nedeniyle var olduğunu açıklıyor.
  • Yeni teknolojiye karşı başlangıçta şüpheci olsa da, yeniden düşününce gereksiz katmanları kaldırmanın sağlayabileceği verimlilik ve güvenlik artışlarını çekici bulan görüş:

    • Yeni teknolojiye karşı sağlıklı bir yaklaşımı olduğunu ve verimlilik ile güvenlikteki artışların cazip olduğunu kabul ediyor.
  • Motor OS’nin Docker vb. ile rekabet ediyor gibi göründüğünü söyleyen görüş:

    • Motor OS’nin Linux ile doğrudan rekabet etmekten ziyade Docker gibi teknolojilerle daha doğrudan rekabet ediyor gibi göründüğünü belirtiyor.
    • Neden Docker vb. yerine Motor OS seçilmesi gerektiği sorusunun, yani "Neden?" bölümünde ele alınmasını istediğini ifade ediyor.
  • Yeni bir işletim sistemi başlatmanın zor olmadığını, ancak onu sonraki 50 yıl boyunca desteklemenin çok zor olduğunu söyleyen görüş:

    • Yeni bir işletim sistemi yazmanın zor olmadığını, ancak uzun bir zaman dilimi boyunca onu desteklemenin son derece zor olduğunu vurguluyor.
 
ahwjdekf 2024-01-10

"Çalışmayan özellikler" bölümü gerçekten ibretlik. Oyuncak proje.