Architecture of Linux

Architecture of Linux

Table of contents

Layers:

Hardware Layer:

    • Components: This consists of the physical elements of a computer: CPU, RAM, hard drive, graphics card, network interfaces, and other peripherals.

      • Function: The hardware layer provides the raw computational resources and capabilities upon which the operating system runs.

      • Interaction with OS: The OS directly communicates with hardware via low-level instructions, either directly or through device drivers in the kernel.

  1. Kernel Layer:

    • Components: The kernel is the core component of the OS. It includes device drivers, process management, memory management, file systems, and the network stack.

    • Function: The kernel manages system resources, mediates access to hardware for user-level processes, and provides essential system services. It serves as an intermediary between software and hardware.

    • Interaction with Other Layers: The kernel receives requests from user-level processes (often facilitated by the shell) and interacts with the hardware to fulfill these requests. The system call interface is an integral part of this interaction.

  2. Shell Layer:

    • Components: The shell is a user interface for access to an operating system's services. Most commonly, this refers to command-line interfaces such as bash or zsh, but can be extended to graphical shells.

    • Function: The shell provides a way for users to issue commands to the operating system. It interprets user input and makes appropriate system calls to the kernel.

    • Interaction with Other Layers: Users interact with the shell to launch applications, manage files, and perform other tasks. The shell converts these commands into system calls to the kernel. When the kernel completes a request, the shell might process and present the results to the user.

  3. Application Layer:

    • Components: These are user-level software programs such as web browsers, text editors, databases, games, etc.

    • Function: Applications provide the functionalities that users directly interact with. They make use of OS services, libraries, and the hardware (through the OS) to function.

    • Interaction with Other Layers: Applications often communicate with the kernel (and thereby the hardware) through system calls. When a user interacts with an application (say, saving a file in a text editor), the application requests the kernel to write to a specific location on the hard drive.

When visualized, these layers can be thought of as a stack:

  • Top: Application

  • Shell

  • Kernel

  • Bottom: Hardware

linkedin contact