BSD

Linux

Minix

GNU/Hurd

Plan 9

Solaris

OpenVMS

OS X

AIX

HP-UX

Windows

An operating system manages a computer's resources; memory, processes, hardware and software.
It translates user input and text into the binary language a computer understands.
Without an operating system, a computer is useless.

The main two approaches for kernel design are monolithic and micro kernels.
Monolithic kernels contain everything necessary for the functioning of the operating system in the kernel.
All kernel processes occupy the same address space which improves performance.
A draw back is that a single kernel process (device driver) can crash the whole system.
Microkernels only include the bare minimum. Additional processes and device drivers run as servers.
Having less code running in kernel mode is theoretically suppossed to provide a more stable system.
If something crashes in user mode it can just be restarted.

Historically the real life performance of micro kernels has been less than stellar.
Once thought academically to have made monolithic kernels obsolete, actual performance of the designs have brought the issue back into question.

Micro Kernel Design Monolithic Kernel Design


Computers have different architectures and an operating system will only run on its intended architecture.
The most common architectures are x86 (32 and 64 bit), arm, powerpc and sparc.


Valid XHTML5 Valid CSS!