Snowdrop OS, sistem operasi homebrew yang dikembangkan dari nol dengan bahasa rakitan
(sebastianmihai.com)- Snowdrop OS adalah sistem operasi 16-bit real mode untuk arsitektur IBM PC; OS homebrew ini mengimplementasikan sendiri semuanya dari booting hingga menjalankan aplikasi hanya dengan bahasa rakitan x86
- Distribusinya tersedia sebagai image floppy 1,44 MB dan image CD-ROM, berisi boot loader, kernel, shell, utilitas, aplikasi pengujian, serta aSMtris, klon Tetris
- Boot loader 512 byte menemukan kernel dan memuatnya ke memori; kernel lalu menyiapkan interrupt vector untuk aplikasi dan memuat aplikasi awal
- Dengan manajer berkas, editor teks, aplikasi grafis, interpreter BASIC, assembler x86, hingga debugger, pengembangan dan eksperimen bisa dilakukan di dalam OS
- Kode sumbernya dibuka tanpa batasan penggunaan maupun modifikasi, sehingga menjadi referensi bagi programmer yang ingin menelusuri langsung cara kerja level rendah sistem operasi
Struktur yang diimplementasikan sendiri dari booting hingga aplikasi
- Snowdrop OS adalah proyek yang berawal dari rasa ingin tahu tentang apa yang terjadi saat PC dinyalakan, serta bagaimana disk bootable dan bagian dalam sistem operasi bekerja
- Targetnya adalah OS 16-bit real mode untuk arsitektur IBM PC, dan ditulis dari nol hanya dengan bahasa rakitan x86
- Image distribusi disediakan dalam dua bentuk
- Image 1,44 MB untuk floppy disk
- Image CD-ROM
- Di dalam image tersebut terdapat komponen inti yang ditulis sendiri
- Boot loader yang memuat kernel ke memori
- Kernel yang menyiapkan interrupt vector untuk aplikasi pengguna lalu memuat aplikasi awal
- Aplikasi pengguna seperti shell, utilitas, aplikasi pengujian, dan aSMtris, klon Tetris
- Saat booting, jika hard disk terdeteksi, pengguna akan ditanya apakah ingin menginstal, dan Snowdrop OS dapat dipasang ke hard disk
- Aplikasi dan alat yang disertakan meluas hingga manajer berkas, editor teks, aplikasi grafis, interpreter BASIC, assembler x86, dan debugger x86
- Kode sumber Snowdrop OS dan aplikasinya dibuka tanpa batasan penggunaan maupun modifikasi
Area kode sumber yang layak dibaca
- Boot loader: muat dalam 512 byte serta menemukan dan memuat kernel
- kernel: menyediakan layanan dasar dan abstraksi untuk aplikasi
- Graphics and GUI framework: fondasi untuk membuat aplikasi berbasis grafis dan mouse
- x86 assembler: memungkinkan pembuatan langsung aplikasi level rendah di dalam Snowdrop OS
- BASIC interpreter: alat untuk membuat aplikasi level tinggi dengan cepat
- x86 debugger: dapat digunakan bersama assembler
- Dynamic data structure libraries: mendukung pekerjaan dengan struktur data dinamis seperti linked list, tree, dan BST
- All applications: mencakup game, editor teks, manajer berkas, alat, dan aplikasi pengujian
Fitur yang bertambah di tiap versi
- Riwayat versinya menunjukkan alur penambahan fitur berkelanjutan, dimulai dari single task, shell, dan aSMtris pada v1
- v2: driver mouse PS/2 dan aplikasi pengujian mouse
- v3: dukungan multitasking dasar dan virtual display
- v4: driver tulis/hapus FAT12, manajer berkas, editor teks
- v6: game Snake multipemain berbasis port serial
- v16: framework GUI
- v18: interpreter BASIC dan linker
- v19: instalasi hard disk
- v22: assembler x86, dukungan multi-disk, utilitas penampil berkas
- v23: debugger x86
- v25: memori dinamis dan struktur data
- v28: GUI resolusi tinggi, aplikasi menggambar, aplikasi desktop
- v31: runtime library dan RTL interpreter BASIC
1 komentar
Komentar Hacker News
Pada pertengahan 90-an saya pernah membuat GUI OS hobi 32-bit yang mirip, dan buku ini benar-benar wajib dibaca
https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...
https://web.archive.org/web/20140704223135/https://www.ipdat...
Setelah Sensory Publishing memperoleh haknya, judulnya diubah dan dicetak ulang 1.000 eksemplar, tetapi sekarang hanya tersisa sekitar 200 eksemplar dan sudah tidak dijual lagi. Kini buku ini menjadi domain publik, dan sisa eksemplarnya kabarnya disimpan untuk Great Alexandria Library
Kalau tertarik dengan proyek seperti ini, MenuetOS dan KolibriOS juga layak dilihat. KolibriOS adalah fork yang lama sekali bercabang dari MenuetOS
MenuetOS juga punya versi x64 yang mendukung SMP, tetapi yang itu source-nya tertutup
Selain untuk OS hobi, rasanya siapa juga yang akan benar-benar memakai itu di mesin x64 multicore?
Saya penasaran, dari sudut pandang pengguna dan peretas OS, apa saja ide keren terbaru dalam desain OS saat ini
https://github.com/oro-os/kernel
Ini desain microkernel tanpa user maupun capability, dengan kontrol akses yang dipaksakan melalui lapisan entitas kernel. Port shared memory dengan berbagai tingkat keamanan menjadi mekanisme IPC utama, dan diberi tipe di level kernel
Saat ini saya berada di tahap akhir untuk memverifikasi kegunaan kernel tersebut. Kalau saya bisa membuktikan desainnya, saya akan menulis lebih formal. Sebagai proyek di kepala, ini sudah 8 tahun; di dalam editor, sekitar 4 tahun
https://doc.cat-v.org/plan_9/3rd_edition/rio/rio_slides.pdf
https://rtic.rs/ juga punya ide yang cukup menarik di area yang mirip RTOS embedded
Sejujurnya, masih ada fitur Plan 9 yang jauh melampaui Linux. Contohnya https://9p.io/sys/doc/lexnames.html
[1] https://genode.org
https://redox-os.org/
Dalam konteks serupa, saya penasaran ada kemajuan apa pada RTOS berperforma tinggi untuk robotika. Bidang ini tampaknya relatif kurang mendapat perhatian
ROS/ROS2 bukan sistem operasi, dan kebanyakannya juga tidak bisa dibilang perangkat lunak berperforma tinggi
Di dunia embedded ada banyak OS seperti FreeRTOS, Zephyr, dan ThreadX, serta beberapa solusi proprietary seperti Nvidia DriveOS
Namun OS embedded cukup terbatas dibanding OS umum seperti Linux. Ada scheduler tugas, tetapi hal-hal seperti proses, filesystem, pemuatan file dinamis, dan tool biner sering kali tidak ada atau bersifat opsional
https://rtic.rs
Sebagai bacaan terkait, ada yang seperti ini. Ada lagi yang lain?
Homebrew an OS from Scratch? Snowdrop Shows How It's Done - https://news.ycombinator.com/item?id=39005640 - Jan 2024 (1 komentar)
Snowdrop OS – a homebrew operating system from scratch, in assembly language - https://news.ycombinator.com/item?id=28090574 - Aug 2021 (3 komentar)
Tepatnya ini assembly x86
Kumpulan tool dan aplikasi yang dibuatnya mengesankan. Meski begitu, tampaknya mereka belum tergoda untuk melakukan self-hosting
Agar assembler-nya setara dengan nasm, sepertinya masih perlu lebih banyak pekerjaan, atau seluruh source code-nya perlu dibuat lebih mendekati Snowdrop ASM
V32, akan bagus kalau juga ada kompiler BASIC
Sepertinya bisa diajukan sebagai feature request
Saya ingin melihat ini di-port ke esp32. Misalnya dijalankan di board seperti ttgo vga32
Akan menarik kalau ada OS GUI + shell dasar dengan SD card, VGA, suara, keyboard/mouse, WiFi, dan Bluetooth. Rasanya seperti Commodore 64 modern, dengan pencetakan via WiFi meski hanya teks, serta browser gaya lynx, email, IRC, dan gopher
Persyaratan build Snowdrop OS cukup mengesankan
Works on: Windows XP 32bit, Windows 98, Windows 95