this post was submitted on 22 Nov 2023
48 points (100.0% liked)
Asklemmy
43962 readers
1620 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy ๐
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I am a big big big Linux fan, but I feel that after 30 years, it is time for a non-monolithic kernel. I know Linus hates the idea of microkernels but the era of Rust is finally here and it shows that safe microkernels are fully possible now, and I believe the advantages and modularity can be amazing for a new era of open source computing.
Some of the devs around Linus are getting warmed up to the idea of a microkernel. Statistics have shown better boot times and better overall performance. As they put it "guess Tannenbaum was right all along" ๐.
Anyway, it should just be a matter of time now. Linus doesn't like the microkernel idea because it risks stability for the sake of modularity. You maintain the entire code base with a monolithic kernel (drivers, FS, everything), while with a microkernel, you just maintain the kernel, everything else is modular, maintained by someone else, thus, things can go bump in the night. The former is better for stability.
Don't break userspace.
Yep, his main motto ๐.
Those are not really the same thing. You can still run something as a microkernel and maintain it as code bases completely under your control and developed in lockstep or even in one giant repository if you really want to.
Microservices and microkernels are not really that similar. The great advantage of a microkernel is not so much the separation of concerns but the fact that less code needs to run unsandboxed in kernel space where every bug can potentially corrupt other parts of the kernel or lead to security holes.
I'm ready for it, but it needs to be GPL3. I'm sick of vendors like Amazon and Nvidia using the Linux kernel but not publishing their drivers. Open your drivers, or dont use the kernel, that simple.
Redox OS
I've had it on my "to try" list for a while, but haven't set aside time yet. It looks pretty good on paper, though.
New OSes have a tough hill to climb, with a mountain of hardware drivers. Until theres a decent corpus of drivers, running on bare metal is limited to a small few number of people.
Ive tried redox before, its in a very basic state, ive never gotten it to boot on real hardware and there are only a few basic utilities and Netsurf installed
Yeah, building an OS is a lot of work. It may be a while (if ever) before Redox is a daily driver; it took Linux 10 years before it was a viable option, and another 10 before it was common... and that was back when there was far less hardware to support. Uphill battle, like I said. However, it's actively developed, has more than one contributor, and ticks the requested boxes: Rust, micro, modern.
Windows, Mac, Freebsd, etc all use some sort of modular kernel. Linux finally going to a microkernel or even a hybrid kernel would be one of the first basic steps towards modernizing Linux. So it will probably happen in 10 years or so.
What does that mean for modularity and support?
Microkernel only refers to the core, right? Is the idea that it can make inbound guarantees on drivers and firmware? Does it not still depend on the extensions being secure even if your micro kernel is?