Kickoff
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
kernel.org
, 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
Modularity
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
source
Open Source Software as a Service
source
Beginner-friendlyish
source
Exclusively Open Source
source
System Stack Overview
Bootloader
Grub
Kernel
C Standard Library
Syscall wrappers
man 2 vs man 3
Shared Libraries
Some examples
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
The future
Where will linux go from here?