3 ms·
Sounds a lot like SPIN OS https://en.wikipedia.org/wiki/SPIN_(operating_system) https://en.wikipedia.org/wiki/SPIN_(operating_system) They have to make do with
by willisbueller 7y ago
Sounds a lot like SPIN OS https://en.wikipedia.org/wiki/SPIN_(operating_system) https://en.wikipedia.org/wiki/SPIN_(operating_system)
They have to make do without type safety (in SPIN's case provided by modula-3), but it's really cool to see it tried.
For those interested: SPIN and other hybrid kernels (like Exo) were created in the fall-out of "microkernels are bad" by attempting to allow a hybrid approach. Linux was created around the same time staying straight in the monolithic category (but since moving to be more hybrid).
- smorrow 7y agoOut of the loop, why is Linux now "more hybrid"?
- PaulDavisThe1st 7y agokernel modules and BPF ....
- boomboomsubban 7y agoMany of the benefits of microkernels have been implemented in Linux over the past 25 years. Modules, FUSE, and live patching for example.
- smorrow 7y agoI don't understand kernel modules, dynamic-loaded or otherwise, to be any more or less monolithic (in the sense of monolithic versus micro kernels). Do they have their own address space or something?
- pm90 7y agoBecause it has a crap ton of drivers and shit in the kernel, which is the opposite of unikernel/microkernel approach where most of this functionality is implemented in userspace. See eg Minix
- gok 7y agoI think the question was how is it a microkernel at all
- willisbueller 7y agoIt provides some of the capabilities previously limited to microkernels in the past around the ability of an application domain to customize the kernel to fit its needs. You can see it in loadable kernel modules, user-space drivers which allow applications to control how they access hardware directly, and now loadable application code too which can run directly in the kernel. Hybrid hasn't been used to denote something that has a address space layout similar to a mkernel so much as it's being used to denote a monolithic operating system that has some capabilities previously only available in a mkernel.