51 poin oleh GN⁺ 2025-03-22 | 1 komentar | Bagikan ke WhatsApp
  • Panduan praktis tentang cara mengembangkan sistem operasi x86 secara langsung
  • Ditulis agar memberikan detail teknis tanpa membocorkan terlalu banyak informasi melalui contoh kode atau sampel
  • Tidak menjelaskan teori sistem operasi atau cara kerja sistem operasi tertentu
  • Bab-bab awal dijelaskan secara rinci dan konkret agar pembaca bisa cepat terbiasa menulis kode
  • Bab-bab akhir menjelaskan konsep dan kebutuhan secara garis besar, lalu mendorong pembaca untuk melakukan implementasi dan perancangannya sendiri
  • Jika perlu mempelajari teori sistem operasi, direkomendasikan Modern Operating Systems karya Andrew Tanenbaum

Isi bab utama

  • Bab awal
    • Bab 2~3: menyiapkan lingkungan pengembangan dan melakukan boot kernel OS di mesin virtual → mulai menulis kode dalam bahasa C
    • Bab 4: output layar dan output port serial
    • Bab 5: segmentasi
    • Bab 6: interupsi dan pemrosesan input
  • Tahap setelah pengembangan kernel fungsional
    • Bab 7: persiapan dukungan untuk aplikasi mode pengguna
    • Bab 8~9: menyiapkan memori virtual melalui paging
    • Bab 10: alokasi memori
    • Bab 11: menjalankan aplikasi pengguna
  • Topik lanjutan
    • Bab 12: sistem berkas
    • Bab 13: system call
    • Bab 14: multitasking

Latar belakang buku dan proses pengembangan

  • Buku ini dan kernel OS-nya dikembangkan melalui kursus individual tingkat lanjut di Royal Institute of Technology di Swedia
  • Para penulis sebelumnya telah mengambil mata kuliah teori OS, tetapi masih kurang pengalaman dalam pengembangan kernel nyata
  • Untuk mewujudkan teori ke dalam implementasi nyata dan memahaminya lebih dalam, mereka membuka kursus baru dan menulis buku ini
  • Arsitektur x86 telah lama menjadi arsitektur perangkat keras yang paling luas digunakan, serta memiliki referensi dan emulator yang sangat banyak
  • Dokumentasi tentang detail perangkat keras sering kali rumit dan sulit dipahami

Cara pengembangan

  • Dikerjakan penuh waktu selama sekitar 6 minggu
  • Implementasi dilakukan dalam langkah-langkah kecil dan pengujian manual dilakukan di setiap tahap → memudahkan pelacakan penyebab bug
  • Sebagian besar kode ditulis melalui pair programming → diharapkan membantu mengurangi bug

Pembaca sasaran

  • Cocok untuk pembaca yang memiliki latar belakang berikut:
    • terbiasa dengan UNIX/Linux dan pemrograman sistem
    • terbiasa dengan bahasa C
    • memiliki pemahaman tentang sistem komputer dan notasi heksadesimal
  • Pemula juga bisa menggunakannya sebagai alat belajar, tetapi tingkat kesulitannya tinggi

1 komentar

 
GN⁺ 2025-03-22
Komentar Hacker News
  • Suka sekali dengan osdev. Tidak tahu tujuan akhirnya apa, tapi sangat keren karena bisa membuat apa pun yang diinginkan

    • Saat berhasil menjalankan interrupt x86 dasar dan system call, semuanya jadi masuk akal
    • Begitu mulai dengan system call, rasanya dunia ada dalam genggaman
    • Sangat merekomendasikan mencoba-coba OS sebagai hobi
    • Saya memakainya sebagai kesempatan untuk belajar Rust dan mendapatkan lebih dari yang saya harapkan
    • Sekarang saya sudah lumayan terbiasa dengan Rust dan bisa melempar lebih banyak double fault dan triple fault daripada kebanyakan orang
  • Banyak orang merekomendasikan alternatif favorit mereka, tetapi saya tetap penggemar besar Project Oberon

    • Mungkin tidak cocok untuk komputasi tahun 2025, tetapi ini adalah OS grafis kecil yang ditulis dalam bahasa sistem yang memory-safe
    • Ada cukup banyak konten untuk belajar tentang pengembangan OS
    • Situs web Project Oberon
  • Buku ini punya kelemahan klasik dari tutorial osdev

    • Banyak penjelasan tentang detail x86, tetapi hampir tidak ada tentang osdev itu sendiri
    • Detail x86 bukanlah osdev
    • Itu hanya bagian yang sangat kecil dari hal-hal yang harus ditangani OS dasar
  • Buku OS favorit saya adalah Operating Systems: Three Easy Pieces

    • Isinya lebih banyak tentang cara kerja daripada pengembangannya
    • Tersedia gratis dalam format HTML dan PDF, dan versi cetaknya juga dijual
    • Situs web OSTEP
  • Terima kasih! Ini terlihat seperti materi yang luar biasa tentang topik ini

    • Andai saya masih punya source code "OS" yang saya buat saat remaja
    • Saya menulis boot loader MBR, beralih ke protected mode, menampilkan karakter di layar, sampai input keyboard
    • Sangat direkomendasikan jika Anda mencari tantangan yang menyenangkan
  • Komentar ini membangkitkan nostalgia ke era 2000-an

    • Ada situs bernama planet-source-code.com yang populer di komunitas pengembang
    • Ada ratusan mini operating system yang ditulis oleh para anggota
    • Sebagian besar bootloader ditulis dengan C/C++ dan assembly, dikompilasi dengan Mingw32, lalu di-boot dari floppy disk biasa
  • Bukunya bagus. Sebaiknya lihat issue di GitHub

    • Ada beberapa bagian yang perlu diperbaiki
    • Commit terakhir sudah 10 tahun yang lalu
  • Saya berharap dua buku pengembangan operating system dari Jepang diterjemahkan ke bahasa Inggris

    • Keduanya memandu sampai menjalankan jendela di lingkungan grafis
    • Salah satunya adalah tantangan 30 hari
    • MikanOS GitHub
    • 30-days Homemade OS GitHub
    • Pernah ada upaya untuk menerjemahkan "30-days Homemade OS" ke bahasa Inggris, tetapi tidak berjalan jauh
    • os-in-30-days GitHub
    • Saya tidak tahu buku atau artikel berbahasa Inggris yang melangkah sejauh ini
    • Bab lingkungan grafis Fusion masih belum selesai
    • Situs web Fusion OS
  • Saya penasaran di mana manual untuk buku OS merah kecil itu

  • Ngomong-ngomong soal pengembangan OS, game membuat belajar jadi menyenangkan

    • Saya ingin membuat game yang mengajarkan operating system sambil menjelajahi sejarah komputer
    • Pemain akan berperan sebagai scheduler proses dan interrupt handler
    • Bisa dimulai dari sistem CPU tunggal dengan RAM yang sangat terbatas, lalu berkembang menjadi sistem SMP dan mencapai platform komputasi terdistribusi multi-sistem seperti saat ini