- Repositori Blog OS berisi kode sumber yang digunakan dalam seri Writing an OS in Rust di os.phil-opp.com
- Kode untuk tiap artikel tersedia di git branch terpisah, sehingga Anda dapat melihat keadaan perantara setelah mengikuti artikelnya
- Saat ini, artikel edisi kedua terdiri dari kategori Bare Bones, Interrupts, Memory Management, dan Multitasking, dengan kode artikel terbaru berada di branch
post-12
- Nama branch menggunakan format
post-XX; misalnya, post-03 adalah kode untuk artikel VGA Text Mode, dan post-07 untuk artikel Hardware Interrupts
- Edisi pertama sudah tidak lagi dipelihara, tetapi masih dapat dijadikan referensi; kode proyek, kecuali folder
blog/content, menggunakan lisensi pilihan Apache-2.0 atau MIT
Tujuan repositori Blog OS
- Repositori ini menyediakan kode sumber untuk seri Writing an OS in Rust
- Pertanyaan dapat diajukan dengan membuka GitHub issue atau melalui chat Gitter
Struktur kode per artikel
- Kode untuk tiap artikel berada di git branch terpisah
- Anda dapat melihat keadaan perantara setelah mengikuti artikelnya
- Kode artikel terbaru ada di
post-12
- Branch untuk setiap artikel dapat ditemukan melalui tautan
(source code) pada daftar artikel di bawah
- Nama branch menggunakan format
post-XX
post-03: VGA Text Mode
post-07: Hardware Interrupts
- Cara build harus merujuk ke README di masing-masing branch
- Anda dapat menggunakan
git worktree untuk checkout branch tertentu ke subdirektori
git worktree add code post-10
- Perintah di atas membuat subdirektori
code yang berisi kode untuk artikel ke-10, Heap Allocation
Daftar artikel edisi saat ini
- Tujuannya adalah menyediakan tutorial langkah demi langkah melalui artikel blog individual
-
Bare Bones
-
Interrupts
-
Memory Management
-
Multitasking
Edisi pertama
- Blog saat ini adalah edisi kedua
- Edisi pertama sudah lama dan tidak lagi dipelihara, tetapi masih bisa berguna
- Edisi pertama mencakup artikel dalam kategori Bare Bones, Memory Management, Exceptions, dan Additional Resources
Lisensi dan kontribusi
- Proyek ini, kecuali folder
blog/content, dapat digunakan sesuai pilihan pengguna dengan Apache License 2.0 atau MIT license
- Untuk lisensi folder
blog/content, lihat blog/content/README.md
- Kecuali dinyatakan lain, kontribusi yang sengaja dikirimkan untuk disertakan akan berlaku di bawah lisensi ganda di atas tanpa syarat tambahan, sesuai definisi Apache-2.0
1 komentar
Komentar Hacker News
Beberapa tahun lalu saya membaca edisi ke-2 sampai selesai, dan isinya benar-benar membuka wawasan.
Penjelasan tentang pengembangan sistem operasi juga bagus, tetapi setelah membaca buku Rust, materi ini juga berguna sebagai sumber untuk belajar Rust lebih jauh.
Penulisnya sangat memahami idiom Rust, jadi melihat bagaimana ia mengekspresikan kode dibandingkan dengan cara saya menulisnya juga memberi banyak pelajaran. Secara khusus, async-await in Rust, yang menjelaskan bagaimana future diimplementasikan di Rust, adalah yang terbaik yang pernah saya lihat tentang topik ini.
Saya berharap Phil kembali bersemangat dan melanjutkan pengerjaan edisi ke-3 berbasis EFI. Dari commit di branch Git, sepertinya terhenti, dan saya juga menjadi sponsor GitHub selama sekitar setahun, tetapi setiap kali melihatnya absen dari tulisan “This Month In Rust OSDev”, rasanya disayangkan.
Meski begitu, edisi ke-2 adalah materi yang luar biasa untuk mengisi waktu pengembangan di akhir pekan, dan usaha yang dicurahkan jelas terasa.
Setelah menyelesaikan tutorial ini 5 tahun lalu, saya mulai mengerjakan MOROS, dan sangat merekomendasikannya kepada siapa pun yang tertarik pada Rust dan pengembangan sistem operasi.
Phil benar-benar mencurahkan banyak usaha, dan itu terlihat. Proyek ini mencakup banyak hal, dan setelah itu bisa dilanjutkan dengan osdev wiki.
MOROS: http://moros.cc, https://github.com/vinc/moros
MOROS tampaknya juga memenuhi kriteria-kriteria ini, jadi saya bookmark.
Namun entah kenapa tidak bisa mulai di QEMU, jadi saya belum sempat mencobanya; kemungkinan besar masalahnya ada di sisi saya, bukan pada sistem operasinya sendiri.
Setelah mendalami Rust dan pengembangan sistem operasi, hari ini saya menemukan materi ini dan terkesan dengan kualitas kontennya.
Kita belajar banyak tentang sejarah dan desain sistem operasi, sekaligus menyerap unsur-unsur Rust secara alami. Phil benar-benar membuatnya dengan sangat baik.
Saya baru saja pulang dari Rustconf, dan sepertinya di ekosistem Rust ada sekitar lima rilis sistem operasi besar, terutama banyak yang berfokus pada real-time.
Namun tidak semuanya open source.
Selain itu ada juga yang lebih niche atau tidak dipublikasikan.
Untuk sistem operasi tradisional, yaitu yang bukan real-time, Redox adalah contoh utamanya, dan ada banyak sistem operasi untuk riset, eksperimen, dan pendidikan, termasuk Blog OS dari panduan/posting ini.
Saya terutama merekomendasikan edisi pertama dari tulisan-tulisan ini.
Edisi saat ini menangani seluruh bootloading dengan crate khusus, jadi terasa terlalu banyak membantu.
Setelah membaca komentar ini, saya jadi ingin benar-benar mencobanya. Saya ingin membuat sistem operasi kecil untuk bersenang-senang, tetapi saya tidak suka bagian yang harus melewati prosedur seperti mantra sihir hanya untuk mencapai kondisi mesin yang layak agar bisa melakukan sesuatu.
Tentu saja itu bukan hal yang buruk; tiap orang hanya menyukai bagian yang berbeda.
Berkat materi ini, saya mulai memakai Rust pada 2021, dan saya sangat berterima kasih ada materi seperti ini.
Tulisan Phil tentang pengembangan sistem operasi selalu enak dibaca.
Katanya ia akan berbicara di konferensi GOSIM bulan depan.
https://china2024.gosim.org/speakers#philipp-oppermann
Semoga bisa bertemu langsung dan berbincang dengannya.
https://harvey-os.org/ sudah pensiun, dan timnya sekarang mengerjakan proyek ini: https://github.com/r9os/r9
Saya bukan developer profesional, tetapi ketika melihat ungkapan “menulis X di atas Y”, saya teringat meme “But why?” dari Ryan Reynolds: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
Kalau untuk tujuan belajar, menurut saya silakan saja. Semakin banyak coding, semakin baik kemampuan kita.
Selain itu, MOROS terlihat punya proyek dan halaman yang keren.