Linux
Linux is an open-source operating system built around the Linux kernel. Distributions combine the kernel with userland tools, package managers, and default configuration.
Overview
- Strong permission model and generally good performance
- Stable and modular, with many configuration options
- Trade-offs include a steeper learning curve and uneven hardware support
Reference
Core design principles
| Principle |
Meaning |
| Everything is a file |
Devices, processes, and resources are exposed through file-like interfaces |
| Small tools |
Commands usually do one thing well |
| Composability |
Pipelines combine simple tools into larger workflows |
| Shell-first interaction |
The CLI is the primary control surface |
| Text configuration |
Most system settings live in plain text files |
System components
| Component |
Role |
| Bootloader |
Loads the kernel at startup |
| Kernel |
Manages hardware and system calls |
| Daemons |
Run background services |
| Shell |
Accepts and runs commands |
| Graphics server |
Provides graphical display support |
| Desktop environment |
Supplies the GUI layer |
| Utilities |
Provide user-facing tools |
Filesystem hierarchy
| Path |
Purpose |
/ |
Root of the filesystem tree |
/bin |
Essential user binaries |
/boot |
Bootloader and kernel files |
/dev |
Device files |
/etc |
System configuration |
/home |
User home directories |
/lib |
Shared libraries |
/mnt |
Temporary mount point |
/opt |
Optional third-party software |
/root |
Root user’s home directory |
/usr |
User-space programs and documentation |
/var |
Variable data such as logs and caches |
Mental Model
- The kernel abstracts hardware into manageable resources
- The filesystem exposes those resources in a unified tree
- The shell and utilities manipulate that tree
- Linux workflows are built from small commands composed together