You are on page 1of 17

Operating System Kernel Design

Anthony Mendez
Fight features, the only way to make software secure, reliable, and fast is to make it small.

~Andrew S. Tanenbaum 10/15/2008

Provides: Process Management Memory Management Device Management Various Abstractions Various Flavors: Monolithic Micro Hybrid Other 2 .What is a kernel? A kernel is one of the lowest abstractions between hardware and software.

Monolithic Kernels A monolithic kernel runs entirely in supervisor mode. Due to its simplicity. it is very fast on slow hardware which has added to its popularity. 3 . Possibly runs modules to allow runtime expandability. Due to simple design it is not as fault tolerant as other designs.

Monolithic Kernels 4 .

the whole thing does. if core module or section of the kernel fails. Time tested and design well known Cons Module system may not provide runtime loading and unloading. Simplicity provides speed on simple hardware.Monolithic Kernels Pros Simple to design and implement. Lower fault tolerance. Become harder to maintain as code base size increases. 5 . Can be expanded using module systems.

Monolithic Kernels Examples: Linux (Free GNU GPL) Syllable (Free GNU GPL) BSD (Free BSD License) KolibriOS (Free GNU GPL) Solaris (Partially Free) AIX (Non-Free) DOS (Non-Free) Mac OS Classic (Non-Free) Windows 9x (Non-Free) OpenVMS (Non-Free) SkyOS (Non-Free) 6 .

Cohesive and complete environment created using message passing between the various servers. only provides mechanisms to implement services and abstractions.Microkernels Minimalistic. Individual services and abstractions are distinct and separate. 7 .

Microkernels 8 .

When unoptimized. Easy to expand and develop for. Highly Secure. problems easy found and diagnosed. Lack of widespread use makes companies wary. Write a new server Cons Message passing historically is much slower then monolithic kernel's all-in-one approach. nothing else has to go down and it can be restarted. Generally disliked in industry. If one server breaks. Easy Maintenance. can take more memory then monolithic kernels. Code very compartmentalized. Messages can be checked across multiple servers to prevent bad calls.Microkernels Pros High Reliability. 9 .

Microkernels Examples: AmigaOS (Non-Free) QNX (Mixed Free/Non-Free) Real Time OS Symbian (Non-Free) Cell Phone OS Minix (Free BSD License) Educational GNU Hurd (Free GNU GPL) GNU Project's Original Kernel Extreme Reliability KeyOS ErOS CapROS Coyotos 10 .

Operating systems that do implement this vary from mostly monolithic to barely not micro. More appealing to businesses.Hybrid Kernels More similar to monolithic kernel but has some advantages of the microkernel without the performance overhead. Combines well known and often implemented monolithic kernel ideas with new microkernel ideas. 11 .

Hybrid Kernels Anthony Mendez Fight features. the only way to make software secure. ~Andrew S. reliable. and fast is to make it small. Tanenbaum 10/15/2008 .

Demonstrating to industry that alternative designs are usable and can be proven to work. may be hard to switch. Difficult to decided how hybrid to make the kernel. 13 . Can be implemented on nontime crucial tasks to increase security without decreasing performance. Difficult to decide what to make a server and what to keep in the larger section of the kernel.Hybrid Kernels Pros Easy to implement on already existing code bases. Cons Depending on complexity/size of original code base.

Hybrid Kernels Examples: BeOS (Non-Free) Haiku (Free MIT License) Dragonfly BSD (Free BSD License) Mac OS X (Free / Non-Free) Netware (Non-Free) OS/2 Warp (Non-Free) Plan 9 / Inferno (Free / Non-Free) Windows NT – Vista (Non-Free) ReactOS (Free GNU GPL) LynxOS (Non-Free) Dynamically Extendable Real Time 14 .

Only provides simple abstractions like multitasking and memory management. The rest of the abstraction is handled through various software libaries.Exokernels Provides the most minimal interface to hardware. 15 .

Due to the lack of general abstraction. All applications must preform tasks that are normally handled by the kernel. very fast because everything is so deeply optimized. Design well suited to real time systems. systems vary wildly in stability. Still very experimental and theoretical. Cons Much more work per application.Exokernels Pros Remarkably small kernel and compiled size. 16 . Depending the qualities of the libraries.

Haskell Based Operating Systems House 17 .“Functional” Operating Systems Lisp Machines Symbolics Lisp Machines Inc.