Exploring The Linux Kernel - Part 1
This blog series is meant to give a general overview of the linux kernel. Posts will range from general information like "How big is the Linux kernel?" along with more technical topics such as file system architecture. But before we get into the internals of the Linux kernel; what is a kernel, and what does it do exactly?
In general, a kernel is a piece of low level software that controls basic aspects of the system. There are several main responsibilities the kernel has that can be found in almost all kernels.
These include..
- Managing memory like volatile memory such as RAM or nonvolatile memory found on Hard Disk Drives or SSDs
- Managing requests for resources or functionality from higher levels of the operating system (also called system calls)
- Accessing peripheral devices and allowing the operating system to access peripheral devices that include things like USB, HDMI, and Audio
The kernel is different from an operating system. An operating system is generally built on top of a kernel but sometimes the lines are very blurry. For example the Linux OS distribution "Ubuntu" is built on top of the linux kernel and while the kernel handles the interaction with the hardware, the rest of the operating system handles components such as the desktop and it's icons. The kernel is what allows Ubuntu to look and feel the same to both users and programmers regardless of whether its running on a 64-bit x86 machine, or a 32-bit ARM based machine.
The kernel is important because it allows a layer of abstraction between a programmer and the hardware they are programming on. When someone is writing software for a particular operating system it's important that the experience is identical, or very similar, regardless of the hardware it's running on. This allows software to be more portable as well as allowing code to be portable and reusable.
There are many examples of kernels because nearly every operating system has one. Some operating systems and their respective kernels are...
- Windows 7, 8, 10: Windows NT
- MacOS: XNU
- Ubuntu: Linux Kernel
- OSDyson: illumos kernel (Open source Solaris derivative)
These kernels and their operating systems may seem very different to one another, yet most of them have similar features that define the kind of kernel they are. In the next blogpost we talk about different types of kernels and the advantages of each one.
This is a blog series on the linux kernel; why it's important, what it does it, and how it does it.
The first post in this series can be found here Part 1 - The Kernel
The next post in this series can be found here Part 2 - Types of Kernels

No comments:
Post a Comment