Mengimplementasikan Sistem Operasi dalam 1.000 Baris
(operating-system-in-1000-lines.vercel.app)- 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
- Intro
- Getting Started
- RISC-V 101
- Overview
- Boot
- Hello World!
- C Standard Library
- Kernel Panic
- Exception
- Memory Allocation
- Process
- Page Table
- Application
- User Mode
- System Call
- Disk I/O
- File System
- Outro
14 komentar
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.
Terima kasih atas materi yang bagus!!!!!!!!
Saya sangat iri mendengar itu. Sepertinya di Jepang memang banyak sekali buku-buku spesialis yang terbit dengan baik. Mungkin karena soal jumlah penduduk?
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.
Terima kasih atas materi yang bagus.
Coba buat sekali, atau setidaknya pahami sampai tingkat tertentu. Nanti Anda akan bisa melihat bagaimana sistem Linux bekerja, jadi akan berguna saat menggunakan Linux.
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.
Mungkin karena di dalam negeri memang tidak ada perusahaan yang berinvestasi di level kernel, ya..? hehe
Saya tidak yakin apakah itu tidak dilakukan karena tidak diperlukan, atau karena memang tidak bisa dilakukan, tetapi memang tidak ada.
Terima kasih atas materi yang bagus ini.
Buku-buku seperti inilah yang mungkin bisa disebut sebagai kitab rahasia jurus silat seperti yang sering muncul di novel wuxia, ya? hehe
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!
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
Berdasarkan pengalaman pemrograman sistem operasi "hobi", sebaiknya pengaturan debugging GDB ditambahkan secepat mungkin
Menurut saya keren bisa membuat sistem operasi kecil untuk RISC-V
Bagi penggemar Rust, panduan dari phil-opp bisa menjadi latihan yang menyenangkan
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
Akan menarik untuk membandingkannya dengan xv6-riscv
Diskusi tingkat rendah selalu menarik
Bagian paling sulit dalam membuat sistem operasi adalah debugging
Disebutkan dua proyek
Materinya bagus, saya simpan untuk dibaca saat akhir pekan
Membangun kernel dengan Nim...
Kedengarannya menarik.