0

According to Wikipedia, the Windows Kernel is a hybrid model, meaning it has both a monolithic and microkernel architecture.

But both definitions are very opposite: monolithic is that there is a shared place for both system services and core functionality, microkernel means there is not a shared place.

So, I bet that means that windows has shared space for some, and for other system services and core functionalities it is decoupled.

I'm trying my best to understand this but it's very cryptic for me, although I'm a professional software engineer. Do you perhaps have an, maybe relatable, example in which it is monolithic and in which it is microkernel?

And to what extent is it similar to say Ubuntu and to what extent is it totally different from Ubuntu kernel, which is said to be fully monolithic?

er sd
  • 71
  • 1
  • 4
  • The NT executive provides ALPC ports for efficient message passing between kernel components and user-mode subsystems and services, and also between subsystem servers and clients. This allows system capabilties to be partly implemented in user mode, such as LSASS (coupled to SRM in the kernel) and UMDF (coupled with kernel device stacks). ALPC is also used for user-mode extensions to system services -- e.g. process and thread creation and loading DLLs (for SxS) are partly implemented in the session server process, CSRSS. – Eryk Sun Apr 09 '20 at 01:04

1 Answers1

1

Generally speaking, a microkernel has very few services provided by the kernel itself, which execute in kernel mode while a monolithic kernel has the vast majority of servers (especially drivers) running in kernel mode.

Many monolithic OSes are taking the approach of running some of their services and drivers at user level and this is what they mean by hybrid. They might keep the network drivers completely in the kernel but run GPU drivers at user level for example.

Anna Lyons
  • 228
  • 2
  • 4