Running title: RISC-V OS using Rust
RISC-V (“risk five”) and the Rust programming language both start with an R, so naturally they fit together. In this blog, we will write an operating system targeting the RISC-V architecture in Rust (mostly). If you have a sane development environment for RISC-V, you can skip the setup parts right to bootloading. Otherwise, it’ll be fairly difficult to get started.
This tutorial will progressively build an operating system from start to something that you can show your friends or parents – if they’re significantly young enough. Since I’m rather new at this I decided to make it a “feature” that each blog post will mature as time goes on. More details will be added and some will be clarified. I look forward to hearing from you!
The Road Ahead …
- Chapter 0:Setup and pre-requisites
- Chapter 2: Communications
- Chapter 4: Handling interrupts
- Chapter 7: System calls
- Chapter 8: Block driver
Chapter 1:Taking control of RISC-V
Chapter 3: Memory management
Chapter 5: Virtual memory Chapter 6: Starting a process
Chapter 9: File system ************ When finished, you will have an operating system using the RISC-V architecture that schedules user-space programs from a filesystem, including shell, ls (list files), cd (change directory), and so forth.
This is not intended to be the end-all-be-all, cutting edge operating system, but it is to demonstrate the efficacy of an operating system using the Rust programming language.