What is a kernel?
A kernel is more or less a resource
manager that manages things like processes, memory, and hardware
devices. The kernel also allows access to resources in which multiple users compete for.
There are seven sub systems of the kernel to manage the system and it's resources, these include
- System call interface- The SCI allows a user space application to interface with a service the kernel provides.
- Process management- Focuses on running processes and puts in place a scheduling algorithm so threads or processes can share the CPU.
- Memory management- Sets up and manages pages, keeping track of which ones are full, partly used or empty. When many users or processes eat up all the available RAM, then swapping takes place and less important files are relocated to the swap partition.
- Virtual file system- The VFS specifies a standard interface that each file system must support and is a buffer for common functions like read, write, close, and open. It also interfaces for device drivers.
- Network stack- This sub system provides users with a variety of network protocols such as TCP and IP and makes connections allowing data to be moved from one node to another.
- Device drivers- Device drivers are just that, device drivers. A peace of software or code that allows the OS and hardware to communicate. In Linux the drivers are coded right into the kernel.
- Architecture-dependent code- Code that is dependent on the architecture of the CPU and available for other operations that may depend on the architecture.
So that is my very basic overview of the Linux kernel, what it does, and the seven different sub systems involved.
No comments:
Post a Comment