For people who don’t know, there is already a fully Rust OS: https://www.redox-os.org/
Microkernel too which is pretty cool.
I have heard about Redox. What’s the difference between a microkernel and a kernel? Does redox use the linux kernel? Or has the guy written that in rust too?
lots and lots more IPC. So lots and lots of context switches. So worse performance
Well, think microkernels as the bare minimum. They give you just enough to write your own OS on top of that: only the bare essentials run in kernel space, whilst everything else runs in user space and has to communicate with the kernel. Compare this to a monolithic kernel, like the Linux kernel: here, the whole operating system is run in kernel space, which means that data doesn’t need to be moved between user and kernel space: this makes the OS faster, but at the cost of modularity. Redox doesn’t use the Linux kernel, it uses its own microkernel written in Rust.
Edit: A good example would be driver. In a microkernel, these run separately from the kernel and interact with it when needed. In a monolithic kernel, these drivers would be included in the kernel itself. They both have their pros and cons: if you’re interested, feel free to look it up.
Does that mean on a microkernel you’d essentially have double the amount of code execution for a driver (i.e. driver makes a call to the kernel, kernel verifies and then executes rather than the driver just executing the call) meaning double the latency? Seems like it would cause a lot of problems.
Nowhere near double, the kernel can be extremely sparse on it’s side, but there is a small latency hit
thanks for the explanation! I was thought it had something to do with linux since the lead dev works for System76.
No problem! Actually, System76 is currently working on rewriting the COSMIC desktop in Rust (or really, just writing a new DE in Rust). It’s a pretty ambitious project that should hopefully get released some time this year. I wouldn’t be surprised if the lead redox dev was working on it too: low-level Rust knowledge is exactly what they need.
IIRC the filesystem was literally just a text file.
This actually wrong way to do it, here the pro way:
1.Start writing a game/app/engine/os.
2.Write dozen utility packages for it.
3.Write high-level packages for #2
4.Write a “light-weight” version of #3 when disgusted with bloat of #3.
5.repeat #2 with more modern rust code.
you have been looking at my private github repos and are clearly a witch
Let me on the Linux kernel irq I can redo the whole thing!
Very small projects 😂 after mastering it try building whooping to-do app in rust!
So I watched a few guides and did all that… what now? Would you think a shopping list app is doable for my knowledge after this? It looks really hard compared to NorgurOS… :(
Well, that escalated rather quickly.
How about a federated link aggregator?
Didn’t know Lemmy was written in Rust.
Edit: yep, it is https://github.com/LemmyNet/lemmy
Yoo it uses AGPL v3 too. That’s pretty cool. Love to see it