(Usage hints for this presentation)
IT Systems, Summer Term 2024
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 cite:Hai17” 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 cite:Hai17” 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.
Monolith-, Micro- and a "hybrid" kernel
Figure under CC0 1.0; from Wikimedia Commons
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-2024 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.