Kernel Varieties


Agenda

Kernel Definition

Generically: Resource manager

More broadly: The thing that sits between applications and hardware that allows limited resources to be shared in a reasonable and reasonably consistent mannter. Specifically, the shared portion of code loaded into all applications that allows that resource sharing to happen.

Applications
Kernel
CPUMemoryDevices

Monolithic Kernels

Applications
Kernel
SchedulerMemory SubsystemVFSNetworkingDevice Drivers
CPUMemoryDevices

Microkernels

Applications
Kernel VFSNetworkingDevice Drivers
Thread ManagementMemory SubsystemIPC
CPUMemoryDevices

Nano Kernels

Applications
Kernel Thread ManagementMemory SubsystemVFSNetworkingDevice Drivers
IPC
CPUMemoryDevices

Isolation Kernels

ApplicationApplicationApplication
Guest OSGuest OSGuest OS
Kernel
SchedulerMemory SubsystemVFSNetworkingDevice Drivers
CPUMemoryDevices

Separation Kernels

ApplicationsApplicationApplication
Kernel
CPUMemoryDevices

Unikernels

Kernel and Applications
SchedulerMemory SubsystemVFSNetworkingDevice Drivers
CPUMemoryDevices

Exokernels

Applications
Libary OSLibrary OSLibrary OS
KernelDirect Hardware Access
CPUMemoryDevices

Rump Kernels

Applications
Rump Kernel
SchedulerMemory SubsystemVFSNetworkingDevice Drivers
Kernel
CPUMemoryDevices

References

Examples are linked throughout. Access these slides at https://jakob.kaivo.net/talks/2020/10/30/kernels/kernels.html.

Copyright © 2020 Jakob Kaivo <jakob@kaivo.net>