Essence: Kontrol ve sadelik için sıfırdan oluşturulmuş bir masaüstü işletim sistemi
(nakst.gitlab.io)- Çekirdek, sürücüler, uygulamalar ve masaüstü bileşenlerini birlikte geliştiren bir full-stack masaüstü işletim sistemi projesi; basit bir çekirdek deneyinden daha geniş bir kapsamı ele alıyor
- Teste, nightly derlemelerdeki
Essence.tar.xz, VirtualBox içinEssence.ovave QEMU çalıştırma komutu üzerinden başlanabiliyor - Herkese açık derlemeler, test kolaylığı için yalnızca emülatörlere yönelik olarak sunuluyor; gerçek donanım için derlemeler ise henüz planlanan durumda
- Çekirdek; dosya sistemi bağımsız bir önbellek yöneticisi, bellek yöneticisi, TCP/IP ağ yığını, sanal dosya sistemi ve pencere yöneticisi gibi temel bileşenleri içeriyor
- Masaüstü; özel bir UI kütüphanesi, yazılım tabanlı vektör oluşturucu, sekmeli pencereler ve FreeType·Harfbuzz tabanlı çok dilli metin işleme desteğiyle geliyor
Çalıştırma ve katılım yolları
- Essence bir işletim sistemi projesi ve Ekim 2021 itibarıyla gerçek donanım üzerinde çalıştırıldığı bir video demosu bulunuyor
- Tartışma kanalları Discord sunucusu ve forum olarak ayrılıyor
- Discord: https://discord.gg/skeP9ZGDK8
- Forum: https://essence.handmade.network/forums
- Geliştirme desteği Patreon üzerinden alınabiliyor ve Essence, 2021 Icculus Microgrant alan projelerden biri
- Patreon: https://www.patreon.com/nakst
- Icculus Microgrant: https://icculus.org/microgrant/
Test ve derleme
- En güncel nightly derlemeler build-essence releases sayfasından indirilebiliyor
Essence.tar.xzdosyasını indirip arşivden çıkarın- VirtualBox'ta
Essence.ovadosyasını içe aktarın - QEMU'da aşağıdaki komutu çalıştırın
qemu-kvm -drive file=drive,format=raw -m 2048 -smp 2 || qemu-system-x86_64 -enable-kvm -drive file=drive,format=raw -m 2048 -smp 2
- Şu anda sunulan derlemeler, test kolaylığı için yalnızca emülatörlere yönelik yapılandırmada
- Derleme ve test yöntemleri
help/Building.mdiçinde yer alıyor
OS bileşenleri
-
Çekirdek
- Dosya sistemi bağımsız önbellek yöneticisi
- Paylaşımlı bellek, bellek eşlemeli dosyalar, çok iş parçacıklı sayfalama zeroing ve working set balancing destekleyen bellek yöneticisi
- TCP/IP ağ yığını
- Birden çok öncelik seviyesi ile priority inversion durumlarını ele alan zamanlayıcı
- İsteğe bağlı modül yükleme
- Sanal dosya sistemi
- Pencere yöneticisi
- Ses mikseri
- Yeniden yazım sürecinde
- İsteğe bağlı POSIX alt sistemi
- GCC ve bazı Busybox araçlarını çalıştırabiliyor
-
Uygulamalar
- File Manager
- Text Editor
- IRC Client
- System Monitor
-
Port edilen bileşenler
- Bochs
- GCC ve Binutils
- FFmpeg
- Yazılım tabanlı OpenGL oluşturma için Mesa
- Musl
-
Sürücüler
- Güç yönetimi: ACPICA tabanlı ACPI
- İkincil depolama: IDE, AHCI, NVMe
- Grafik: BGA, SVGA
- Okuma/yazma dosya sistemi: EssenceFS
- Salt okunur dosya sistemleri: Ext2, FAT, NTFS, ISO9660
- Ses: HD Audio
- NIC: 8254x
- USB: XHCI, bulk storage devices, human interface devices
-
Masaüstü
- Özel kullanıcı arayüzü kütüphanesi
- Karmaşık animasyonları destekleyen yazılım tabanlı vektör oluşturucu
- Sekmeli pencereler
- FreeType ve Harfbuzz tabanlı çok dilli metin işleme ve yerleşim
1 yorum
Hacker News yorumları
İlk başta bunun özel bir pencere yöneticisi eklenmiş başka bir Linux dağıtımı olduğunu sanmıştım, ama aslında kendi başına bir işletim sistemiymiş.
Özel çekirdeği bile var ve gerçekten en temelden yapılmış. Bir işletim sistemi ya da tarayıcıyı sıfırdan geliştiren projeler, yaygın olarak kullanılmasalar bile çok değerli; geliştiricileri alkışlamak istiyorum.
Diğer dağıtımlar da çok emek veriyor ama KDE uygulamalarının bir işletim sisteminin varsayılan uygulamaları gibi iyi uyum sağlaması özellikle hoşuma gidiyor. Buna karşılık Windows’ta bu tür bir bütünlük neredeyse yok; eski yöntemler birbirine karışmış durumda, temel uygulamalarda tutarlılık zayıf ve giderek yamalı bohça gibi bir Linux işletim sistemine benziyor. Microsoft, pazarlama ekibinin Windows’un yönünü belirlemesine izin vermek yerine işletim sistemini cilalamaya odaklansaydı, muazzam derecede iyi bir ürün olabilirdi diye düşünüyorum.
Essence’in sıfırdan yapılmış olması ve temiz ama “Linux gibi hissettirmeyen” bir UI’a sahip olması oldukça etkileyici. Mevcut bir dağıtımın üzerine daha hoş ve kullanıcı dostu bir kabuk eklemekten farklı olarak, bu çok daha nadir bir yön gibi görünüyor ve belki ChromeOS’in izinden gidebilir.
Açılış sayfası gerçekten harika. Bilmek istediğim neredeyse her şeyi hemen anlatıyor.
Güzel ekran görüntüleri, düşük güç tüketimli donanım desteği, 30MB’tan az depolama alanı ve daha da az RAM ile önyükleme yapabilme, arka plan işi olmaması, mükemmel performans, MIT lisanslı açık kod, demo videosu… Hepsi var. Ana akım masaüstü işletim sistemlerinin kapsayamadığı alanlarda popüler olabilecek pek çok kullanım senaryosu hemen akla geliyor. Geliştirici araç zinciri ve başlangıç yöntemi hakkında daha fazlasını merak ediyorum ama Discord/Patreon bağlantıları bunu bir ölçüde karşılıyor gibi. Dokunmatik arayüz gibi özellikleri birinci sınıf destek olarak öne çıkarırsa mevcut masaüstü işletim sistemlerinden daha iyi ayrışabilir; UI gerektiren IoT cihazları da gözümde canlanıyor.
Pencere yönetimi API’si iyiyse gömülü kontrol sistemi olarak da rahatlıkla kullanılabilir gibi. WASM’e derlenirse sahte pencere sisteminden yararlanan epey iyi web UI’ları da yapılabilir.
Nisan 2022’den bu yana çalışmaların çoğu durmuş gibi görünüyor: https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...
Benim kendi başıma jumbo jet yapacağımı söylemem gibi. Derme çatma bir çift kanatlı uçak belki monte edebilirim ama motorunu ya da gerçek boyutlu gövdesini yapamam; teknisyenim ya da fabrikam da olmadığı için sonunda kimse o jeti kullanmaz.
Assembler boot block kodunun son kısmındaki yapı hoşuma gitti.
times (0x1B4 - ($-$$)) nop,disk_identifier: times 10 db 0, dört adetpartition_entry_*: times 16 db 0,dw 0xAA55şeklinde ilerleyen yapı zarif. Disk tanımlayıcısı ve klasik 4 MBR bölümünün boot koduyla birlikte ilk 512 bayt içinde nasıl bir arada bulunduğunu gösteriyor. Boot block’u diske kopyaladıktan sonra harici bir programın, örneğinfdiskgibi bir aracın bölüm değerlerini ayarladığını varsayan bir yapı. Çok boot block kodu gördüm ama böyle bir düzeni ilk kez gördüm.Linux’un türlü türlü geriye dönük uyumluluğuna ve sunucu özelliklerine ihtiyacı olmayan, Microsoft ya da Apple’dan da kaçınmak isteyen insanlar için böyle bir işletim sisteminin kendine yer edinmesini isterim.
ChromeOS’e benzer ama onun kadar kapalı olmayan bir biçim istiyorum.
Bugün insanların yaşadığı en büyük sorunlardan biri bu; buna rağmen bildiğim kadarıyla işletim sistemi düzeyinde yeni bir yaklaşım denemeye yönelik ciddi bir ilgi pek yok gibi görünüyor.
Apple’ın donanım satışına dayanan modeli ya da Android’in ve giderek daha fazla Windows’un dönüşmekte olduğu reklam temelli model yerine, yalnızca işletim sistemiyle mümkün olan bir iş modeli olsaydı bu değişebilirdi. Bir gün ekonomik olarak bağımsız olursam belki mümkün olur.
BIOS’tan masaüstüne 0,7 saniyede önyükleme etkileyici.
Otomotiv kullanımı içindi ve aksesuar gücü açılır açılmaz bilgi-eğlence sistemi ya da gösterge paneli gibi işlevlerin hemen kullanılabilir olması gereken durumları hedefliyordu.
İşletim sistemlerinin yüksek kaliteli GUI’leri nasıl çizdiğini merak ediyordum
Bare-metal geliştirmede doğrusal frame buffer ile basit grafikler çizmişliğim var, ama bu tür UI’larda ya da Windows benzeri ekranlarda UI bileşenlerini temsil eden görüntülerin nasıl üretildiğini merak ediyorum. Pencere kenarlıkları için PNG dosyaları görünmüyor; temaya göre piksel renklerini ayarlayan kodlar görünüyor. İşletim sistemlerinin UI bileşenleri genelde bir görüntü düzenleyicide yapılıp döşenmek yerine programla çizilen şeyler mi, bunu merak ediyorum
Buna karşılık bir çizim API’niz varsa, buna karşılık gelen çizim komutlarını çağıran bir vektör grafik kodlamasını eşlemek daha kolaydır. Aynı zamanda ölçekleme sorununu da çözer ve vektör grafik varlıkları genellikle çok daha az yer kaplar
Bu yüzden bunları raster görüntüler kullanmak yerine UI’ın nasıl çizileceğine dair açıklamalar olarak düşünebilirsiniz
İlgili yazı: Essence: Desktop operating system built from scratch - https://news.ycombinator.com/item?id=29950740 - Ocak 2022, 290 yorum
Yeni işletim sistemi denemeleri genelde fazla okyanusu kaynatmaya çalışan türden, gerçekçilikten uzak görünür; ama bunu beğendim. Hemen potansiyeli var gibi duruyor
Birkaç ipucu vermek gerekirse: Birincisi, sanallaştırmayı erken eklemek başka işletim sistemlerini ve alışıldık uygulamaları çalıştırmayı sağlar. Uzun vadede Parallels Coherence’a benzer sorunsuz sanallaştırma seçenekleri araştırılarak harici uygulamalar bu host işletim sistemi üzerinde çalıştırılabilir; bu da yeni işletim sistemlerinin başına bela olan “uygulama yok” sorunu için kısa ve orta vadeli bir çözüm olabilir. İkincisi, donanım desteğinin kapsamını System76 ve Framework gibi Linux odaklı dizüstü üreticileri, Raspberry Pi gibi birkaç hedef platformla sınırlamak iyi olur. Üçüncüsü, Linux ya da BSD sürücülerini uyumluluk API’siyle içeri alıp kullanma yöntemi değerlendirilebilir; böylece desteği herkesin bildiği gibi zor olan Wi‑Fi kartları gibi aygıtlarla başa çıkılabilir
Essence’ın yazarı nakst’nin ana sayfasına https://nakst.gitlab.io/ bakınca şöyle bir ifade var
nakst's webpage // This site works best with JavaScript disableddiyor; harika biriDünya küçük