Linux distro components - linuxcsuf/linuxcsuf GitHub Wiki
Basics
A proper distribution (Live-only distros not included) includes
- a package manager
- one or more package repositories
- tailored configuration files
- documentation
- (optionally) one or more pre-configured Desktop Environments
Distros
- Major base distros and derivatives:
- Arch Linux
- Manjaro
- Debian
- Ubuntu
- Knoppix
- Fedora
- Red Hat Enterprise (commercial)
- CentOS (free rebuild of Red Hat Enterprise)
- Gentoo
- openSUSE
- SuSE Linux Enterprise (commercial)
- Slackware
- Arch Linux
Package philosophy
The Linux package paradigm is unlike those you may be familiar with: downloading software from random websites (Windows) or from "App Stores" (Mobile). All the components of the OS are individually packaged and dependent on other packages. Binary packages are uploaded to a central location and mirrored to participating trusted servers. Source packages are compiled and packaged locally from a provided text file "recipe" and downloaded source code.
Package manager overview
Tool set | Used in | Notes |
---|---|---|
apt-get | Debian family | Provides many features to handle dependency resolution. |
emerge | Gentoo family | Compiles everything from source based on a set of configurable flags called USE flags |
pacman | Arch Linux family | Very fast. It has a nice shell-based build system. |
pkgtools | Slackware family | Consists of shell scripts (installpkg, upgradepkg, removepkg) that use tar to extract software. There is no dependency resolution. |
yum | Red Hat Enterprise and clones | Python wrapper around rpm that can download packages from remote repos |
dnf | Fedora | A rewrite of yum that is supposedly faster |
Key points
Things to look for while distro hopping:
- Maintenance:
- package quality vs quantity
- stable == old and bleeding-edge == experimental
- can the package manager adapt to complex situations ?
- ease of building your own packages
- Upgrade path:
- rolling-release (incremental)
- upgrade-by-release (usually months)
- re-install required
- discontinued
- Documentation:
- chat
- forums
- release notes
- start guide
- wiki
GUI
Dependent on the vastness and variety of packages available in your distro's repos, you can change out individual components or switch to an entirely different desktop environment.
These Desktop Environments (DEs) often bundle together a Window Manager, Login/Display Manager, a dock/panel as well as applications (built with a specific GUI toolkit) such as a text editor, calculator, image viewer, video player, web browser, etc.
-
Popular Desktop Environments:
-
Common Window Managers:
-
Major GUI toolkits:
-
Popular Display Managers:
You can theme entire DEs or individual components: WMs, GUI toolkits, icon sets, mouse cursor, display manager, widgets (conky), etc.
- Display Servers: X.org's X11 (referred to as "X"), Wayland, and Canonical's Mir.
Timeline
Linux distribution timeline: here