3 poin oleh GN⁺ 2023-09-28 | 1 komentar | Bagikan ke WhatsApp
  • Proyek OS desktop full-stack yang membangun kernel, driver, aplikasi, dan komponen desktop secara bersama-sama, mencakup ruang lingkup yang lebih luas daripada sekadar eksperimen kernel sederhana
  • Pengujian dapat dimulai melalui build nightly Essence.tar.xz, Essence.ova untuk VirtualBox, serta perintah menjalankan QEMU
  • Build publik saat ini disediakan khusus untuk emulator demi kemudahan pengujian, dan build untuk perangkat keras nyata masih akan disediakan nanti
  • Kernel mencakup elemen-elemen inti seperti pengelola cache yang independen dari sistem file, pengelola memori, stack jaringan TCP/IP, sistem file virtual, dan window manager
  • Desktop dilengkapi pustaka UI kustom, software vector renderer, jendela bertab, hingga rendering teks multibahasa berbasis FreeType dan Harfbuzz

Menjalankan dan berpartisipasi

Pengujian dan build

  • Build nightly terbaru dapat diunduh dari build-essence releases
    • Unduh Essence.tar.xz lalu ekstrak
    • Di VirtualBox, impor Essence.ova
    • Di QEMU, jalankan perintah berikut
      • 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
  • Build yang saat ini disediakan merupakan konfigurasi khusus emulator untuk kemudahan pengujian
  • Cara build dan pengujian tersedia di help/Building.md

Komponen OS

  • Kernel

    • Pengelola cache yang independen dari sistem file
    • Pengelola memori yang mendukung shared memory, memory-mapped file, zeroing paging multithread, dan working set balancing
    • Stack jaringan TCP/IP
    • Scheduler yang menangani berbagai tingkat prioritas dan priority inversion
    • Pemuatan modul sesuai permintaan
    • Sistem file virtual
    • Window manager
    • Audio mixer
      • Saat ini sedang ditulis ulang
    • Subsistem POSIX opsional
      • Dapat menjalankan GCC dan beberapa alat Busybox
  • Aplikasi

    • File Manager
    • Text Editor
    • IRC Client
    • System Monitor
  • Komponen yang di-porting

    • Bochs
    • GCC dan Binutils
    • FFmpeg
    • Mesa untuk OpenGL software rendering
    • Musl
  • Driver

    • Manajemen daya: ACPI berbasis ACPICA
    • Penyimpanan sekunder: IDE, AHCI, NVMe
    • Grafis: BGA, SVGA
    • Sistem file baca/tulis: EssenceFS
    • Sistem file hanya-baca: Ext2, FAT, NTFS, ISO9660
    • Audio: HD Audio
    • NIC: 8254x
    • USB: XHCI, bulk storage devices, human interface devices
  • Desktop

    • Pustaka antarmuka pengguna kustom
    • Software vector renderer yang mendukung animasi kompleks
    • Jendela bertab
    • Rendering dan tata letak teks multibahasa berbasis FreeType dan Harfbuzz

