3 ms·
This shouldn't be getting down-votes. Consider the slogan "composition not configuration", Linux is squarely the latter. All the hardware, all the different us
by Ericson2314 6y ago
This shouldn't be getting down-votes.
Consider the slogan "composition not configuration", Linux is squarely the latter. All the hardware, all the different use-cases, that are just added to what's mostly a monolith. You can disable them, but not really pull things a part.
Now, Linux also has some of the most stringent code review in the industry, and they are well aware of issues of maintainability, but fundamentally C is not a sufficiently expressive language for them to architect the code base in a compositional manner.
What really worries me is that as the totality of the userland users an increasingly large interface to the kernel, it will very hard to ever replace linux withsomething else when we do have something more compositional. I am therefore interested, and somewhat working on, stuff that hopefully would end up with a multi-kernel NixOS (Think Debian GNU/kFreeBSD) to try to get some kernel competition going again, and incentivize some userland portability.
Note that I don't think portability <===> just use old system calls. I am no Unix purist. I would really like a kernel that does add new interfaces but also dispenses with the old cruft; think Rust vs C++.
- fabianhjr 6y ago> Consider the slogan "composition not configuration", Linux is squarely the latter. All the hardware, all the different use-cases, that are just added to what's mostly a monolith. You can disable them, but not really pull things a part. Linux is a Monolithic Kernel, sounds like you are more interested in Microkernels. https://www.wikiwand.com/en/Microkernel https://www.wikiwand.com/en/Microkernel One microkernel alternative could be Redox-OS: https://www.wikiwand.com/en/Redox_(operating_system) https://www.wikiwand.com/en/Redox_(operating_system)
- bruckie 6y agoYou could write a monolithic kernel using composition for your code structure. It would just be composition at build time rather than at runtime. It seems pretty hard to write a microkernel without using composition, though, since the runtime requirements kind of dictate your code structure.
- oalae5niMiel7qu 6y ago> but fundamentally C is not a sufficiently expressive language for them to architect the code base in a compositional manner. Plan 9 would like to have a word with you.
- pjmlp 6y agoWell, the original plan was to use Alef.