(Usage hints for this presentation)
IT Systems, Summer Term 2025
Dr. Jens Lechtenbörger (License Information)
Explore abstractions bottom-up
Computer Architecture: Build computer from logic gates
CPU (ALU), RAM, I/O
Use GNU/Linux command line and explore system
“Tux, the Linux mascot” under CC0 1.0; from Wikimedia Commons
Experiment with containerization for cloud infrastructures
Build images, run Docker containers and Kubernetes cluster
“Kubernetes logo” under Kubernetes Branding Guidelines; from GitHub
“Docker logo” under Docker Brand Guidelines; from Docker
What does your OS even do?
Figure © 2016 Julia Evans, all rights reserved; from julia's drawings. Displayed here with personal permission.
“Figure 1.1 of (Hailperin 2019)” by Max Hailperin under CC BY-SA 3.0; converted from GitHub
Functionalities include:
Support for multiple concurrent computations
Control interactions between concurrent computations
Files for persistent storage and interaction
Typically, also networking support
“Figure 1.1 of (Hailperin 2019)” by Max Hailperin under CC BY-SA 3.0; converted from GitHub
Boundary between OS and applications is fuzzy
Kernel is fundamental, core part of OS
User interface (UI; not part of kernel)
How to talk to your operating system
Figure © 2016 Julia Evans, all rights reserved; from julia's drawings. Displayed here with personal permission.
Machine instruction set restricted depending on level
“User space vs. kernel space” © 2016 Julia Evans, all rights reserved; from julia's drawings. Displayed here with personal permission.
This map of the Linux kernel provides a real-life monolithic example
Fundamental OS service: Multitasking
OS supports multitasking via scheduling
Multitasking introduces concurrency
Various technical terms for “computations”: Jobs, tasks, processes, threads, …
Process
Thread
Threads!
Figure © 2016 Julia Evans, all rights reserved; from julia's drawings. Displayed here with personal permission.
What's in a process?
Figure © 2016 Julia Evans, all rights reserved; from julia's drawings. Displayed here with personal permission.
Single program may create multiple processes, e.g.:
about:processes
into address barMany-to-many relationship between “programs” and processes
Classification of Processes and Threads from Anderson et al. (1997)
Sort sample OSs into the quadrants of Anderson et al.
grep
, head
, tail
)git clone https://github.com/veltman/clmystery.git
/proc
for
later presentations)
mount
to show filesystems, e.g., with Cygwin, the location
of C:
may be shown as /cygdrive/c
ls
(short for “list”) to view contents of current directoryls /cygdrive/c
to view contents of given directory (if
it exists)pwd
(short for “print working directory”) to print name of
current directorycd replace-this-with-name-of-directory-of-mystery
(short
for “change directory”) to change directory to chosen
location, e.g., location of mystery’s filesman name-of-command
shows manual page for name-of-command
man man
first, then man ls
Source files are available on GitLab (check out embedded submodules) under free licenses. Icons of custom controls are by @fontawesome, released under CC BY 4.0.
Except where otherwise noted, the work “OS Introduction”, © 2017-2025 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.