Linux Hardware and Software Layers
There are four main layers with Linux which are monolithic
and are tied into the one system. The base layer is the hardware which can talk
through the kernel, using it to interact through drivers for the software to
function. The next layer is the kernel which acts as a bridge between the
hardware and the software.
The next layer of this Linux hardware and software stack is
the Shell which is normally Bash. This is where the Command Line Interface
(CLI) commands are used and talk through to the kernel to manage the hardware.
The top layer is the user interface where the user uses the Graphical User
Interface (GUI) for things like web browsers and text editors.
Linux is Monolithic
The way that Linux is monolithic is tied to its
architecture. This architecture is designed to have all core services run
together as a group in a Kernel Space. This Kernel Space is something that is a
privileged and highly secure area of memory. This design is making Linux fast
and efficient based on lower delays between core services.
The other type of kernel is called the Microkernel which
uses a user space on certain operating systems like Minix 3 or the Apple IOS
which uses XNU that is more of a hybrid kernel. X not Unix (XNU) is a
specialized hybrid monolithic and microkernel that is used by Apple to provide
the benefits of both types of kernels.
Four Main Jobs of the Kernel
These are managing device drivers, system calls, process
management, and memory management. Device drivers are the actual assembly code
for each of the items of hardware that talk between the hardware and the
kernel. System calls are the actual requests from software to specific hardware
for things like writing data to the disk.
Process management is where the kernel decides what process
gets run and how long it can be in the CPU. The memory management function of a
kernel is where the kernel decides how much RAM and for how long it stays in
memory. The kernel has more functions like preventing and mitigating conflicts
in processes and acting like a superuser to manage security and resources
needed to perform tasks.
Conclusion
The kernel is a concept that doesn’t get talked about
enough. This concept of a kernel is the essence of Linux which in reality is
more a kernel than an operating system. You can get more in depth into this
topic by including them in your studies. Studying has saved me more time on certification
exams and will be something that will allow me to remain consistent. Study well
guys and be a lifelong learner.