126 poin oleh GN⁺ 2025-01-09 | 14 komentar | Bagikan ke WhatsApp
  • Buku ini menjelaskan cara membangun sistem operasi kecil dari nol secara bertahap
  • Istilah pengembangan sistem operasi (OS) atau kernel mungkin terdengar menakutkan, tetapi fungsi dasar OS (terutama kernel) ternyata sangat sederhana
  • Linux juga awalnya dimulai dengan 8.413 baris kode, dan meskipun kernel Linux saat ini sangat besar, mulanya ia berawal dari codebase kecil seperti proyek hobi

Memulai

  • Kita akan mengimplementasikan context switch dasar, paging, mode pengguna, shell baris perintah, device driver disk, serta operasi baca/tulis file dengan bahasa C
  • Semua ini bisa dilakukan hanya dengan 1.000 baris kode
  • Bagian tersulit dalam membuat OS sendiri adalah debugging
  • Sebelum mengimplementasikan debugging printf, kita tidak bisa menggunakannya, dan kita perlu mempelajari berbagai teknik serta keterampilan debugging yang tidak diperlukan dalam pengembangan aplikasi
  • Terutama saat memulai "dari nol", kita akan menghadapi bagian-bagian sulit seperti proses boot dan paging
  • Tapi jangan khawatir! Kita juga akan mempelajari cara melakukan debugging OS
  • Semakin sulit proses debugging-nya, semakin besar kepuasan saat berhasil
  • Mari terjun ke dunia pengembangan OS yang menarik!

Informasi lain

  • Contoh implementasi dapat diunduh dari GitHub.
  • Buku ini disediakan di bawah lisensi CC BY 4.0, dan contoh implementasi serta source code-nya berada di bawah lisensi MIT
  • Anda perlu terbiasa dengan bahasa C dan lingkungan mirip UNIX, dan jika Anda bisa menjalankan gcc hello.c && ./a.out, berarti Anda sudah siap
  • Buku ini awalnya ditulis sebagai lampiran untuk buku berbahasa Jepang berjudul "Perancangan dan Implementasi Mikrokernel"
  • Selamat menikmati OS hacking!

Daftar isi buku

  1. Intro
  2. Getting Started
  3. RISC-V 101
  4. Overview
  5. Boot
  6. Hello World!
  7. C Standard Library
  8. Kernel Panic
  9. Exception
  10. Memory Allocation
  11. Process
  12. Page Table
  13. Application
  14. User Mode
  15. System Call
  16. Disk I/O
  17. File System
  18. Outro

14 komentar

 
princox 2025-01-15

Rasanya menyenangkan karena sistem operasi selama ini hanya saya kenal lewat buku, dan sekarang bisa melihatnya dalam bentuk kode nyata.

Terima kasih sudah membagikan materi yang bagus ini.

 
yuhyun 2025-01-13

Terima kasih atas materi yang bagus!!!!!!!!

 
reagea0 2025-01-10
  • Buku ini awalnya ditulis sebagai lampiran untuk buku "Desain dan Implementasi Mikrokernel" yang awalnya ditulis dalam bahasa Jepang

Saya sangat iri mendengar itu. Sepertinya di Jepang memang banyak sekali buku-buku spesialis yang terbit dengan baik. Mungkin karena soal jumlah penduduk?

 
gurugio 2025-01-11

Kalau melihat buku-buku yang diterjemahkan, sepertinya tidak ada buku yang membahas sampai sedalam itu secara teknis, tetapi tampaknya memang ada buku dari berbagai bidang yang terbit. Mungkin karena pasarnya memang lebih besar.

 
romakus 2025-01-10

Terima kasih atas materi yang bagus.

 
skrevolve 2025-01-09

Coba buat sekali, atau setidaknya pahami sampai tingkat tertentu. Nanti Anda akan bisa melihat bagaimana sistem Linux bekerja, jadi akan berguna saat menggunakan Linux.

 
gurugio 2025-01-09

