Why is rust suitable for write os


#1

hi experts, is rust better than c to write os kernel?


Why does someone want to develop kernel using Rust?
#2

Hi zgxgoo, I don’t think we have enough data yet to support such a conclusion.

There is the Redox OS project which attempts to build a full OS in Rust, and some embedded kernel projects in various states of completion (or deterioration).

I doubt that work has progressed to a state where we can meaningfully compare the work to things like a Linux kernel, which has seen some man-centuries of development time and gets funded by heavyweight companies.

That said, Rust has a few things going for it that make it suitable for at least some of the tasks that arise when writing a kernel. If you are interested in that sort of development, why don’t you try it and tell us how you fared?

Disclaimer: Apart from building a small kernel during an OS course as a CS student, and getting a kernel driver patch into Ubuntu once, I have little experience with actual kernel work.


#3

Hi,
I’ve attempted some kernel prototyping in Rust. See: https://github.com/dpc/titanos

Generally Rust is very promising for the field and I it’s definitely possible to write baremetal software including kernels in Rust. There were some annoyances though. First, a lot of the stuff needs to be unsafe, deal with raw pointers, etc. and Rust syntax is very clumsy in this area. It’s not a deal breaker, and it might have a lot to do with me being used to C, and not being Rust expert and trying C-tricks where they don’t belong.

Second, I’ve encountered some stuff missing from the language, like: https://github.com/rust-lang/rust/issues/23577 which I just couldn’t get core developers attention to consider fixing as I was dismissed with some workarounds like "just wrap it in the crate and make pub".

I really need to find some time to look into Redox and how they have dealt with this issues.


#4

Thanks for your suggestion!


#5

Thanks for your suggestion,