What is Linux?

TL;DR

Linux is a free, open-source operating system kernel that powers 96% of the world's top servers, all Android phones, most containers, and virtually all cloud infrastructure. It gives you a shell (command line) to control everything — files, processes, networking, and users — with precision that GUIs can't match.

From the Editor's Desk

The Linux skill that pays off most disproportionately is systemd. Once you understand that most daemons on modern Linux are systemd units, debugging a service that "won't start" becomes a three-command sequence: systemctl status, journalctl -u servicename -n 50, and systemctl cat servicename to see the exact unit file. The systemd service unit reference is dense but worth bookmarking.

File permissions and ownership are where Linux surprises people coming from Windows. The combination of user/group/other with read/write/execute creates 512 possible permission sets, but in practice you use fewer than 10 in regular work. What trips people up is setuid and setgid bits — files that run with the owner's privileges rather than the caller's. Security audits routinely find world-writable setuid files that were set that way during debugging and never reverted. Run find / -perm -4000 -type f 2>/dev/null on any Linux box to see what is setuid; the result is often surprising.

If you are deciding how deep to go on Linux: if you ever SSH into a remote server, administer a cloud VM, or work with Docker/Kubernetes, you need at least working fluency. The Linux man pages are underrated as a reference; most answers are one man command away.

The Big Picture

An operating system is the software layer between your hardware and your applications. Linux is the most important OS for developers and DevOps engineers because it's what runs in production. Whether you're deploying a Docker container, SSHing into a server, or running a CI/CD pipeline — you're using Linux.

Linux architecture showing hardware at bottom, kernel in middle, and user space with shell, apps, and services on top
Explain Like I'm 12

Think of your computer like a restaurant. The hardware is the kitchen equipment (oven, fridge, stove). The kernel (Linux) is the head chef — it decides which burner gets used, when food is ready, and makes sure nothing burns. The shell is the waiter — you tell the waiter what you want, and they relay your orders to the kitchen. Applications are the dishes being prepared. You never go into the kitchen directly — the chef (kernel) manages everything, and you talk through the waiter (shell).

Why Linux Matters

WhereLinux ShareWhy
Web servers~96%Free, stable, secure, scriptable
Cloud (AWS, GCP, Azure)~90%Default OS for VMs and containers
Containers (Docker/K8s)~100%Containers ARE Linux processes with namespaces
Android phones~72% mobileAndroid kernel is Linux
Supercomputers (Top 500)100%Performance, customizability
IoT / Embedded~70%Small footprint, no licensing fees

Linux Distributions

Linux is just the kernel. A distribution (distro) bundles the kernel with a package manager, utilities, and sometimes a desktop environment.

DistroBased OnPackage ManagerBest For
UbuntuDebianaptBeginners, desktops, cloud servers
DebianaptStability, servers
CentOS / Rocky / AlmaRHELdnf/yumEnterprise servers
FedoraRHEL upstreamdnfDevelopers, latest packages
Arch LinuxpacmanPower users, rolling release
AlpineapkContainers (tiny ~5MB base)

Who Is This For?

  • Developers who deploy to Linux servers or use WSL/macOS terminals
  • DevOps/SRE engineers managing infrastructure, containers, and CI/CD
  • Data engineers working with Spark, Airflow, or cloud pipelines
  • Anyone preparing for interviews — Linux questions are standard for backend/DevOps roles

What You'll Learn

Start Learning: Core Concepts →

Test Yourself

What is the difference between the Linux kernel and a Linux distribution?

The kernel is the core software that manages hardware (CPU, memory, devices). A distribution bundles the kernel with a package manager, shell, utilities, and sometimes a desktop — it's the complete usable OS. Ubuntu, Fedora, and Arch are all distributions built on the same Linux kernel.

Why do almost all containers (Docker) run Linux?

Containers are not VMs — they share the host's Linux kernel and use kernel features (namespaces for isolation, cgroups for resource limits) to create isolated environments. This is why Docker containers are Linux-native and why Docker Desktop on Mac/Windows runs a hidden Linux VM.

What is a shell, and how is it different from a terminal?

A shell is the command interpreter (program) — e.g., Bash, Zsh, Fish. A terminal (terminal emulator) is the window/application that hosts the shell — e.g., GNOME Terminal, iTerm2, Windows Terminal. The terminal provides the interface; the shell interprets your commands.

Why would you choose Alpine Linux for a Docker container over Ubuntu?

Alpine is ~5MB vs Ubuntu's ~75MB base image. Smaller images = faster pulls, less disk, smaller attack surface. Alpine uses musl libc (not glibc) and apk package manager. Trade-off: some software expects glibc, so Alpine can have compatibility issues.