Comment by MontyCarloHall
1 day ago
This dedicates at least as much time to discussing the eccentricities of the underlying Rust implementation (and the Rust language itself) as it does to discussing the underlying low-level hardware/software concepts. Since this is very much still a work-in-progress (only the first three sections have been fully fleshed-out), I have a suggestion to make: please make it more language-agnostic, with a greater focus on the fundamentals versus the implementation.
One of the hardest parts of writing an os is learning and understanding how to make the toolchain work the way you need it to. I wouldn't consider that a negative to spend time discussing it in such detail. Otherwise you have no idea how to even apply the high level concepts.
> greater focus on the fundamentals versus the implementation
I am seeing this too. Folks are suddenly saying - lets implement this in Rust (or insert any other language here) without thinking about what this does to the fundamentals. A bandwagon effect which developers are swept by. And for managers it is a great way to show how innovative your team is. This applies not just to languages but entire development stacks almost like fashions in clothing.
When I started writing this OS, Rust was a pain, and I needed to understand a lot of things that I didn't know about the language, I can flag on some sections that people can skip because they are more language related, but I think that it is very important, and can be beneficial to people that come from other languages, or to people that want to understand rust more deeply.
In every chapter I try to initially explain the topic and then implement, or something in between. but I think the implementation is important because it completes the picture.
For what it's worth, I've found the Rust-y explanations well worth the read! Please keep them in, it's really interesting to read about the technicalities.
They might be focused on programmers, not users. Programmers come first because otherwise users don't come at all.
C would have been a more natural/neutral choice to be honest for a project like this, since every OS actually used is written in C.
Eh... all the major OSs use C, anyways. For starters, (almost?) everyone is using a decent bit of assembly at the bottom. Then Linux is slowly adding Rust, and I was under the impression that NT spanned C, C++, and maybe some Rust now? And the moment we speak of the whole operating system and not just the kernel I think your claim collapses completely in the face of Darwin's Objective C and Windows doing... everything Microsoft feels like including.
This is a bad thing we should try to change