deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

UnoDOS: tek bir kaynak ağacı 8088 IBM PC/XT'den modern x86-64'ye uzanıyor

Sıfırdan yazılmış, sözleşme temelli tek bir kaynak ağacından üretilen grafiksel bir işletim sistemi ailesi, kendi tarayıcısı, ofis paketi ve hypervisor'üyla birlikte 22 makinede çalışıyor; 8088'li bir IBM PC/XT'den modern x86-64 PC'lerin çıplak metaline kadar.

UnoDOS: tek bir kaynak ağacı 8088 IBM PC/XT'den modern x86-64'ye uzanıyor

UnoDOS, tek bir kaynak ağacından yola çıkarak yirmi iki makineyi kapsayan, sıfırdan yazılmış bir grafiksel işletim sistemi ailesi: 8088'li bir IBM PC/XT'den modern 64 bit dizüstü bilgisayara kadar. Hacker News ana sayfasında görünen projenin GitHub deposuna göre her şey, tamamen x86 assembly ile yazılmış, GUI öncelikli 16 bit gerçek mod (real-mode) bir işletim sistemi olarak başladı; çekirdek, pencere yöneticisi, iki dosya sistemi, kooperatif çoklu görev ve tam bir uygulama seti tek bir 1.44 MB diskete sığıyordu. O günden bu yana proje, ev bilgisayarları, konsollar, taşınabilir cihazlar, tek kartlı bilgisayarlar ve bir telefonu kapsayan, sözleşme temelli bir port ailesine dönüştü.

pc64, modern amiral gemisi

pc64, 2007 civarından sonra üretilmiş neredeyse tüm x86-64 PC'lerde çıplak metal üzerinde açılıyor. Klasik işletim sisteminde BIOS'un üstlendiği rolü burada UEFI üstleniyor: firmware bir framebuffer, klavye ve önyükleme birimini devrediyor, ardından UnoDOS ExitBootServices'i çağırıyor ve firmware sahneden çekiliyor. Bu andan itibaren sistem tamamen kendi sürücüleriyle çalışıyor; hibrit disk imajı aynı işletim sistemini eski BIOS'lu makinelerde de başlatıyor.

Masaüstü, ailenin platformlar arası widget araç seti unoui üzerine kurulu: görev çubuğu, sanal masaüstleri, pencere yapıştırma (snapping), animasyonlu Alt-Tab değiştirici ve modern düz (flat) varsayılandan Mac OS 7, Windows 3.1, Amiga Workbench ve NeXTSTEP'ten esinlenen retro görünümlere kadar canlı olarak değiştirilebilen on tema. Metinler, paket içinde gelen açık kaynak yazı tipleriyle kerning uygulanmış, yumuşatılmış (anti-aliased) TrueType olarak görüntüleniyor.

Uygulama seti, sıfırdan yazılmış bir sistem için alışılmadık ölçüde eksiksiz. UnoWord, UnoCalc ve UnoShow, ağaçtaki (in-tree) unodoc kütüphanesi üzerinden gerçek Microsoft .doc, .xls ve .ppt dosyalarını okuyup yazan, Office 97 sınıfı bir paket oluşturuyor. Tarayıcı; cookie'lerle HTML ve CSS görüntülüyor, HTTP ve CA doğrulamalı TLS 1.2 destekliyor ve iki arasında geçiş yapılabilen JavaScript motoru sunuyor: ağaçtaki unojs bytecode VM'si ve vendored quickjs-ng. Studio, işletim sisteminin kendisi üzerinde çalışan bir IDE ve native UnoDOS uygulamaları üreten yerleşik bir C derleyicisi olan UnoC'yi içeriyor. MicroPython birinci sınıf bir runtime; medya desteğinde sıfırdan yazılmış WAV, MIDI, MP3 ve AAC-LC çözücüler var, klasik skin'leri yükleyen bir Winamp 2 klonu bulunuyor ve ağaçtaki ed25519 kriptosunu kullanan native bir SSH istemcisi mevcut. Uygulamalar yüklenebilir .UNO modülleri — birini APPS dizinine bırakmak kabuğun uygulamayı keşfetmesi için yeterli; yeniden derleme ya da yeniden başlatma gerekmiyor.

Firmware çizgisinin altındaki her şey ağacın kendi kodu: ortak bir blok katmanı altında FAT16/FAT32 destekli AHCI, NVMe, SDHCI/eMMC ve USB yığın depolama; polling tabanlı bir xHCI USB yığını; Intel ve Realtek parçaları için kablolu NIC sürücüleri ve WPA2'li Wi-Fi; ARP'den DHCP, DNS ve TLS'ye kadar sıfırdan yazılmış bir TCP/IP yığını; PS/2, I2C-HID ve USB HID girdisi; Intel HDA ses; ve ağaçta yerleşik bir ACPI AML yorumlayıcısı.

