Tuesday, May 11, 2004

Architectural Patterns and kernels

Monolithic architecture - Exposes a high level interface where with core services closely coupled with each other. Linux and other monolithic kernels provide a high level system call API and internally, services like memory management, I/O etc are tightly coupled.

Pro: Performance
Con: Defect on one service may affect other services

Microkernel architecture - Services decoupled and run on own process. Use message passing mechanism to communicate with each other to reduce coupling.

Pro: Easy to extend or add new features. Malfunctioning service can be restarted without affecting others
Con: Slower

Hybrid kernels - Micro kernels that have non-essential code in kernel space for efficiency. Microsoft Windows NT and strains are an example

Exokernels - Provides a library for core OS features (in terms of the developer requesting particular pages of memory or blocks of diskspace). Application developer builds on top. Multiple libraries can co-exist allowing applications designed for different libraries to run side by side.

No comments: