Table of Contents
Kernel
The kernel kernel is stored in boot:
- /boot/vmlinuz - kernel image
- /boot/config - configuration
- /boot/system.map - symbols table
The kernel modules are stored in /lib/modules:
- /lib/modules/
Every distribution includes the LInux Kernel.
Linux Components
- Kernel
- executable
- kernel modules
- User space
- coreutils package contains GNU software, things like mv, ls, rm, etc
- Desktop environment
- not needed for servers
- optional for workstations
- gnome, kde, etc
The kernel source code lives in the linux repository at github owned by Linus Torvalds. https://github.com/torvalds
Official releases are hosted at https://www.kernel.org/
There are four different levels of release
- longterm - once a year, last one 5.4 on 2019-11-24, EOL Dec 2025
- stable
- mainline
- prepatch
Each distribution vendor maintains its own set of releases. The kernel release number has two parts, before and after the dash. The part after the dash is added by the distribution vendor.
$ uname -r # show distribution kernel release number 5.4.0-45-generic
If kernel release number is 5.4.0-45-generic, then
- 5.4.0-45-generic is the release per Ubuntu
- 5.4.0 is the release per the kernel developers used as starting point by Ubuntu
5.4.63 is the latest longterm maintenance release from the developers as of 2020 Sep 5
Hardware to Software
The purpose of the kernel is to make the bridge between hardware and software.
Resources, devices, virtual devices
- CPU
- memory
- disk I/O
- network
Interface
kernel API https://www.kernel.org/doc/htmldocs/kernel-api/index.html
System Calls The Linux API cross over from user space to kernel space using software interrupts or traps userspace programs call kernel functions
Library Calls glibc - the GNU C library
Commands Programs the a human user can execute.
reverse, graphic, top level command, bottom level kernel api exec, read, kill, cp, ls, sh