Menulis Sistem Operasi dengan Rust
(github.com/phil-opp)- Repositori ini berisi source code untuk seri Writing an OS in Rust yang disediakan di os.phil-opp.com
- Jika ada pertanyaan, Anda dapat membuka issue atau mengobrol di Gitter
Lokasi kode
- Kode untuk setiap post tersedia di branch git terpisah
- Anda dapat memeriksa status perantara setelah setiap post
- Kode untuk post terbaru dapat dilihat di sini
- Anda dapat menemukan branch untuk tiap post dengan mengikuti tautan
(source code)di daftar post - Branch dinamai dalam format
post-XX(XXadalah nomor post) - Contoh: post VGA Text Mode adalah
post-03, dan Hardware Interrupts adalahpost-07 - Untuk petunjuk build, lihat Readme pada branch terkait
- Anda dapat menggunakan git worktree untuk checkout branch ke subdirektori
git worktree add code post-10 - Perintah di atas membuat subdirektori bernama
codedan berisi kode dari post ke-10 ("Heap Allocation")
Post
- Tujuan proyek ini adalah menyediakan tutorial langkah demi langkah melalui post blog individual
- Saat ini tersedia post berikut
Bare Bones:
- A Freestanding Rust Binary (source code)
- A Minimal Rust Kernel (source code)
- VGA Text Mode (source code)
- Testing (source code)
Interrupts:
- CPU Exceptions (source code)
- Double Faults (source code)
- Hardware Interrupts (source code)
Memory Management:
- Introduction to Paging (source code)
- Paging Implementation (source code)
- Heap Allocation (source code)
- Allocator Designs (source code)
Multitasking:
- Async/Await (source code)
Post edisi pertama
- Versi blog saat ini adalah edisi kedua, dan edisi pertama sudah tidak lagi dipelihara
- Post edisi pertama masih bisa tetap berguna
- Daftar post-nya adalah sebagai berikut
Bare Bones:
- A Minimal x86 Kernel (source code)
- Entering Long Mode (source code)
- Set Up Rust (source code)
- Printing to Screen (source code)
Memory Management:
- Allocating Frames (source code)
- Page Tables (source code)
- Remap the Kernel (source code)
- Kernel Heap (source code)
Exceptions:
- Handling Exceptions (source code)
- Double Faults (source code)
Additional Resources:
- Cross Compile Binutils
- Cross Compile libcore
- Set Up GDB
- Handling Exceptions using Naked Functions
- Catching Exceptions (source code)
- Better Exception Messages (source code)
- Returning from Exceptions (source code)
Lisensi
- Proyek ini dilisensikan, kecuali folder
blog/content, dengan salah satu dari berikut ini- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
- Untuk lisensi folder
blog/content, lihatblog/content/README.md
Kontribusi
- Kecuali dinyatakan secara eksplisit sebaliknya, setiap kontribusi yang sengaja diajukan, sebagaimana didefinisikan dalam lisensi Apache-2.0, akan disertakan dengan lisensi ganda seperti di atas
Ringkasan GN⁺
- Proyek ini menyediakan tutorial langkah demi langkah tentang cara menulis sistem operasi dengan Rust
- Setiap post membahas topik yang berdiri sendiri dan disertai contoh kode
- Ini adalah materi yang sangat berguna bagi orang yang tertarik pada pengembangan sistem operasi
- Anda dapat mempelajari cara mengembangkan sistem operasi dengan memanfaatkan keamanan dan performa Rust
- Proyek lain dengan fungsi serupa adalah
Redox OS
1 komentar
Komentar Hacker News
Beberapa tahun lalu saya menyelesaikan edisi kedua dan belajar banyak hal
Setelah menyelesaikan tutorial ini 5 tahun lalu, saya mulai mengerjakan MOROS
Daripada menulis OS dengan Rust, kita seharusnya membuat platform data yang bisa menjalankan DML/DDL
Setelah mendalami Rust dan pengembangan OS, saya menemukan materi ini
Berkat materi ini saya mulai belajar Rust pada 2021
Tulisan Phil tentang pengembangan OS selalu enak dibaca
Tim Harvey OS sekarang sedang mengerjakan proyek R9OS
Saya sangat merekomendasikan postingan dari edisi aslinya
Saya baru kembali dari Rustconf, dan ada sekitar lima rilis OS utama yang berfokus pada sistem operasi real-time
Materi bagus lainnya adalah membuat OS RISC-V menggunakan Rust