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.

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.