Der Kernel kontrolliert die Hardware und bietet den Anwendungsprogrammen abstrakte Schnittstellen in Form von Gerätedateien. Man unterscheidet Block- und Stromgeräte. Blockgeräte (wie zum Beispiel die Festplatte und der Arbeitsspeicher) erlauben Lese- und Schreibzugriffe an jeder Position (Random Access. Stromgeräte (wie zum Beispiel die Tastatur oder eine Netzwerkverbindung) hingegen erlauben nur sequentielles Lesen und/oder Schreiben.
| Eingabe | Grafik | Audio | Dateisystem | Netzwerk | Speicher | Prozess | |
| Anwendung | libevdev | libdrm | libalsa | libc | |||
|---|---|---|---|---|---|---|---|
| Gerät | /dev/input | /dev/dri | /dev/snd | /dev/disk | /dev/net | /dev/mem | /dev/cpu | 
| Kernel-API | EVDEV | DRM | ALSA | VFS | NET | MM | PM | 
| Bus | USB | PCI | PCI | SCSI, SATA, IDE | MMU, RAM | CPU | |
| Treiber | xHCI | GT3e | ALC233 | AHCI | CNVi | SRAM | Intel i3-8109U | 
| Peripherie | Tastatur, Maus | Bildschirm | Headset | Festplatte | Ethernet, WiFi | Speicher | Prozessor | 
Der Bootlader teilt dem Kernel über eine Kommandozeile mit,
		wo er die Initiale Ramdisk und das Wurzeldateisystem findet
		und welchen Prozess er als erstes im Benutzermodus ausführt.
		Auch Programme auf der Anwendungsschicht, wie zum Beispiel
		systemd und plymouth, lesen für sie
		bestimmte Parameter aus.
cat /proc/cmdline initrd=\58a1af54a6c1458ca2a4655aa1bf9a38\6.1.0-30-amd64\initrd.img-6.1.0-30-amd64 root=/dev/mapper/vg-root ro quiet splash
| Parameter | Vorgabe | Beispiel | Beschreibung | 
|---|---|---|---|
| acpi | on | off | ACPI | 
| apic | quiet | verbose | APIC | 
| console | tty0 | ttyUSB0 | Gerät für Systemkonsole | 
| debug | Fehlersuchmodus | ||
| efi | - | nochunk | EFI Einstellungen | 
| enforcing | 0 | 1 | SELINUX aktivieren | 
| gpt | GPT-Sicherungskopie verwenden | ||
| hd | C,H,S | 1023,255,63 | CHS-Adressierung | 
| init | /sbin/init | /bin/bash | Pfad zum Startprozess | 
| initrd | \initrd.img | Pfad zur Initialen Ramdisk | |
| loglevel | 4 | 7 | Meldungen auf Systemkonsole ausgeben | 
| nfsroot | /tftpboot/%s | 10.0.0.7:/root | Wurzeldateisystem für Rechner ohne Festplatte | 
| root | /dev/sda2 | Pfad zum Wurzeldateisystem | |
| rootwait | Warte auf den Datenträger | 
| force | enable ACPI if default was off | 
| on | enable ACPI but allow fallback to DT [arm64] | 
| off | disable ACPI if default was on | 
| noirq | do not use ACPI for IRQ routing | 
| strict | Be less tolerant of platforms that are not strictly ACPI specification compliant. | 
| rsdt | prefer RSDT over (default) XSDT | 
| copy_dsdt | copy DSDT to memory | 
| quiet | |
| verbose | |
| debug | 
| ttyN Use the virtual console device. | Virtuelle Konsole | 
| ttySN[,Optionen] | Serielle Konsole | 
| ttyUSB0[,Optionen] | USB Schnittstelle | 
| uart[8250],[mm]io{16,32},Adresse[,Optionen] | UART Serielle Schnittstelle | 
| hvcN | Hypervisor, z.B. Xen und PowerPC | 
| old_map | switch to the old ioremap-based EFI runtime services mapping. 32-bit still uses this one by default. | 
| nochunk | disable reading files in "chunks" in the EFI boot stub, as chunking can cause problems with some firmware implementations. | 
| noruntime | disable EFI runtime services support | 
| debug | enable misc debug output | 
| 0 | Protokollieren | 
| 1 | Durchsetzen | 
| C | Cylinders | 
| H | Heads | 
| S | Sectors | 
| 0 | KERN_EMERG | Systemausfall | 
| 1 | KERN_ALERT | Aktion nötig | 
| 2 | KERN_CRIT | Kritischer Zustand | 
| 3 | KERN_ERR | Fehler | 
| 4 | KERN_WARNING | Warnung | 
| 5 | KERN_NOTICE | Wichtig | 
| 6 | KERN_INFO | Information | 
| 7 | KERN_DEBUG | Fehlersuche | 
Der Kernel meldet den Anschluss und die Entfernung
		von Geräten, sogenannte Hotplug-Ereignisse, per
		netlink(7)-Sockel an den
		udev(7)-Daemon. Dieser legt Gerätedateien unter
		/dev an und informiert den
		dbus-daemon(1). Der
		upowerd(8) überwacht den Batteristatus und der
		udisksd(8) montiert Wechseldatenträger.
		So kann zum Beispiel die grafische Oberfläche beim Einstecken eines
		USB-Geräts
		ein Symbol auf der Arbeitsfläche anzeigen.
| Programm | Kommando | Operand | Beschreibung | 
|---|---|---|---|
| udevadm | help | Hilfe anzeigen | |
| info | /dev/... | Geräteinformationen aus Datenbank | |
| trigger | /dev/... | Ereignisse vom Kernel anfragen | |
| settle | Auf anstehendes Ereignis warten | ||
| control | Daemon steuern | ||
| monitor | Ereignisse beobachten | ||
| test | Ereignis auslösen | ||
| test-builtin | Kommando auslösen | ||
| udisksctl | help | Hilfe anzeigen | |
| status | Liste aller Geräte | ||
| info | -b /dev/... | Eigenschaften eines Geräts | |
| dump | Eigenschaften aller Geräte | ||
| monitor | Ereignisse beobachten | ||
| mount | Dateisystem montieren | ||
| unmount | Dateisystem entfernen | ||
| unlock | Verschlüsseltes Gerät entsperren | ||
| lock | Verschlüsseltes Gerät sperren | ||
| loop-setup | Schleifengerät einrichten | ||
| loop-delete | Schleifengerät entfernen | ||
| power-off | Gerät ausschalten | ||
| smart-simulate | SMART Werte simulieren | ||
| busctl | help | Hilfe anzeigen | |
| list | Registrierte Namen auflisten | ||
| status | [Service] | Eigenschaften eines Dienstes anzeigen | |
| monitor | [Service …] | Nachrichten eines Dienstes beobachten | |
| capture | [Service …] | Nachrichten im pcap-Format aufzeichnen | |
| tree | [Service …] | Baumstruktur eines Dienstes anzeigen | |
| introspect | Service Object [Interface] | ||
| call | Service Object Interface Method [Signature [Argument …]] | ||
| set-property | Service Object Interface Property Signature Argument … | ||
| get-property | Service Object Interface Property ... | ||
Beispiel
busctl tree org.freedesktop.UPower
└─/org
  └─/org/freedesktop
    └─/org/freedesktop/UPower
      ├─/org/freedesktop/UPower/KbdBacklight
      ├─/org/freedesktop/UPower/Wakeups
      └─/org/freedesktop/UPower/devices
        ├─/org/freedesktop/UPower/devices/DisplayDevice
        ├─/org/freedesktop/UPower/devices/battery_BAT0
        └─/org/freedesktop/UPower/devices/line_power_AC
		Ein Namensraum isoliert die Ressourcen, die ein Prozess und seine Kindprozesse sehen. Mit dieser Technik werden unter anderem Container umgesetzt.
mntpidnetipcutsusercgrouptimeEine Kontrollgruppe beschränkt den Ressourcenverbrauch einer Gruppe von Prozessen bezüglich folgende Aspekte:
blkiocpucpuacctcpusetdevicesmknod und open)freezerhugetlbmemorynet_clsnet_prioperf_eventDas Paket cgroup-tools enthält Programme zum
		Anzeigen lscgroup(1),
		Erzeugen cgcreate(1),
		Ausführen cgexec(1) und
		Löschen cgdelete(1) von Kontrollgruppen.
		Systemd erzeugt ebenfalls Kontrollgruppen für Daemonen und Sitzungen.
		Diese lassen sich mit systemd-cgls(1) auflisten
		oder mit systemd-cgtop(1) beobachten.
		Selbst ps(1) kann die Kontrollgruppe anzeigen.
alias psc='ps xawf -eo pid,user,cgroup,args'
Capabilities
		schränken die Rechte von privilegierten Prozessen ein. Das im Paket
		libcap-ng-utils enthaltene Kommando
		pscap(8) zeigt alle Capabilities an.
		Dokumentation siehe capabilities(7).
audit_controlaudit_readaudit_writeblock_suspendbpfcheckpoint_restorechowndac_overridedac_read_searchfownerfsetidipc_lockipc_ownerkillleaselinux_immutablemac_adminmac_overridemknodnet_adminnet_bind_servicenet_broadcastnet_rawperfmonsetgidsetuidsetfcapsetpcapsys_adminsys_bootsys_chrootsys_modulesys_nicesys_pacctsys_ptracesys_rawiosys_resourcesys_timesys_tty_configsyslogFür besonders neue Hardware braucht man manchmal einen aktuellen Kernel. Dann nehmen wir die Sache selbst in die Hand und installieren zuerst Compiler, Werkzeuge und Bibliotheken.
apt install build-essential flex bison lib{elf,ssl,ncurses}-dev
		Quellen herunterladen, entpacken, konfigurieren, übersetzen und installieren.
url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git curl $url/snapshot/linux-6.2-rc6.tar.gz tar xzf linux-6.2-rc6.tar.gz make nconfig make clean make bindeb-pkg apt install ../linux-image-*.deb