3 ms·
I wonder if your what your working on is a major contributor to the complexity and speed of the project. When working that low level, there are a lot of lifeti
by bluejekyll 9y ago
I wonder if your what your working on is a major contributor to the complexity and speed of the project.
When working that low level, there are a lot of lifetime issues your going to need to manage, and that can definitely make Rust have a higher cognitive load.
On a side note have you looked at this blog series? https://www.tockos.org/blog/2017/apsys-paper/ https://www.tockos.org/blog/2017/apsys-paper/
They’re definitely paving an interesting path in the kernel space for Rust.
- zaarn 9y agoOne major roadblock I had lately was to manage paging in interrupts. Rust doesn't really like static globals but that is the only way to sanely manage paging in interrupts. So I spent probably a day to figure out the correct way to write a small interface to handle a global kernel state variable. There is also plenty of unsafe stuff that won't go away or stuff that is unsafe not because of the code but because x86. For example, you can't properly handle a null pointer in rust, however, at low-level, the pointer 0x00 is completely valid and I hate to have to waste that address because Rust and LLVM won't allow it. The major reason I even bothered to learn Rust for this way because I didn't want to manage all of this in C on top of having only printf as my debugging tool.