1. Hardware

  • Physical components: CPU, RAM, storage, network devices, etc.
  • Linux supports multiple architectures (x86, ARM, RISC-V, etc.).

2. Kernel (Core of Linux)

  • Monolithic kernel handling:
    • Process management (scheduling, multitasking)
    • Memory management (RAM, virtual memory)
    • Device drivers (communication with hardware)
    • File systems (ext4, Btrfs, XFS, etc.)
    • Networking (TCP/IP stack, firewalls)
  • Loadable kernel modules (drivers can be added/removed dynamically).

3. Shell (Command Interpreter)

  • Acts as a bridge between users and the kernel.
  • Common shells: Bash (Bourne Again Shell), Zsh, Fish.
  • Accepts commands, executes programs, and returns output.

4. Applications (User Space)

  • End-user software (e.g., web browsers, text editors, servers).
  • Can be CLI-based (like vim, grep) or GUI-based (like Firefox, LibreOffice).
  • Relies on system libraries (e.g., glibc, GTK, Qt) for functionality.