Bir hypervisor da var: unovirt, Intel donanımında VMX moduna girip konukları EPT arkasında virtio aygıtlarıyla çalıştırıyor; README, gerçek bir Ubuntu çekirdeğinin UnoDOS altında açılıp kullanıcı alanına ulaştığını ve bir dosyadan sunulan ext4 diski bağladığını bildiriyor. AMD/SVM arka ucu yazıldı ama donanım kanıtını bekliyor. Çekirdeğin çevresinde yıkıcı olmayan bir kurulum programı, RBAC'li yerel hesaplar ve bir denetim izi, fiziksel makineleri ekransız sürmek için bir uzaktan kumanda kanalı ve davranışsal bir spesifikasyonu çıplak metal üzerinde uygunluk testi olarak çalıştıran debug build'ler yer alıyor. Port, bir Lenovo ThinkPad X1 Carbon Gen 8 üzerinde ve sürekli açık bir ZimaBlade kutusunda doğrulandı; her değişiklikte gerçek imajı başlatan QEMU tabanlı test düzenekleri de mevcut.

Tek sözleşme, çok sayıda makine

Birleştirici fikir, UnoDOS 3.1'in sözleşme temelli mimarisi. unodef/ altındaki tek bir makine tarafından okunabilir Sözleşme; ekran geometrisini, pencere ve olay düzenini, paylaşılan enum'ları tanımlıyor ve her dünyam (world) ya bu sözleşmeden üretiliyor ya da ona karşı doğrulanıyor. README, assembly portları ile x86 referansının sözleşmeyi bayt bayt aynı şekilde kullandığını ve on bir portun 3.1 mimarisi üzerine göçle değil sıfırdan inşa edildiğini belirtiyor — proje, bunun yeni bir hedefin yalnızca küçük bir üretilmiş yüzey maliyetine mal olduğunun kanıtı olduğunu savunuyor.

Port listesi bir bilgisayar müzesini andırıyor: copper ve bitplane grafiklerle Paula sesini kullanan bir Amiga portu, SID sesli bir Commodore 64 bitmap masaüstü, VIC-20 ve Apple II için sıfırdan yazılmış dünyalar, bir Apple IIGS portu, barındırılmış (hosted) bir Mac System 1–7 Toolbox portu, gerçek bir Mac SE'de doğrulanmış bağımsız bir MacPlus işletim sistemi, G3/G4 Mac'ler için ilk büyük-endian (big-endian) PowerPC dünyası ve gerçek donanımda açılan bir Sega Genesis portu dahil konsollar. Her port, makinenin kaldırabildiği ölçekte ortak bir uygulama setiyle masaüstü çalıştırıyor; 2 KB RAM'e kadar inen bir başlatıcı profili bile var.

Depo, derlenen ile çalışan arasındaki boşluk konusunda açık sözlü: PLATFORMS.md her platform için neyin gerçek donanımda açıldığını, neyin yalnızca emülatörde doğrulandığını ve bilinen tüm eksikleri kaydediyor. Her platform için önceden derlenmiş imajlar mevcut ve çoğu bir dakikadan kısa sürede bir emülatörde çalışıyor.

Neden önemli

Çoğu işletim sistemi projesi donanımın tek bir dönemini seçer. UnoDOS'nun bahsi şu: paylaşılan, makine tarafından okunabilir bir sözleşme, tek bir tasarımı 8088'den UEFI dizüstüne kadar canlı tutabilir ve her ikisinde de aynı kabuk ve uygulamalar çalışır — bu mimari üzerine sıfırdan inşa edilen on bir port bunun kanıtı. pc64 hattı ayrıca, altında mevcut bir çekirdek olmadan ağaç içinde nereye kadar gidilebileceğini gösteriyor: tarayıcı, ofis paketi, derleyici ve hypervisor'ün hepsi native. En az bunun kadar dikkat çekici olan doğrulama disiplini: gerçek donanım kanıtını emülatör güveninden ayıran kamuya açık bir defter. Taşınabilir yazılım tasarlayan herkes için, platform yüzeyinin elle taşınmak yerine üretilmesi anlamına gelen sözleşme-öncelikli yaklaşım izlenmeye değer fikirdir.

  • #operating-systems
  • #x86
  • #retro-computing
  • #open-source
  • #assembly

İlgili yazılar