System Structure
Hardware layer Responsible for interacting with system hardware.
Kernel The kernel layer is the core of the operating system. It provides the system with process, memory, and task management. The kernel also connects applications to system hardware. The kernel is divided into the following components:
System Call Interface The System Call Interface (SCI) provides a connection between user space and kernel space.
Process management Responsible for creating, stopping, and communicating with system processes.
Memory management Responsible for memory allocation, virtual memory, and paging.
Virtual File System Provides an abstraction layer for multiple filesystem types.
Network stack Provides protocols used in network communications.
Device drivers Software used to communicate with hardware.
Architecture-dependent code System code specific to the type of processor.
Shell Application and user environment and interface.
Operating system software Used to manage the operating system.
Application software Editors and other user applications.
Kernel
The kernel layer is the core of the operating system. Most Linux distributions use a monolithic kernel. Some (GNU) use a microkernel. To understand the difference between a monolithic and microkernel, you must understand the terms user space and kernel space. Kernel processes execute in memory reserved for kernel processes (kernel space). User processes execute in memory reserved for user applications (user space). Separating user and kernel space protects kernel processes.
Monolithic Kernel A monolithic kernel executes in kernel space. Monolithic kernels are made up of modules that perform specific functions. These modules may be dynamically loaded or unloaded.
Microkernel A microkernel uses a small kernel executing in kernel space to manage memory, multitasking, and interprocess communication. Most other kernel functions are built in to “servers” that execute in user space.
Last updated