Linux crash course

What is Linux

  • Free and open source operating system
    • Licensed under the GNU GPL v2.0
  • The focus of this class

Where is Linux

  • All top performing supercomputers
  • Most embedded systems
  • Android phones
  • Almost all of the computers powering the internet
  • Not many desktop systems
    • Unless you count chromebooks
  • On, freely available

Who is Linux

  • Linus Torvalds
    • Created the Linux Kernel in 1991 while studying CS at the University of Helsinki as a personal project
    • Originally he supported only his own hardware.
    • “it probably never will support anything other than AT-harddisks, as that's all I have” [0]
    • Also eventually created git to act as the VCS for the kernel
  • Open source community project
    • Thousands of individual contributors
    • Corporate sponsors (including Red Hat)
    • The Linux Foundation

Why use Linux

  • Free software (free as in free speech)
    • No spying, telemetry, adware etc in most mainstream distributions
    • Can inspect and change the code as you please
  • Fully customizable
    • Different choices for things like desktop environments, GUI programs, etc
  • Can run on less powerful computers


  • An OS made from many interchangeable components
  • Kernel a (relatively) small piece
  • Distro <=~=> Dependency graph
  • Desktop environment
  • Package manager
  • Default Applications

Distro vs Distro

  • Difference in package naming conventions
    • libfoo-dev (apt) vs libfoo-devel (dnf)
  • Difference in filesystem layout
    • Configs in different directories
    • /boot/efi/config.txt vs /boot/config.txt
  • Difference in philosophy

Do anything, but by hand

archlinux logo

Open Source Software as a Service

rhel logo


ubuntu logo

Exclusively Open Source

fedora logo

System Stack Overview

system stack diagram


  • Grub
    grub menu



C Standard Library

  • Syscall wrappers
    • man 2 vs man 3
      slide 15

Shared Libraries

  • Some examples
    slide 16

Storage Layout

storage layout

File system layout (See FHS)

  • / → root of file system
  • /root → home folder for root account
  • /bin → command binaries
  • /boot → boot loader files e.g kernel, grub
  • /dev → device files e.g sense-hat
  • /proc → information about running processes
  • /etc → configuration files
  • /home → location of users’ home folders
  • /lib → libraries

System Stack Overview

system stack diagram

The future

Where will linux go from here?