> For the complete documentation index, see [llms.txt](https://ganesh-moota-wiki.gitbook.io/linux/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ganesh-moota-wiki.gitbook.io/linux/architecture-of-linux-operating-system.md).

# Architecture of Linux Operating System

1. **Hardware Layer:**
   * The **hardware** layer consists of physical components such as the CPU, RAM, and input/output devices.
   * Key components:
     * **CPU (Central Processing Unit):** The Linux kernel interacts with the CPU, executing instructions.
     * **RAM (Random Access Memory):** Primary memory used to store data and programs accessed by the CPU.
     * **Input/Output Devices:** Linux supports various input/output devices (e.g., keyboard, touchpad, monitor, printer) through device drivers.
2. **Kernel Layer:**
   * The **kernel** is the core of the operating system, serving as the foundation for other software.
   * Functions of the kernel:
     * **Device Management:** Handles device hardware, including device drivers and input/output operations.
     * **Resource Management:** Manages CPU processes and peripheral devices.
     * **Memory Management:** Allocates and manages memory for processes.
3. **Shell/System Call Interface:**
   * The **shell** provides a command-line interface (CLI) for users to interact with the kernel.
   * It interprets user commands and communicates with the kernel via system calls.
   * Shells include popular ones like **Bash**, **Zsh**, and **Fish**.
4. **Application Programs and Libraries:**
   * The **application layer** includes user-level programs and libraries.
   * Users run applications (e.g., web browsers, text editors) that utilize system services provided by the kernel.
   * Libraries (e.g., C libraries) provide common functions for application development.

Here’s a simplified diagram of the Linux architecture:\ <img src="/files/EdVhDutA6adL2I5WL1Qs" alt="" data-size="original">
