I know this is a young project, but right now it looks like a terrible waste of Rust's features. Raw pointers everywhere, most allocations unchecked, and <i>264</i> unsafes in just the kernel.<p><i>unsafe</i> is a necessary escape hatch, but the temptation to use it to write C-style code is strong.
Rust really seems like the next step in system programming.<p>Would it be possible to have this lifetimes/borrowing stuff in a scripting language?<p>Like, I care about who owns something, but I don't care about what something is?
The blog was a good read. I agree with acconsta that the description doesn't seem to utilize Rust's better attributes. Plus, that it's "starting to look like Linux" (author) may or may not be good. I'd look at Wirth's Oberon or A2 Bluebottle for a simpler start: type-safe, memory-safe (mostly), GC'd OS with good documentation, source available, and a simplicity focus for easy re-implementation. Rust, in theory, can do whatever it did and faster.<p>Additionally, if doing clean-slate, might be worth looking into alternative models for constructing or securing OS's. EROS security OS, SPIN OS's type-safe linking for acceleration, Minix 3's reliability scheme, JX OS's architecture, Microsoft's verified VerveOS scheme, maybe even Amoeba distributed OS just for kicks to see what it could do today. Lot of stuff that might be better than Linux model with a Rust implementation in terms of reliability, security, extensibility, or developer productivity.<p>Just a thought for Redox author or someone else wanting to try an OS in Rust. However, best thing to come out of Redox project, imho, isn't the OS so much as this article:<p><a href="https://redox-os.org/index.php?controller=post&action=view&id_post=5" rel="nofollow">https://redox-os.org/index.php?controller=post&action=view&i...</a><p>Great write-up on an equally great strategy of developing with hardware that's well-supported by both native OS's and virtualization. That's worth copying and expanding in other projects. Maybe worth a dedicated list like the HCL's where there's a list of computer builds that are easiest to develop on with or without virtualization. Or list it one piece of hardware at a time.
I am Jackpot51, I wrote Redox and would be able to confirm with a master push.<p>To start, this wasn't supposed to be public yet. I was preparing cleanup before release, and I hope it is not seen as complete.<p>I am excited to see how much attention this has gotten, and I would be willing to answer any questions about Redox, how to use it, and how to contribute.<p>I have a blog at <a href="https://redox-os.org/" rel="nofollow">https://redox-os.org/</a> where I recently posted screenshots.<p>We can IRC at irc.mozilla.org #redox
"Redox is not correct, secure, or documented. It does a lot of things in a cavalier, leave it up to the application, manner. Applications can malloc and forget to free, Redox will not clean this up. Applications can access missing memory or kernel memory, Redox does not care. All applications run in Ring 0, and have all permissions. Some syscalls use vtables that rely on exactly the same struct defintions in userspace as kernel space. Syscalls cannot return values, except by writing them into a passed pointer. Memory allocation is done in the application, and uses a global memory allocation table that applications directly modify. None of its functionality is documented, outside of example source files." -- <a href="https://redox-os.org/" rel="nofollow">https://redox-os.org/</a><p>Yikes!!!