- 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.ovauntuk 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
- Essence adalah proyek sistem operasi, dan per Oktober 2021 sudah ada demo video yang dijalankan di perangkat keras nyata
- Kanal diskusi dibagi antara server Discord dan forum
- Discord: https://discord.gg/skeP9ZGDK8
- Forum: https://essence.handmade.network/forums
- Dukungan pengembangan dapat diberikan melalui Patreon, dan Essence adalah proyek penerima 2021 Icculus Microgrant
- Patreon: https://www.patreon.com/nakst
- Icculus Microgrant: https://icculus.org/microgrant/
Pengujian dan build
- Build nightly terbaru dapat diunduh dari build-essence releases
- Unduh
Essence.tar.xzlalu 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
- Unduh
- 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
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
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
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
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
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...
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, empatpartition_entry_*: times 16 db 0, hinggadw 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 sepertifdisk, akan menetapkan nilai partisi. Saya sudah sering melihat kode boot block, tetapi baru kali ini melihat susunan seperti iniSaya 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
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
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
Boot 0,7 detik dari BIOS sampai desktop itu mengesankan
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
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
Jadi anggap saja itu sebagai penjelasan tentang cara menggambar UI alih-alih memakai gambar raster
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 hebatDunia memang sempit