Operating systems
An operating system is the collection of software that manages a computer's resources and acts as a layer between the firmware and application (i.e. user-facing) software.
How you as a user interact with the computer greatly depends on which operating system is running.
Common operating systems
| Name | Notes | Common usecases | Usage at TUM / LRZ |
|---|---|---|---|
| Linux | any operating system that uses the Linux kernel may refer to itself as "Linux", a popular one being "GNU/Linux" | servers, embedded / IoT devices, HPC clusters, personal computers | LRZ compute infrastructure |
| Windows | servers, personal computers | ||
| MacOS | personal computers | ||
| Android | based on a modified version of the Linux kernel | phones, tablets, embedded / IoT devices | |
| iOS | phones, tablets |
Linux distributions
A Linux distribution is an operating system that is built on top of the Linux kernel and includes a collection of components that shapes the user experience. These components might be a package manager, window manager, init system, network configuration software and further tools and utilities like office software. While there are thousands of Linux distributions, only a few are widespread in certain domains.
| Distribution | Notes | Common usecases | Usage at TUM / LRZ |
|---|---|---|---|
| Debian | slow release cycle, very stable | servers | webservers |
| Ubuntu | derived from Debian, LTS releases every 2 years | desktop computers, servers | |
| CentOS | EOL since 2024; was RHEL-compatible and long the dominant server distro in academia | servers (legacy) | |
| Scientific Linux | EOL since 2021; developed at CERN and Fermilab; historically the standard OS at many research institutes and HPC clusters | servers (legacy), HPC (legacy) | replaced by AlmaLinux / Rocky Linux at LRZ |
| AlmaLinux | community-maintained RHEL-compatible successor to CentOS | servers, HPC | LRZ compute nodes |
| Rocky Linux | second major community successor to CentOS; popular alternative to AlmaLinux at HPC centers | servers, HPC | |
| SUSE / openSUSE | enterprise-focused | enterprise servers, HPC | |
| Fedora | cutting-edge, upstream testing ground for RHEL; ~6 month release cycle | desktop computers | |
| Arch | rolling release cycle, highly customizable, requires manual setup | desktop computers, power users |
Shells
A shell executes commands you enter in a terminal in order to interact with the operating system. There are various shells that differ not in their overall capabilities but mostly in their syntax, default functions and tools they provide out of the box and ergonomics. Shells can be used interactively or as a scripting language.
- Bash: the default shell on most Linux and older MacOS systems.
- zsh: the default shell on MacOS. Very similar to bash in terms of syntax, but not fully compatible. A popular framework for plugins and customizations is oh my zsh.
- fish: less widespread but modern shell with a focus on user-friendliness and scripting.
- sh: not a shell per se, but a (minimalistic) programming language described by the POSIX standard. Typically
/bin/shis a symbolic link to an actual implementation of the language (which can be bash, as bash can be run in POSIX compliant mode). - PowerShell: the default shell on Microsoft Windows.
Find out which shell you are running with the command echo $0.
A shebang line is the first line of a shell script that indicates the shell in which the script is supposed to be run. It starts with #!, followed by the command to run the shell executable. This is #!/bin/bash for Bash or #!/usr/bin/zsh for zsh.