KERNEL: Is an important part of the operating system. An operating system itself consists of two parts; the kernel space (privileged mode) and the user space (user mode). PRIVILEGED MODE: Privileged mode or kernel mode is the processing mode that allows code to directly access to all hardware and memory in the system. USER MODE: Is the processing mode in which applications run.
There are two different concepts of kernels:1- Monolithic Kernel2- Microkernel MONOLITHIC KERNEL: It runs every basic system service like process and memory management, interrupt handling and I/O communication, file system etc. in kernel space. Examples are Linux, Unix.
Three drawbacks: Kernel size is too large. Lack of extensibility. Bad maintainability. Bug fixing or adding a new feature means recompilation of the whole kernel. To overcome these limitations of extensibility and maintainability, the idea of microkernel appeared at the end of the 1980’s.
MICROKERNEL: The kernel is broken down into separate processes, known as servers. Some of the servers run in kernel space and some run in user-space. All servers are kept separate and run in different address spaces. The communication in microkernels is done via message passing. The servers communicate through InterProcess Communication IPC. Servers invoke “services” from each other by sending messages. Advantage is this that if one server fails, other servers can still work efficiently. Examples are Mac OS X and Windows NT.
Absolutely essential core OS functions should be inthe kernel, less essential services and applicationsare built on the microkernel and executed in usermode.Many services that traditionally have been part ofthe OS are now external subsystems that interactwith the kernel and with each other; these includedevice drivers, file systems, virtual memorymanager, windowing system and security system.The microkernel functions as a message exchange. Itvalidates messages, passes them betweencomponents and grants access to the hardware, italso prevents message passing unless exchange isallowed.
USER INFACES: The kernel level services and the user level services have a uniform interface for processes which use their services by means of message passing. EXTENSIBILTY: New services can be added. FLEXIBILTY: Services can be subtracted or modified.
PORTABILITY: All or at least much of the processor specific code is in the microkernel. So the changes needed to port the system to a new processor are fewer and are arranged in logical groupings. RELIABLITY: Smaller kernel makes its implementation likely to be more reliable. DISTRIBUTED SYSTEM SUPPORT: A process can send a message without knowing on which computer the target service resides. Pieces can be on another machine.
OBJECT-ORIENTED OPERATING SYSTEM: An object-oriented approach can lend discipline to the design of microkernel. One promising approach is the use of components. Components are objects with clearly defined interfaces that can be interconnected to form software in a building block fashion. All interaction between components uses the component interface.
A potential disadvantage of microkernelis its performance. It takes longer to buildand send a message via themicrokernel, and accept and decodethe reply, than to make a single servicecall.
One response to this problem is to enlarge the microkernel. It would improve the performance but would effect the microkernel design strengths i.e. minimal interfaces, flexibility and reliability. Another approach is to make microkernel smaller. This improves the performance as well as flexibility and reliability.
The microkernel must include thosefunctions needed to support the servicesand applications operating in usermode. These functions fall into thegeneral categories of low-level memorymanagement, interprocesscommunication (IPC), and I/O interruptmanagement.
LOW-LEVEL MEMORY MANAGEMENT: The microkernel control the hardware concept of address space to make it possible to implement at the process level. A virtual memory module outside the microkernel decides when to bring a page into memory and which page already in memory is to be replaced; the microkernel maps these page references into a physical address in main memory.
INTERPROCESS COMMUNICATION (IPC): The basic form of communication between processes or threads in microkernel operating system is messages. A message includes a header that identifies the sending and receiving process and a body that contains direct data, a pointer to a block of data, or some control information about the process.
I/O AND INTERRUPT MANAGEMENT: With microkernel architecture it is possible to handle interrupt as messages and to include I/O ports in address spaces.
Operating system has two parts kernel mode and user mode. Microkernel has separate processes known as servers. Some run in kernel space and some run in user space. In microkernel the user mode is an external subsystem which includes services such as device drivers file systems, virtual memory manager, windowing system, and security system. The essential OS functions are included in kernel mode where as the less efficient are built in microkernel but executed in user mode. Communication between the processes is done via message passing. They can do message passing within a mode with each other or with processes residing in the other mode. Microkernel’s performance is not good because message passing takes a lot of time. Its performance can improve by making the kernel size smaller.
Microkernel uses a virtual memory. Handles interrupts as messages and includes I/O ports in address space.