Source
Linux
Description of Linux, its architecture, prevalence and application scenarios.
Linux is one of the most popular operating systems for deploying services. It underpins most server, cloud and container platforms due to its stability, flexibility and mature ecosystem.
Basic Linux architecture
Hardware layer
CPU, memory, disks, network and device controllers.
Linux kernel
Monolithic kernel with modularity: process, memory, I/O and network management.
System libraries
Standard APIs and runtimes through which applications communicate with the kernel.
User space
Services, utilities, daemons, containers and custom applications.
User mode
User space
Applications and shells
- Shells (bash)
- Browsers and office applications
- Multimedia and tools
System components
- init (systemd/OpenRC)
- System daemons (sshd/udevd)
Windows and graphics
- X11/Wayland/SurfaceFlinger
- Mesa and graphics drivers
Libraries and runtimes
- glibc/musl/bionic
- GTK/Qt/SDL and other UI libraries
Kernel mode
Kernel space
System Call Interface
- System calls (open/read/write)
- POSIX-compatible APIs
Kernel subsystems
- Process scheduling
- Memory and virtual addresses
- IPC, VFS, networking
Drivers and modules
- Device drivers
- Loadable kernel modules
Security modules
- SELinux
- AppArmor
- TOMOYO
Hardware
Hardware
How a network request goes (example with curl)
The request passes through the user space → kernel mode boundary, enters the network stack and returns back.
How a request flows through Linux
Example: curl -> kernel -> network -> kernel -> curl
User space
Kernel mode
Network driver
Hardware / Network
Active step
Click "Start" to walk through the flow.
Opportunities and strengths
- Multitasking and multi-user mode.
- Industrial-grade network stack and broad protocol support.
- Flexible access rights model and kernel-level security.
- Support for containers and isolation (namespaces, cgroups).
- Scalability: from embedded devices to data centers.
Why Linux became so popular
Open source and huge community ecosystem.
Stability and predictable behavior in production.
Flexibility of customization for any scenario: clouds, bare metal, edge.
Good performance and efficient use of resources.
Support from cloud providers and DevOps tools.
Why is it important to know Linux in system design?
- Most server workloads are deployed on Linux - it is important to understand the behavior of processes and resources.
- Linux defines network and I/O restrictions that affect the latency and throughput of services.
- Containerization and orchestration (Docker, Kubernetes) are tied to Linux mechanisms.
- Knowledge of Linux helps diagnose incidents and optimize the infrastructure.
