Slide 1

Slide 1 text

A Short Tour of Linux Distributions Open Source 101, February 2017 Tyler Langlois Infrastructure Engineer, Elastic

Slide 2

Slide 2 text

$ whois tylerjl ● Infrastructure engineering/devops at Elastic ○ Operations and software dev ● Other pursuits ○ Linux package maintainer, functional programming, raspberry pi wrangler, automation normal person

Slide 3

Slide 3 text

Who is This For? ● What’s a distribution? ● How are they different? ● Which should I choose? ● How should I choose? ● What’s happening in the distro landscape?

Slide 4

Slide 4 text

Stay With Me, Here

Slide 5

Slide 5 text

What’s a distribution? Version 10 8 7 Vista … Version Sierra El Capitan Yosemite ....

Slide 6

Slide 6 text

What’s a distribution? Distribution

Slide 7

Slide 7 text

What’s a distribution? Distribution Stable Testing Unstable (Sid) Version Jessie (8) Wheezy (7) …

Slide 8

Slide 8 text

What’s a distribution? kernel Licensing Technology choices systemd rpm dpkg openrc Community GNU utilities

Slide 9

Slide 9 text

What’s a distribution? Technology choices Package management ● apt, yum , pacman, portage Init system ● SysV, Upstart, systemd Other ● Desktop Environment ○ Gnome, KDE, xfce ● Defaults ○ filesystem, kernel patchsets ● Installer

Slide 10

Slide 10 text

What’s a distribution? Technology choices: Package Management build $ conky ???

Slide 11

Slide 11 text

What’s a distribution? Technology choices: Package Management $ apt install conky $ conky $ yum install conky $ conky $ pacman -S conky $ conky

Slide 12

Slide 12 text

What’s a distribution? Technology choices: Package Management ● dpkg ○ Debian and all derivatives ○ .deb packages widely available ○ apt (formerly apt-get) CLI utility ● Features of note ○ dist-upgrade for easier major version updates ○ Ubuntu-created PPAs for small, third-party repos $ apt update $ apt upgrade $ apt search conky $ apt install conky

Slide 13

Slide 13 text

What’s a distribution? Technology choices: Package Management ● rpm ○ Red Hat derivatives ○ .rpm shipped alongside .deb ○ yum, dnf most commonly used ● Features of note ○ Plugins like deltarpm improve performance ○ dnf next-gen yum replacement $ yum update $ yum search conky $ yum install conky

Slide 14

Slide 14 text

What’s a distribution? Technology choices: Init Systems openrc sysv s6 upstart runit systemd

Slide 15

Slide 15 text

Distributions: Overview .rpm .deb

Slide 16

Slide 16 text

Distributions: Overview Root distributions Derivatives + more! + more! deb rpm

Slide 17

Slide 17 text

Debian Vital stats ● Governance ○ Community/constitution ● Tech ○ dpkg / apt / systemd ● Notes ○ Stability, open source ○ Bedrock for many .deb based distributions

Slide 18

Slide 18 text

Debian Use Cases ● Rock-solid foundation for other projects (raspbian, Ubuntu, others) ● Stable branch is extremely stable, most users rely on testing/unstable ● No “flavors” of Debian per se, but equally capable for many roles ● Predictable cycle, stable releases are easy to test beforehand

Slide 19

Slide 19 text

Ubuntu Vital stats ● Governance ○ Supported by Canonical ● Tech ○ dpkg / apt / systemd ● Notes ○ userbase, widespread adoption ○ Regular release cycle

Slide 20

Slide 20 text

Ubuntu

Slide 21

Slide 21 text

Use Cases ● Often the default choice for users who need general purpose distro ● For more specific purposes, Canonical ships more tuned releases ● Focus on user-friendly installation and experience ● Set-in-stone release cycle means predictable releases (+LTS) Ubuntu

Slide 22

Slide 22 text

Linux Mint Vital stats ● Governance ○ Community distribution ● Notes ○ Very closely related to Ubuntu ○ Customized user interface and desktop experience ○ Ease-of-use and user friendliness

Slide 23

Slide 23 text

Fedora Vital stats ● Governance ○ Community, sponsored by Red Hat ● Package management ○ rpm / dnf / systemd ● Notes ○ Strictly OSS ○ Cutting edge software ○ Spins

Slide 24

Slide 24 text

RHEL Vital stats ● Governance ○ Red Hat, Inc. ● Package management ○ rpm / yum / systemd ● Notes ○ Enterprise-grade & industrial strength ○ Certifications & compliance ○ Commercial support

Slide 25

Slide 25 text

CentOS Vital stats ● Governance ○ Community-driven, blessed by Red Hat ● Notes ○ It’s RHEL, but rebranded + free ○ Common base (for example, Amazon Linux)

