What is the Kernel?
The kernel is a fundamental part of any operating system. The average lay person is blissfully oblivious of its existence. Millions of people use a computer every day without understanding how it actually functions. Typically only a programmer would ever deal with the Kernel directly. Installing device driver software or configuring a network protocol is probably as close as most people will ever get to the Kernel. The Kernel is the core of the operating system at the lowest and most basic level. Its function is vital to practically all operations. The Kernel is to an operating system; what an engine is to a car. Without the Kernel, we could do little or nothing with our computer.
Similarities
Both Linux and Windows Kernels control the low level system software and interactions with the computer’s hardware via the Hardware Abstraction Layer (HAL). In this manner the Kernel keeps the remainder of the operating system independent of the hardware which in turn allows for much greater portability. Operating system Kernel’s are written in a high level language known as C. The C language was chosen because C has been ported to practically every hardware platform in existence. Portability is important to programmers and software companies because it means less work, less time and less expense. Both Kernels handle things like device drivers, caching, virtual memory, network protocols, file systems, process creation and termination and system calls. The objective of a Kernel is similar from system to system but the approach can very different between operating systems.
The Kernel in Linux
The Linux Kernel refers to everything that runs in Kernel mode and is made up of several distinct layers. At the lowest layer, the Kernel interacts with the hardware via the HAL. At the middle level, the UNIX Kernel is divided into 4 distinct areas. The first of the four areas handles character devices, raw and cooked TTY and terminal handling. The second area handles network device drivers, routing protocols and sockets. The third area handles disk device drivers, page and buffer caches, file system, virtual memory, file naming and mapping. The fourth and last area handles process dispatching, scheduling, creation and termination as well as signal handling. Above all this we have the top layer of the Kernel which includes system calls, interrupts and traps. This level serves as the interface to each of the lower level functions. A programmer uses the various system calls and interrupts to interact with the features of the operating system.
The Kernel and ‘Kernel Mode’ in Windows
The Kernel within the Windows operating system is somewhat different than that of LINIX because Microsoft has taken a somewhat different approach to the Kernel’s design. The term “Kernel mode” refers to not only the Kernel itself but the HAL and various system services as well. This would include the HAL(hal.dll) at the bottom layer, followed by the Kernel at the second layer. The third layer is the Kernel. Above that (fourth level) we have various managers for Objects, processes, Memory, Security, Cache, Plug in Play (PnP), Power, Configuration and I/O. The file system and Win32 GDI are also at this level. The many of the items at this fourth level are referred to collectively as the Windows Executive (ntoskrnl.exe). At the top and fifth layer of the Kernel mode are system services.
Summary
As you can see, both Linux and Windows operating systems have a Kernel that performs similar functions. However, both Kernels are designed quite differently. In the world of computers; there are many ways to achieve the same goals.
No comments:
Post a Comment