Sampai awal 2000-an, membuat kernel kecil sendiri seperti ini sempat menjadi tren, jadi saya juga pernah mencobanya, dan berkat itu saya bisa mengerjakan pengembangan kernel Linux selama beberapa tahun. Di Korea juga banyak terbit buku tentang membuat sistem operasi, jadi kalau Anda mencarinya dengan baik, Anda bisa menemukan buku yang menjelaskannya dengan lebih rinci.
Kalau bukan untuk pindah kerja ke bidang terkait dan hanya untuk bersenang-senang, ini tidak buruk, tetapi kalau saya, akhir-akhir ini saya akan merekomendasikan studi terkait AI atau k8s. Sampai sekarang pun kadang ada tulisan di tempat seperti KLDP dari orang yang ingin menjadi pengembang kernel, tetapi kalau melihat komentarnya, isinya hanya saran untuk pergi ke luar negeri.

 
bbulbum 2025-01-10

Mungkin karena di dalam negeri memang tidak ada perusahaan yang berinvestasi di level kernel, ya..? hehe

 
gurugio 2025-01-11

Saya tidak yakin apakah itu tidak dilakukan karena tidak diperlukan, atau karena memang tidak bisa dilakukan, tetapi memang tidak ada.

 
coma333 2025-01-09

Terima kasih atas materi yang bagus ini.

 
tsboard 2025-01-09

Buku-buku seperti inilah yang mungkin bisa disebut sebagai kitab rahasia jurus silat seperti yang sering muncul di novel wuxia, ya? hehe

 
bbulbum 2025-01-09

Sangat menarik. Suatu hari saya memang ingin belajar pemrograman sistem, dan sepertinya ini bisa menjadi pendekatan awal yang membuat saya berharap bisa memahami cara kerja OS dari sisi pemrograman!

 
GN⁺ 2025-01-09
Opini Hacker News
  • Penulis menulis buku agar orang bisa mencoba membuat sistem operasi sendiri di akhir pekan, dan dapat memakai bahasa pemrograman favorit seperti Rust atau Zig alih-alih C

    • Hanya menyisakan bagian yang esensial agar tidak terlalu mirip UNIX, dan menarik juga memikirkan perbedaannya dengan Linux atau Windows
    • Merancang sistem operasi itu seperti membangun dunia sendiri
    • Beberapa paragraf mungkin terasa seperti hasil terjemahan mesin, dan penulis meminta agar dikirimkan PR jika ada waktu
    • Kontennya ditulis dalam Markdown
  • Berdasarkan pengalaman pemrograman sistem operasi "hobi", sebaiknya pengaturan debugging GDB ditambahkan secepat mungkin

    • QEMU memiliki server GDB bawaan, dan klien GDB untuk arsitektur target (riscv) perlu dihubungkan ke server GDB QEMU melalui jaringan
  • Menurut saya keren bisa membuat sistem operasi kecil untuk RISC-V

    • Secara pribadi saya pernah menulis kernel untuk x86-64 dengan Nim, dan sedang mengembangkan plugin JetBrains
  • Bagi penggemar Rust, panduan dari phil-opp bisa menjadi latihan yang menyenangkan

    • Saat pertama kali mencoba saya hanya memahami sekitar 5%, tetapi 2-3 tahun kemudian saya mencobanya lagi dan meninjau topiknya satu per satu
  • Saya mulai belajar tentang RISC-V, dan emulator yang disediakan buku yang sedang saya baca tampak lebih sederhana daripada QEMU serta memiliki lisensi yang aneh

    • Terlihat seperti proyek akademis, dan saya penasaran apakah benar-benar digunakan
  • Akan menarik untuk membandingkannya dengan xv6-riscv

    • Tersedia versi HTML dari buku xv6
  • Diskusi tingkat rendah selalu menarik

    • Menemukan salah ketik kecil di "halaman RISC-V 101", yang menulis "CPU" secara keliru alih-alih "ISA"
  • Bagian paling sulit dalam membuat sistem operasi adalah debugging

    • Semakin bertambah usia, saya merasa masalah yang tidak membutuhkan pengetahuan khusus yang rumit bisa diselesaikan lewat percobaan berulang
  • Disebutkan dua proyek

    • nuta/microkernel-book
    • mit-pdos/xv6-riscv
  • Materinya bagus, saya simpan untuk dibaca saat akhir pekan

 
mhcoma 2025-01-14

Membangun kernel dengan Nim...
Kedengarannya menarik.