Slide 26

Slide 26 text

openSuSE + SLES Vital stats ● Governance ○ Commercial (SuSE) ● Tech ○ zypper / rpm / systemd ● Notes ○ OSS distro (openSuSE) and Enterprise (SLES) ○ Useful tools (YAST, btrfs)

Slide 27

Slide 27 text

...and so many more

Slide 28

Slide 28 text

The “Other” Distros

Slide 29

Slide 29 text

● Most off-brand distributions are tuned to a specific use case ● All the exciting evolution happens at the fringes! What’s the Distinction? ● Nearly all distros branch off dpkg/rpm ● Package managers outside the norm grow a whole new ecosystem

Slide 30

Slide 30 text

Arch Vital stats ● Governance ○ Community of trusted users ● Tech ○ pacman / systemd ● Notes ○ Simplicity ○ Vanilla software ○ Bleeding edge

Slide 31

Slide 31 text

Use Cases ● pacman == yum == apt ● AUR is community-managed package repository ● Rolling updates means there are no “versions” of Arch ● Vanilla package a good base for derivative distributions ● Often a good choice if latest software is always needed Arch

Slide 32

Slide 32 text

NixOS Vital stats ● Governance ○ Community (GitHub) ● Tech ○ nix / systemd ● Hallmarks ○ Declarative config ○ Atomic upgrades $ cat configuration.nix { virtualisation.docker.enable = true; } $ nixos-rebuild switch

Slide 33

Slide 33 text

Gentoo Vital stats ● Governance ○ Community ● Tech ○ emerge / portage / openrc ● Hallmarks ○ From-source distro ○ Simplicity has spawned some other distros (including ChromeOS)

Slide 34

Slide 34 text

Slackware Vital stats ● Governance ○ Community ● Tech ○ tarballs / BSD-SysV init ● Hallmarks ○ Oldest distribution still maintained ○ Simple package management

Slide 35

Slide 35 text

Which Distro?

Slide 36

Slide 36 text

Which Distro? Points to consider ● Stability versus latest features ○ Solid reliability takes years, it’s a tradeoff ○ Time-tested package managers (rpm, deb) are a safe bet ○ Users have a nice spectrum of latest-shipping distros (i.e., CentOS -> Fedora -> Arch) ○ Know your (eventual) upgrade plan (CentOS 6 -> 7???)

Slide 37

Slide 37 text

Which Distro? Points to consider ● Stability versus latest features ● Machine use case ○ Servers ■ Stability, consistency, support considerations ■ CentOS, RHEL, Debian, Ubuntu LTS ○ Desktop ■ Graphics drivers, wireless drivers, etc. ○ Special-case ■ Kali, Vyatta, Raspbian, etc.

Slide 38

Slide 38 text

Which Distro? Points to consider ● Stability versus latest features ● Machine use case ● Technology decisions ○ systemd-ocalypse ○ Preferred desktop environment ○ Defaults (filesystem, bootloader, and so on) ○ Kernel choices

Slide 39

Slide 39 text

Which Distro? Points to consider ● Stability versus latest features ● Machine use case ● Technology decisions ● OSS versus commercial ○ How comfortable are you with a) community support, b) commercial support, c) do-it-yourself? ○ Licensing: are you compliant? ○ Free as in beer ≠ free as in speech

Slide 40

Slide 40 text

The Future

Slide 41

Slide 41 text

The Future ● btrfs and ZFS on Linux ○ btrfs ■ Native Linux filesystem ■ Rapidly stabilizing ○ ZFS ■ Adapted from Solaris ■ Long history ○ Copy-on-write ○ Online scrubbing ○ Snapshots Filesystems file.txt file.txt file.txt sda sdb pool

Slide 42

Slide 42 text

The Future Distribution ● OSTree ○ Swap running operating system with new image ○ Similar strategy used in CoreOS ○ Experimental progress in Fedora v1 v2 /root

Slide 43

Slide 43 text

The Future Distribution Source: https://sourcediver.org/blog/2017/01/18/distributing-nixos-with-ipfs-part-1/

Slide 44

Slide 44 text

The Future ● Wayland / Mir ○ Replacements for the venerable XFree86 / X.org ● Snappy ○ Ubuntu’s new packaging format ● dnf ○ Red Hat-based distribution next-gen yum ● Kernel ○ Live patching New Core Components

Slide 45

Slide 45 text

Questions?

Slide 46

Slide 46 text

Thank You! ● GitHub ○ tylerjl ● IRC, Twitter ○ leothrix ● tjll.net ● Check out “Open Source Developer’s Toolbox” later today