deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Vinix: V dilinde yazılmış bir işletim sistemi 100 MB RAM ile açılıyor ve Alpine Linux binary'lerini yerel olarak çalıştırıyor

V dilinde yazılmış alfa durumundaki bir işletim sistemi olan Vinix, yaklaşık 100 MB RAM ile masaüstüne açılıyor, değiştirilmemiş Alpine Linux paketlerini yerel olarak çalıştırıyor ve geliştirme aşamasındaki kendi GPU sürücüleriyle Apple Silicon Mac'leri hedefliyor.

Vinix: V dilinde yazılmış bir işletim sistemi 100 MB RAM ile açılıyor ve Alpine Linux binary'lerini yerel olarak çalıştırıyor

Sıfırdan, V dilinde yazılmış bir kernel

Vinix, kerneli sıfırdan V dilinde yazılmış yeni bir işletim sistemi — ne bir Linux dağıtımı ne de yeniden paketlenmiş bir Linux kerneli. Hacker News ana sayfasına çıkan proje web sitesine göre sistem saniyeler içinde masaüstüne ulaşıyor, kurulumdan sonra yaklaşık 1 GB disk ile birlikte yaklaşık 100 MB RAM'de boşta bekliyor ve proje bu rakamları sadeleştirilmiş bir mod değil, tam sistem olarak sunuyor.

Kernel, garbage collection devre dışı bırakılarak derleniyor ve manuel bellek yönetimi kullanıyor; böylece hiçbir toplama geçişi bir sistem çağrısını, interrupt handler'ı veya compositor'ı bölemiyor. Sistemde systemd yok, arka plan indexer yok, telemetri yok; masaüstü doğrudan framebuffer'a çizim yapıyor ve bir display server üzerinde durmak yerine kendi pencerelerini kendisi kompoze ediyor.

Dürüst bir uyarı gereği olgunluk konusu: Vinix alfa yazılımıdır, aktif geliştirme aşamasındadır ve günlük ya da üretim kullanımı için tasarlanmamıştır.

Önünde VM olmadan Alpine binary'leri

Uyumluluk stratejisi öne çıkan teknik tercih. Bir Linux programı aslında Linux'la konuşmaz — openat, mmap, clone ve futex gibi birkaç yüz sistem çağrısından oluşan numaralı bir arayüzü çağırır. Vinix bu arayüzü, ELF yapısını ve bu programların girişte beklediği musl davranışını birlikte uygular.

Sonuç olarak değiştirilmemiş bir aarch64 Alpine Linux paketi yerel olarak çalışır: binary doğrudan CPU üzerinde yürütülür ve sistem çağrıları Vinix kerneline düşer; yolda Linux sanal makinesi, uyumluluk container'ı veya CPU emülasyonu yoktur. Proje, pkg install chromium komutunun Alpine'ın sunduğu aynı paketi indirip başlattığını söylüyor ve Chromium, GIMP, Blender, Sublime Text, Gnumeric ve Wine'ı halihazırda çalışıyor olarak listeliyor. Vinix'in henüz uygulamadığı Linux kernel özelliklerine dayanan uygulamalar yine başarısız olabilir; geliştiriciler bu boşluklar ortaya çıktıkça kapatıyor.

Apple Silicon desteği ve el yapımı GPU sürücüleri

Vinix resmi olarak Apple Silicon Mac'leri hedefliyor. Siteye göre Eylül itibarıyla yalnızca M1 makineleri destekleniyor; M3, M4 ve M5 "yakında" listesinde yer alırken, GPU bölümü M2'den M5'e kadar olanların M1 tamamlandığında geleceğini söylüyor. Apple, macOS dışında hiçbir GPU dokümantasyonu veya sürücüsü yayınlamadığı için, bir Mac'te donanım hızlandırması isteyen başka herhangi bir işletim sistemi kendi sürücüsünü yazmak zorunda — Vinix de tam olarak bunu yapıyor.

M1'de bu, iki sürücü demek: GPU'nun kendisi olan AGX ve display controller olan DCP. İkisi de Apple'ın mailbox ve RTKit arayüzleri üzerinden erişilen coprocessor'lar, ve DART IOMMU, GPU'nun bellek görünümünü kernelinkinden yalıtıyor. Bunların üzerinde, o sürücülerin frame'leri ayırma, paylaşma ve sunma için ihtiyaç duyduğu kadarını kapsayan GEM buffer object'lerle minimal bir DRM alt sistemi bulunuyor; en üstte Mesa ve OpenGL var. Yol haritasının kalan büyük kısmı — donanım hızlandırmalı masaüstü, akıcı video ve sonunda Wine üzerinden oyunlar — bu sürücü çalışmasına bağlı.

İsteğe bağlı sandbox ve keskin varsayılanlar

Vinix, varsayılan olarak kapalı olan isteğe bağlı uygulama başına sandbox sunuyor. Sandbox içinde çalışan bir program kendi özel dizinini alır ve görebildiği dosya sistemi bundan ibarettir: belgeler, SSH anahtarları ve diğer uygulamaların verisi onun için orada değildir. Aynı binary'yi sandbox dışında çalıştırdığınızda ise sıradan dosya izinleri altında tipik bir Unix süreci gibi davranır. Proje bunu program bazında bir tercih olarak sunuyor — bir tarayıcı, okumadığınız indirilmiş bir binary veya başka birinin deposundan gelen bir build script için faydalı.

Sistem bunun dışında bilinçli olarak keskin görüşlü: tek dağıtım, tek arayüz, tek paket yöneticisi, tek init sistemi ve tek binary formatı, böylece kullanıcılar sürekli yapılandırma kararlarına itilmiyor. Temalar onu macOS Catalina hatta Windows XP'ye benzetebiliyor ve proje her sürümde şişmek yerine küçük kalmayı taahhüt ediyor.

QEMU'da denemek

Proje, masaüstünü derleyip başlatan QEMU tabanlı launcher'lar sunuyor. Apple Silicon Mac'lerde launcher, ARM64 masaüstü için macOS donanım sanallaştırmasını kullanıyor — Homebrew ile QEMU kurun, depoyu klonlayın ve aarch64 masaüstü script'ini çalıştırın. Diğer makineler x86_64 launcher'ı kullanır; bu launcher mümkün olduğunda KVM'den yararlanır, aksi halde düz QEMU emülasyonuna düşer.

Neden önemli

Yeni işletim sistemleri genellikle uygulama bulunurluğu konusunda takılır; Vinix, Linux syscall yüzeyini ilk günden Alpine'ın tüm musl tabanlı paket setini devralacak kadar iyi uygulayarak bu tuzağı aşıyor. Aynı zamanda, garbage collection duraklamalarının kabul edilemez olduğu bir alanda, sistem dili olarak V'ye ciddi bir stres testi işlevi görüyor. 100 MB RAM ayak izi ana akım işletim sistemlerinin sinsi şişmesine karşı bir itiraz, AGX ve DCP sürücü çabası ise Apple Silicon donanımında macOS dışında herhangi bir şeyi çalıştırmanın en zor sorunlarından birine kolları sıvıyor. Alfa etiketi, bunların henüz hiçbirinin günlük kullanım malzemesi olmadığı anlamına geliyor; ama sistem yazılımı lansmanları arasında Vinix alışılmadık ölçüde çok zemin kapsıyor.

  • #operating-systems
  • #v-language
  • #apple-silicon
  • #linux-compatibility
  • #open-source

İlgili yazılar