The Desktop Environment

The Desktop Environment

Concepts

What Is a Desktop Environment?

A desktop environment (DE) is the graphical interface that lets you interact with Linux using a mouse, windows, icons, and menus — similar to what you are used to on Windows or macOS. Unlike those systems, Linux lets you choose your desktop environment. The most common ones are:

Desktop Environment Style Resource Usage Used By Default In
GNOME Modern, minimal, activity-based Medium-high Ubuntu, Debian (default option), Fedora
KDE Plasma Feature-rich, Windows-like Medium Kubuntu, KDE Neon, Fedora KDE
XFCE Lightweight, traditional Low Xubuntu, MX Linux
Cinnamon Traditional, Windows-like Medium Linux Mint

Both Ubuntu 24.04 and Debian 12 use GNOME as the default desktop. Ubuntu ships a slightly customized version (orange theme, a dock on the left side). Debian ships a more “vanilla” GNOME.

[Read more]

The Kernel

The Kernel

Concepts

What Does the Kernel Do?

The kernel is the core of the operating system. It sits between hardware and user-space programs:

Applications (bash, firefox, python)
        │
        ▼
    System calls (open, read, write, fork, exec)
        │
        ▼
    ┌──────────────────────────────────┐
    │           Linux Kernel            │
    │  Process management               │
    │  Memory management                │
    │  Filesystem access                │
    │  Device drivers                   │
    │  Networking                       │
    │  Security / permissions           │
    └──────────────────────────────────┘
        │
        ▼
      Hardware (CPU, RAM, disk, network, GPU)

The kernel:

[Read more]

The Terminal

The Terminal

Concepts

Terminal, Shell, TTY — What Is What?

These three terms are related but distinct:

Terminal (or terminal emulator) — The window where you type commands. On a graphical desktop, it is an application like GNOME Terminal, Konsole, or xterm. It draws the window, handles fonts and colors, and sends your keystrokes to the shell.

Shell — The program that interprets your commands. When you type ls and press Enter, the shell reads that input, finds the ls program, runs it, and displays the output. The default shell on both Ubuntu and Debian is Bash (Bourne Again Shell). Other shells include zsh, fish, and dash.

[Read more]

tmux

tmux

Prerequisite — Terminal Multiplexing: Normally, if you close your terminal or lose your SSH connection, all processes in that terminal die. A terminal multiplexer like tmux solves this: it creates persistent sessions that survive disconnections. It also lets you split one terminal into multiple panes and windows. Think of tmux as a “window manager” for your terminal.

Concepts

What Is tmux?

tmux (terminal multiplexer) lets you:

  • Persist sessions: detach from a session and reattach later (even after disconnecting SSH)
  • Split the screen: multiple panes in one window
  • Multiple windows: like browser tabs for your terminal
  • Share sessions: multiple users can connect to the same session

Install tmux

sudo apt install -y tmux

tmux Hierarchy

Server
└── Session (named group of windows)
    ├── Window 0 (like a tab)
    │   ├── Pane 0
    │   └── Pane 1
    └── Window 1
        └── Pane 0

The Prefix Key

tmux commands start with a prefix key: Ctrl + b (press and release, then the next key).

[Read more]

Ubuntu and Debian

Ubuntu and Debian

Concepts

Debian: The Universal Operating System

Debian is one of the oldest Linux distributions, first released in 1993. It is entirely community-driven, meaning no single company controls it. The Debian Project is run by volunteers who elect a project leader and make decisions through consensus.

Key characteristics:

  • Stability above all. Debian stable releases are thoroughly tested. Packages are often older but extremely reliable. It just works (unless you fuck it up).
  • Release cycle. A new stable release comes out roughly every 2 years. Each release has a codename from Toy Story characters. Debian 12 is codenamed “Bookworm” (released June 2023).
  • Three branches:
    • Stable: production-ready, frozen packages, security updates only. This is what you install on a server or workstation where reliability matters.
    • Testing: next stable release in development. Packages are newer but may have bugs.
    • Unstable (Sid): rolling release, always receives the newest packages first. Named “Sid” (the kid who breaks toys in Toy Story) because things can and will break.
  • Minimal by default. Debian installs only what you ask for. The base system is lean. You are now in charge of the bloating department.
  • No proprietary software by default. The official repositories contain only free software. Non-free firmware and drivers are available in separate repositories (non-free and non-free-firmware).

Ubuntu: Linux for Human Beings

Ubuntu is based on Debian. It was created in 2004 by Canonical Ltd., a company founded by Mark Shuttleworth. Ubuntu takes Debian’s foundations and adds:

[Read more]