Chapter 01Lesson 01~35 minutes

What Is Linux and Why DevOps Engineers Need It?

Linux is the operating foundation underneath most cloud workloads, container hosts, CI runners, network appliances, and modern infrastructure platforms. This lesson builds the mental model you need before learning commands.

BeginnerConceptsHands-on lab

Learning objectives

By the end of this lesson

  • Distinguish the Linux kernel from a complete Linux distribution.
  • Explain how shells, utilities, services, and the filesystem surround the kernel.
  • Identify where Linux appears in a typical DevOps delivery system.
  • Run a small set of safe inspection commands and interpret their output.
  • Choose a practical Linux lab environment for the rest of the course.

1. Linux is a kernel—and an ecosystem

Strictly speaking, Linux is the kernel: the privileged core that manages CPU time, memory, devices, processes, filesystems, networking, and security boundaries. In everyday engineering language, “Linux” usually means a complete operating system assembled around that kernel.

Kernel

Controls hardware and isolation

Schedules processes, allocates memory, exposes system calls, drives devices, and enforces low-level boundaries.

User space

Provides usable programs

Shells, utilities, libraries, service managers, package managers, compilers, and applications run outside the kernel.

Distribution

Packages the system

Ubuntu, Debian, Fedora, Rocky Linux, and others combine the kernel with selected tools, repositories, defaults, and support policies.

A practical Linux system model
flowchart TB
  U["Users and automation"] --> S["Shells, APIs, and applications"]
  S --> T["System tools, libraries, and services"]
  T --> K["Linux kernel"]
  K --> H["CPU, memory, disks, network, and devices"]
  P["Distribution packages and policies"] -. assemble .-> S
  P -. assemble .-> T
  P -. configure .-> K
Important distinction

Bash is not Linux, Ubuntu is not the kernel, and a terminal is not a shell. They cooperate, but each is a different layer.

2. Why Linux is foundational to DevOps

DevOps work crosses development, delivery, infrastructure, security, and operations. Linux appears at nearly every boundary:

01Source and build

Git servers, build agents, package builders, and artifact services commonly run on Linux.

02Containers

Linux namespaces, control groups, capabilities, and filesystems provide the isolation model behind Linux containers.

03Orchestration

Kubernetes nodes, controllers, networking components, and storage plugins are predominantly operated on Linux.

04Cloud and production

Virtual machines, web servers, databases, proxies, monitoring agents, and security tools are frequently Linux services.

05Incident response

Logs, process state, network sockets, resource pressure, permissions, and service health are inspected through Linux interfaces.

You do not need to memorize every command. You need a repeatable operating method: inspect state → form a hypothesis → make one controlled change → verify the result → preserve evidence.

3. The anatomy of a Linux environment

ComponentPurposeExamples
KernelResource management and hardware abstractionuname, /proc, /sys
ShellCommand interpreter and scripting languagebash, zsh, sh
Core utilitiesFile, text, process, and system operationsls, cp, grep, ps
Init/service managerBoots and supervises long-running servicessystemd, systemctl
Package managerInstalls trusted, versioned softwareapt, dnf, rpm
DistributionIntegrates packages, defaults, lifecycle, and repositoriesUbuntu, Debian, Fedora

4. Your first inspection commands

These commands are intentionally read-only. They establish identity, environment, kernel, distribution, location, and filesystem context.

# Who am I and where am I?
whoami
id
pwd

# Which kernel and operating-system release am I using?
uname -a
cat /etc/os-release

# Which shell is running, and what is available here?
printf 'Configured login shell: %s\n' "$SHELL"
ps -p $$ -o pid,ppid,comm,args

# What is in the current directory?
ls -lah

Interpret the output, do not merely collect it

  • whoami prints the effective username.
  • id shows numeric identity, primary group, and supplementary groups.
  • uname -a describes the running kernel—not necessarily the distribution release.
  • /etc/os-release identifies the distribution and version in a machine-readable format.
  • ps -p $$ inspects the process represented by the current shell’s process ID.
Operational habit

Before copying a command from a tutorial, understand whether it reads state, changes state, requires elevated privileges, or can delete data.

5. Hands-on lab: produce a Linux environment report

Create a directory for course labs, capture a small environment report, and review it. The lab uses no elevated privileges.

mkdir -p "$HOME/devops-academy/linux/chapter01/lesson01"
cd "$HOME/devops-academy/linux/chapter01/lesson01"

{
  printf '=== identity ===\n'
  whoami
  id

  printf '\n=== kernel ===\n'
  uname -a

  printf '\n=== distribution ===\n'
  cat /etc/os-release

  printf '\n=== shell process ===\n'
  ps -p $$ -o pid,ppid,comm,args

  printf '\n=== location ===\n'
  pwd
} > environment-report.txt

less environment-report.txt

Verification checklist

The output redirection operator > creates or replaces the report file. Later lessons will cover streams, redirection, permissions, and safe scripting in detail.

6. Choose your course lab environment

Recommended

Ubuntu LTS virtual machine

Best isolation and the clearest complete-system experience. Snapshots make destructive experiments recoverable.

Windows-friendly

WSL 2

Fast and practical for command-line learning. Some boot, kernel, network, and service behavior differs from a conventional VM.

Temporary

Container shell

Excellent for disposable command practice, but not a substitute for learning boot, systemd, storage, and full host administration.

Later

Cloud virtual machine

Useful for SSH and internet-facing labs, but requires billing awareness, firewall discipline, and reliable cleanup.

7. Common beginner misconceptions

“Linux means Ubuntu.”

Ubuntu is one distribution. Skills should transfer across distributions, while package managers and defaults may differ.

“The terminal is Bash.”

A terminal displays input and output. Bash is a shell process running inside it.

“sudo fixes permission errors.”

Blind elevation can hide ownership mistakes and create root-owned files. Diagnose the permission model first.

“Containers remove the need for Linux.”

Containers expose Linux concepts more directly: namespaces, cgroups, filesystems, signals, users, and networking still matter.

8. Knowledge check

Question 1. What is the difference between the Linux kernel and a distribution?

Question 2. Which command is better for identifying the distribution: uname -a or cat /etc/os-release?

Question 3. Why should a DevOps engineer learn Linux even when using managed cloud services?

9. Summary

Linux is the operating foundation of much of the DevOps ecosystem. The kernel manages resources and isolation; distributions assemble a complete system; shells and utilities expose that system to humans and automation. Your goal is not command memorization—it is disciplined observation, controlled change, verification, and recovery.

Next lesson

The Linux Kernel, User Space, and GNU Tooling

The next lesson will trace a command from the shell through libraries and system calls into the kernel.

10. Further reading

  • The Linux Kernel documentation — architecture and subsystem references.
  • The Linux man-pages project — system calls, library functions, commands, and file formats.
  • Filesystem Hierarchy Standard — conventional Linux directory structure.
  • GNU Bash Reference Manual — shell language and interactive behavior.
  • systemd documentation — boot, services, logging, and system management.

Keep the academy open

Support free, practical DevOps education.

Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.

Ethereum / ERC-20
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0 Send only Ethereum/ERC-20 compatible assets to this address.