Writing an OS in Rust
I started working on MOROS[1][2] after completing the tutorial 5 years ago, and I cannot recommend it enough for anyone interested in Rust and osdev. Phil put a lot of work into it, and it shows! The project covers a lot, and after that there's the osdev wiki[3] to keep going.
[1]: http://moros.cc
Funny, I found this today after doing a deep dive on Rust and OS development. I was in awe at the quality of this content. You come out of it not only learning so much about the history and design of operating systems, but you start to pick up elements of Rust as well. Phil did an incredible job on this.
I just came back from Rustconf and it seems there’s about five or so major OS releases, particularly focused around real time. Not all are open source though.
I especially recommend the original edition of these posts. For me the current edition does way too much hand holding, taking care of the entire bootloading process with a specialized crate.
This source got me started with Rust back in 2021, and I'm very grateful that this exists.
He's giving a talk at next month's GOSIM conference. https://china2024.gosim.org/speakers#philipp-oppermann It would be nice to be able to talk to him in person.
Phil's writing on OS development is always a wonderful read.
https://harvey-os.org/ (Retired) The team now works on this: https://github.com/r9os/r9
(not a professional coder) "writing an X on Y" brings in my mind the meme of Ryan Reynolds "But why?" [0]. If it is for training purposes, then by all means, go nuts!! The more one codes, the better.
[0]: https://screenrant.com/ryan-reynolds-but-why-gif-harold-kuma...
Sidenote on "MOROS" - cool project/page!
Another good resource is Making a RISC-V OS using Rust
Is this project about writing a kernel or an entire OS including graphical shell, etc.?
Jokingly thought it was another one of those “I rewrote it in Rust” moments. Cool post
Nice job !
[dead]
You lost me at branch per post
We shouldn't write an OS in rust. We should create a data platform on which we can run DML/DDL with an SSMS++ automatic frontend.
Makes sense but what if there are bugs in llvm? U r still exposed. So need a rust version of llvm and then rust can be self hosted
The pool of operating system penetration testers will be absolutely devastated if a rust OS becomes mainstream.
Most, if not all, vulnerabilities are related to lack of memory safety.
Well, guess there’s always the application/user space.
I completed the second edition years ago and found it illuminating. It's very well done! The explanations pertaining to OS dev are nice but it was also a useful artifact for learning more Rust after having gone through the Rust book. The author had a good grasp of the idiom of the language, so seeing how he expressed certain things in code vis a vis how I would have done was educational. The blog's explanation of how futures are implemented in Rust was especially a highlight[0], and I think it's the best I've seen on that topic anywhere.
I hope Phil will find the inspiration to come back and work on the EFI-based third edition again. AFAICT, (based on commits to the git branches) that has stalled. I was a GitHub sponsor for about a year until my CC expired and was always bummed to see it left out of the "This Month In Rust OSDev" posts.
Anyway, the second edition is still a great way to spend a weekend's dev time and I appreciate all the hard work that clearly went into it. Thanks Phil!
[0]: https://os.phil-opp.com/async-await/#async-await-in-rust