Kernel
From IeXwiki
A kernel is considered as the core component of an operating system or a bigger software architecture. In terms of operating systems, the kernels main tasks are:
- Task management (creation/forking/ending)
- Memory management (Paging, Segmentation, Execution Protection, Memory mapping, Swapping)
- I/O Management
A kernel which does only the above and delegates more functions to other processes, is often called a "Microkernel". Today, most operating systems use Microkernels, the opposite is often called "Monolithic Kernel", which means that the kernel has more functionality built-in like:
- File Systems
- Device drivers
- More API functions
- I/O Abstraction layers
Today, Linux and some flavors of UNIX are the sole remnants of operating systems which use monolithic kernels. Windows uses a microkernel since NT 3.1, however, the Windows 9x-Line should not be considered to use an own kernel at all, it uses DOS as its foundation and has it "pimped" with extra goodies (memory Management, own driver models, Win32 API), so that this whole clutter of sh*t cannot really be separated in "Kernel" and "Other Parts"...
