Operating-System Structure
An operating system is a
construct that allows the user application programs to interact with the system
hardware. Since the operating system is such a complex structure, it should be
created with utmost care so it can be used and modified easily. An easy way to
do this is to create the operating system in parts. Each of these parts should be
well defined with clear inputs, outputs and functions.
Simple
Structure
There are many operating systems
that have a rather simple structure. These started as small systems and rapidly
expanded much further than their scope. A common example of this is MS-DOS.
Layered
Structure
One way to achieve modularity in
the operating system is the layered approach. In this, the bottom layer is the
hardware and the topmost layer is the user interface.
One problem with the layered
structure is that each layer needs to be carefully defined. This is necessary
because the upper layers can only use the functionalities of the layers below
them.
Microkernels
- The
basic idea behind micro kernels is to remove all non-essential services
from the kernel, and implement them as system applications instead,
thereby making the kernel as small and efficient as possible.
- Most
microkernels provide basic process and memory management, and message
passing between other services, and not much more.
- Security
and protection can be enhanced, as most services are performed in user
mode, not kernel mode.
- System
expansion can also be easier, because it only involves adding more system
applications, not rebuilding a new kernel.
- Mach
was the first and most widely known microkernel, and now forms a major
component of Mac OSX.
- Windows
NT was originally microkernel, but suffered from performance problems
relative to Windows 95. NT 4.0 improved performance by moving more
services into the kernel, and now XP is back to being more monolithic.
- Another
microkernel example is QNX, a real-time OS for embedded systems.
Modules
- Modern
OS development is object-oriented, with a relatively small core kernel and
a set of modules which can be linked in
dynamically.
- Modules
are similar to layers in that each subsystem has clearly defined tasks and
interfaces, but any module is free to contact any other module,
eliminating the problems of going through multiple intermediary layers.
- The
kernel is relatively small in this architecture, similar to microkernels,
but the kernel does not have to implement message passing since modules
are free to contact each other directly.
Hybrid Systems
Most Operating Systems today do
not strictly adhere to one architecture, but are hybrids of several.
Example: Mac OS X, ios, Andriod
No comments:
Post a Comment