kernel design approaches

A digest for kernel-wide design from wikipedia (including ALL the pics and some definitions)

1. Monolithic kernel (宏内核)

a: entire OS in kernel space and supervisor mode (eg, ring 0); b: a set of primitives or system calls for ALL OS services. E.g, BSD, Solaris, AIX, HP-UX, Linux, DOS, Window 9x

2. Microkernel (微内核)

a: near-minimum amount of OS – including address space management, thread management and IPC; b: device drivers, servers, protocol stacks, file systems, user interface, applications are ALL in user mode while kernel itself in supervisor mode or kernel mode; c: Microkernel servers are like daemon controlled by kernel. E.g, Mach, L4, QNX

3. Hybrid kernel (混内核)

a: kernel structure like microkernel, b: implemented like monolithic kernel, c: key OS services moved into kernel space while left (e.g, file systems) left in user space. E.g, Windows NT, BeOS, Plan 9, Inferno, NetWare

4. Nanokernel (纳内核, Picokernel)

a: much more small size from Microkernel, b: virtualization layer under OS – hypervisor, c: hardware abstraction layer at the bottom of OS.

5.  Exokernel (外内核)

a: the least abstraction of hardware – left to application good for distribute OS, b: library OS as middle ware between Application and kernel, c: end-to-end for application. E.g, Nemesis, ExOS.

About daveti

Interested in kernel hacking, compilers, machine learning and guitars.
This entry was posted in OS and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.