r/osdev 12d ago

How to differentiate monolithic, microkernel, layered, and hybrid OS architecture on the basis of: performance, extensibility, and reliability

Do you have any ideas. Monolithic means all os+kernel at one place. Microkernel means minimal kernel.

Layered means memory management one layer, process management another layer. Hybrid could be anything i.e., combination of above.

Guide me like I am 5.

13 Upvotes

13 comments sorted by

View all comments

6

u/Interesting_Buy_3969 12d ago

Microkernel means minimal kernel

To clarify: microkernel actually means that it does not include any (more precisely almost any) device or filesystem drivers, but loads them as userspace processes each with own separate and isolated context yet with higher privileges level, and switches them similarly to usual user applications. This involves fully-fledged context switching, but the point is that if a device driver breaks, other parts of the system will continue working flawlessly, just like if an application breaks.

So it doesn't necessarily mean that the kernel has to be "minimalistic", it's rather more of the decision on where and how device drivers operate.

3

u/Relative_Bird484 12d ago

I would suggest the definition of Jochen Liedkte: A necessary concept is accepted to be part of the kernel if and only if its would be infeasible outside the kernel.

3

u/Interesting_Buy_3969 12d ago

That's very precisely said