1 komentar

 
GN⁺ 2023-09-28
Opini Hacker News
  • Awalnya saya kira ini distribusi Linux lain dengan window manager kustom di atasnya, tetapi ternyata sebenarnya sistem operasi buatan sendiri
    Bahkan ada kernel kustom, benar-benar dibuat dari dasar. Proyek yang membuat sistem operasi atau browser dari nol punya nilai besar meski tidak dipakai luas oleh publik, dan saya ingin memberi apresiasi kepada para pengembangnya

    • Dalam hal itu, saya juga memandang baik distribusi seperti ElementaryOS. Karena mereka memelihara, memodifikasi, dan membuat perangkat lunak sendiri agar distribusi mereka benar-benar terasa seperti satu lingkungan yang terintegrasi
      Distribusi lain juga berupaya keras, tetapi saya terutama suka bagaimana aplikasi KDE menyatu dengan baik seperti aplikasi bawaan sebuah sistem operasi. Sebaliknya, Windows hampir tidak punya keseragaman seperti ini; berbagai cara lama bercampur, konsistensi aplikasi intinya kurang, dan semakin terlihat seperti sistem operasi Linux yang dirangkai tambal-sulam. Seandainya Microsoft tidak membiarkan tim pemasaran menentukan arah Windows dan berfokus memoles sistem operasinya, rasanya itu bisa menjadi produk yang luar biasa hebat
    • Karena distribusi Linux yang hanya mengganti tampilan luar seperti ini sangat umum, mudah saja awalnya berasumsi begitu
      Essence dibuat dari awal, dan cukup mengesankan karena memiliki UI yang rapi sekaligus “tidak terasa seperti Linux”. Berbeda dari kasus menambahkan tampilan yang lebih menarik dan ramah di atas distribusi yang ada, ini tampak sebagai arah yang jauh lebih jarang ditempuh, dan mungkin bisa mengikuti jejak ChromeOS
    • Sedikit mengingatkan saya pada Oberon OS: https://en.wikipedia.org/wiki/Oberon_(operating_system)
    • Sebaliknya, saya mengklik karena mengira ini Linux lain yang mengklaim “dibuat dari awal” dan hendak mengkritiknya, tetapi ternyata bukan, jadi saya tertawa
  • Landing page-nya benar-benar bagus. Hampir semua informasi yang ingin diketahui langsung disajikan
    Ada screenshot cantik, dukungan perangkat keras berdaya rendah, bisa boot dengan ruang penyimpanan di bawah 30MB dan RAM yang lebih sedikit, tanpa pekerjaan latar belakang, performa bagus, kode berlisensi MIT yang terbuka, sampai video demo. Langsung terbayang beberapa penggunaan yang bisa populer di area yang tidak tertangani oleh sistem operasi desktop arus utama. Saya masih ingin tahu lebih banyak tentang toolchain pengembang dan cara memulainya, tetapi tampaknya sebagian sudah ditangani lewat tautan Discord/Patreon. Jika fitur seperti antarmuka sentuh diposisikan sebagai dukungan kelas utama, sepertinya akan lebih mudah dibedakan dari sistem operasi desktop yang ada, dan saya juga bisa membayangkan perangkat IoT yang membutuhkan UI

    • Benar. Di antara halaman distribusi gaya tahun 2000-an, terlalu banyak yang menyembunyikan screenshot dari layar pertama seolah malu memperlihatkan sistemnya
    • Toolchain dan pengalaman pengembang sedikit dibahas dalam videonya. Kelihatannya cukup bagus sebagai cara bagi pengguna untuk memberi tema pada desktop mereka sendiri
    • Kombinasi fitur ini tampak sebagai platform yang cukup menarik untuk aplikasi embedded
      Jika API manajemen jendelanya layak, sepertinya cukup bisa dipakai sebagai sistem kontrol embedded. Jika dikompilasi ke WASM, mungkin juga bisa membuat UI web yang cukup bagus dengan memanfaatkan sistem jendela palsu
  • Setelah April 2022, sebagian besar pekerjaan tampaknya berhenti: https://gitlab.com/nakst/essence/-/graphs/master?ref_type=he...

    • Commit setelah 2021 terlihat seperti perbaikan bug. Mungkin bukan berhenti, melainkan pada dasarnya sudah selesai
    • Seperti biasa, saya tidak mengerti kenapa harus berpura-pura ini akan menjadi produk realistis
      Mirip seperti saya berkata akan membuat jumbo jet sendiri. Saya mungkin bisa merakit biplane yang seadanya, tetapi tidak bisa membuat mesin atau badan pesawat ukuran penuh, dan tidak punya mekanik atau pabrik, jadi pada akhirnya tidak akan ada yang memakai jet itu
  • Saya suka struktur bagian akhir kode boot block assembler-nya
    Bentuknya elegan, berurutan dari times (0x1B4 - ($-$$)) nop, disk_identifier: times 10 db 0, empat partition_entry_*: times 16 db 0, hingga dw 0xAA55. Ini menunjukkan bagaimana identifier disk dan empat partisi MBR klasik dapat hidup berdampingan dengan kode boot dalam 512 byte pertama. Strukturnya mengasumsikan setelah boot block disalin ke disk, program eksternal, misalnya alat seperti fdisk, akan menetapkan nilai partisi. Saya sudah sering melihat kode boot block, tetapi baru kali ini melihat susunan seperti ini

    • Ini mengingatkan pada keanggunan, kesederhanaan, dan performa yang kita lewatkan karena persaingan sistem operasi yang terbatas
    • Saya juga segera mengecek apakah ini proyek Justine Tunney yang begitu konyol sampai terasa jenius
  • Saya berharap sistem operasi seperti ini bisa mendapat tempat bagi orang-orang yang tidak membutuhkan segala macam kompatibilitas mundur dan fitur server Linux, serta ingin menghindari Microsoft atau Apple
    Saya menginginkan sesuatu yang mirip ChromeOS, tetapi tidak sekunci itu

    • Saya benar-benar ingin melihat bentuk yang memiliki desain keamanan berbasis izin yang ramah pengguna, supaya aplikasi yang diunduh dari internet tidak bisa mencuri kredensial dan dokumen saya
      Ini adalah salah satu masalah terbesar yang dialami orang saat ini, tetapi sejauh yang saya tahu, tampaknya tidak banyak minat nyata untuk mencoba pendekatan baru di tingkat sistem operasi
    • Saya sudah merancang dan membuat hal seperti ini selama bertahun-tahun, tetapi urusan sehari-hari selalu menjadi prioritas
      Jika ada model bisnis yang memungkinkan hanya dari sistem operasi, bukan model ala Apple yang bergantung pada penjualan perangkat keras atau model Android yang bergantung pada iklan, serta Windows yang makin bergerak ke arah itu, mungkin situasinya bisa berbeda. Mungkin suatu hari kalau sudah mandiri secara ekonomi, itu bisa dilakukan
    • Coba saja haiku-os.org
    • Bagaimana menurut Anda tentang keluarga BSD atau 9front, fork dari Plan 9?
    • Di ChromeOS, Anda kapan saja bisa menambahkan lingkungan Linux dengan mudah
  • Boot 0,7 detik dari BIOS sampai desktop itu mengesankan

    • Beberapa tahun lalu Intel pernah membuat presentasi tentang pencapaian boot Linux 0,3 detik dari daya dinyalakan hingga UI sepenuhnya interaktif pada platform embedded
      Itu untuk kasus otomotif, ditujukan pada situasi ketika fitur seperti infotainment atau panel instrumen harus bisa langsung digunakan segera setelah daya aksesori menyala
  • Saya penasaran bagaimana sistem operasi menggambar GUI berkualitas tinggi
    Dalam pengembangan bare-metal, saya pernah menggambar grafis sederhana dengan linear framebuffer, tetapi saya penasaran bagaimana gambar yang merepresentasikan komponen UI pada tampilan seperti UI semacam ini atau Windows dibuat. Saya tidak melihat file PNG untuk border jendela, tetapi ada kode yang mengatur warna piksel sesuai tema. Saya penasaran apakah komponen UI sistem operasi biasanya digambar secara programatik, bukan dibuat di editor gambar lalu di-tile

    • Saat ini hampir selalu berupa grafis vektor. Dulu memakai bitmap sederhana, dan sistem operasi ini secara khusus menggunakan grafis vektor
    • Jika dibuat dari nol, file PNG justru bisa lebih rumit karena perlu didekode
      Sebaliknya, jika ada drawing API, lebih mudah memetakan encoding grafis vektor dalam bentuk pemanggilan perintah gambar yang sesuai. Pada saat yang sama, masalah penskalaan juga terselesaikan, dan aset grafis vektor biasanya memakan ruang jauh lebih sedikit
    • Tautan di atas juga menyatakan bahwa antarmuka penggunanya sepenuhnya berbasis vektor
      Jadi anggap saja itu sebagai penjelasan tentang cara menggambar UI alih-alih memakai gambar raster
    • Saat ini umumnya berbasis shader OpenGL yang memakai akselerasi perangkat keras
    • Jika Anda melewatkan konsep ini, ini bisa jadi rujukan: https://en.wikipedia.org/wiki/Vector_graphics
  • Artikel terkait: Essence: Desktop operating system built from scratch - https://news.ycombinator.com/item?id=29950740 - Januari 2022, 290 komentar

  • Biasanya upaya membuat sistem operasi baru terasa tidak realistis, seperti berusaha merebus lautan, tetapi yang ini saya suka. Kelihatannya langsung punya peluang
    Sebagai saran, pertama, jika virtualisasi ditambahkan sejak awal, sistem operasi lain dan aplikasi yang sudah familier bisa dijalankan. Dalam jangka panjang, bisa mengeksplorasi virtualisasi mulus mirip Parallels Coherence agar aplikasi eksternal dapat berjalan di atas sistem operasi host tersebut, dan ini bisa menjadi solusi jangka pendek hingga menengah untuk masalah “tidak ada aplikasi” yang mengganggu sistem operasi baru. Kedua, sebaiknya batasi cakupan dukungan perangkat keras ke beberapa platform target seperti produsen laptop yang berorientasi Linux seperti System76 dan Framework, serta Raspberry Pi. Ketiga, pertimbangkan cara memakai driver Linux atau BSD melalui API kompatibilitas; mungkin itu bisa menangani perangkat seperti kartu Wi‑Fi yang terkenal sulit didukung

  • Di halaman beranda nakst, pembuat Essence, https://nakst.gitlab.io/, ada kalimat seperti ini
    nakst's webpage // This site works best with JavaScript disabled — orang yang hebat