1 poin oleh GN⁺ 2025-01-26 | 1 komentar | Bagikan ke WhatsApp
  • 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

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

 
GN⁺ 2025-01-26
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...

    • Bisa dibaca gratis
      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

    • Saya ingin belajar assembly, tetapi di Coursera saya belum menemukan kuliah yang cocok untuk pemula total. Saya punya pengalaman Java, dan sedang mengikuti kuliah C/C++ untuk lebih dekat ke hardware
    • Saya tidak paham alasan membuat hal seperti itu menjadi source tertutup pada tahun 2025
      Selain untuk OS hobi, rasanya siapa juga yang akan benar-benar memakai itu di mesin x64 multicore?
    • Kalau mau yang lebih gila lagi, ada juga TempleOS
  • Saya penasaran, dari sudut pandang pengguna dan peretas OS, apa saja ide keren terbaru dalam desain OS saat ini

    • Saya diam-diam sudah memublikasikannya, tetapi sedang mengerjakan desain kernel baru. Ini penulisan ulang ke-12 sekaligus yang terakhir, dan pengembangannya sudah sekitar 1 tahun
      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
    • Ide-ide keren dari Plan 9 pada umumnya masih belum terlampaui atau diimplementasikan ulang dengan baik sampai sekarang
      https://doc.cat-v.org/plan_9/3rd_edition/rio/rio_slides.pdf
    • Fuchsia punya cukup banyak ide yang berani. Ada microkernel, capability, sistem instalasi aplikasi yang unik, dan sepertinya ingin membuat aplikasi lebih mirip website
      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
    • Genode [1] menarik dari sisi pendekatannya terhadap desain OS sebagai framework. Hanya saja saya tidak tahu seberapa banyak assembly yang dipakai
      [1] https://genode.org
    • Jika melihat dua kutub ekstrem secara luas, menurut saya jawaban terbaik adalah Redox OS
      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

    • x86 dan RTOS kurang cocok satu sama lain karena hal-hal seperti SMM dan cache yang kompleks. Jika ada pekerjaan berperforma tinggi, kemungkinan besar Anda akan lebih memilih mengendalikannya dengan satu MCU embedded terpisah, atau beberapa sekaligus
      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
    • Orang-orang yang serius tampaknya memakai QNX atau VxWorks. Sayangnya, sebagian besar proyek robotika tidak terlalu serius dan menjalankan Ubuntu
    • Ini memang bukan RTOS dalam pengertian umum, tetapi RTIC lumayan bagus. Setahu saya awalnya dikembangkan untuk robotika
      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

    • Lebih tepat lagi, assembly x86 mode real 16-bit
  • 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