Onion Leaves: Understanding Linux Architecture

Samuel Arogbonlo
4 min readFeb 25, 2021

Going through the planet of operating systems, one of the most popular is LINUX. Some school of thoughts regard it as the safest OS while some others say it is best for development; every administrator, engineer or random user have an idea of LINUX but the fundamental architecture remains unchanged.

By definition, LINUX is an open-source OS that sits between applications and hardware, while fostering proper communication between software and physical resources that perform tasks. As a remarkably performing operating system, including a GUI (graphical user interface), TCP/IP, Shell, etc. Some of the popular distributions include Ubuntu, Kali, Fedora, Linux Mint, Zorin OS amongst a few others.

LINUX System Architecture

Cyclic display of the LINUX Architecture

The LINUX OS architecture can be relatively demonstrated with an onion. We understand the Onion inner structure and how its fleshy leaves grow round. The LINUX architecture is synonymous with the fleshy leaves of onion and while in the onions, the number of rounds differs, the number of rounds here is constant for the LINUX Architecture and they include the following:

  1. Hardware: The hardware is the core of the LINUX system and it embodies the operational processes with diverse hardware components connected to the system. The components include Read Access Memory (RAM), Read-Only Memory (ROM), motherboard, Central Processing Unit (CPU) and other storage devices.
  2. Kernel: The Kernel could be otherwise called “the heart of the OS”. It provides the interface between the application and data processing at the system level. It works explicitly with the hardware for connection and follow-up communication. In a raw implementation, assuming you save a file in the ROM (or Hard drive), it will only understand how to manipulate the data to be saved with the influence of the kernel. The kernel has all it takes to manage end-to-end encryption at any request within the confines of the operating system. It also provides the lowest-level abstraction for resource application software and carries out the interactions between hardware and other components of the system. In a nutshell, the kernel handles processes in CPU management, memory management, device management, end-to-end user management, input/output processes and other core functional managements.
  3. Shell: LINUX has avenues for making processes to have development interfaces. The shell is an interface where users can perform input into the system using commands. It can be used to install application programs, update the kernel, run system status checks and other runarounds within the OS. The Shell is classified into two types:command-line shells and graphical shells. While they both perform operations, the command-line shell provides a command-line interface (CLI) and the graphical interface provides the graphical user interface (GUI). Other types of shell include Korn shell, Bourne shell, C shell and POSIX shell.
  4. Utilities & Application Programs: This includes the diverse programs used to fiddle around the OS. They are liable to do a specialized task and ensure users and developers perform whatever is required.

The concepts detailed above displays the operations of the LINUX system from user to software parts built into the OS — all other parts like bootloaders (GRUB2), directories, bash, initial ramdisk and others all operate on the principles of the LINUX architecture.

The operational flow of the LINUX OS while the user sits outside

Some other basic features of LINUX include its portability, open-source access, multi-user capabilities, multiprogramming capabilities, hierarchical file system, its shell and most importantly its security.

LINUX has become widely used across different aspects of software engineering and it is imperative that you explore resources that can teach you a better way of building and utilizing the system.

It was Steve Wozniak that said “All the best people in life seem to like LINUX”

Thanks for reading ❤️

Please leave a comment if you have any thoughts about the topic.

You can also reach out to me on Twitter or find me on Github.

I can imagine how helpful this post has been, do leave a clap 👏 below a few times to show your support for the author!

--

--

Samuel Arogbonlo

A writer for Cloud and DevOps with a sprinkle of other interesting software concepts.