How Linux Maps Hardware to Kernel Drivers
Use lspci, lsusb, lsmod, modinfo, and sysfs to identify bound, loaded, built-in, and missing Linux drivers, then trace probe failures with confidence.
Use lspci, lsusb, lsmod, modinfo, and sysfs to identify bound, loaded, built-in, and missing Linux drivers, then trace probe failures with confidence.
The linux-surface kernel makes Surface Book hardware work on Linux. Learn which patches you need, how to verify installation, and what still breaks.
apt autoremove only removes auto-installed kernels. Learn why manual installs, held packages, and the running kernel stay behind, and how to safely purge them.
A kernel panic stops Linux when recovery is unsafe. Learn to read its messages and trace faults to drivers, hardware, storage, or boot files.
SIGUSR1 defaults to terminating processes with no core dump. Learn why POSIX chose this behavior, how to install handlers, and debug unexpected signal deaths.
File descriptors are per-process integers that index into a three-layer table structure. Learn how the kernel connects descriptors to open files and inodes.
Linux processes cycle through R, S, D, and T states. Learn to read /proc, use strace, and diagnose stuck tasks without guessing or killing blindly.
eBPF portability depends on the target kernel, not just the CPU. This guide covers clang, libbpf, CO-RE, BTF, verifier checks, and ARM loading.
Have you ever wondered how a user program actually reaches the kernel to do privileged work? I set the goal for this tutorial: show how a program crosses the CPU boundary, what the kernel does next, and how you can verify behavior with tracing tools. I explain what you will be able to do by […]
The right eBPF hooks expose plaintext on tun0 or wg0 and ciphertext on the NIC, with practical guidance on correlation, probes, and failure diagnosis.
Build an eBPF XDP program that stops SYN floods at the NIC driver with per-IP rate limiting, hash maps, and line-rate packet drops before the kernel stack.
CVE-2013-6282 has been patched in upstream kernels for over a decade. Learn why scanners still flag it and how to confirm your system is actually fixed.
Load and attach XDP programs to network interfaces using bpftool and ip link pinned syntax. Master the two-step process: pin first, then attach to eth0.
GPL-2.0 governs the Linux kernel. Find the authoritative license text in COPYING and LICENSES/preferred/GPL-2.0, plus what compliance actually requires.
Live patching fixes CVEs in place without rebooting, but kernel version upgrades need kexec or a restart. Learn which tool solves your actual problem.
Kernel times show OS overhead on your CPU. Learn what drives them high, how to spot driver problems in Task Manager, and the tools to diagnose the real culprit.
The Linux kernel’s journey from 0.01 to 7.X puts modern release strings in context, with commands for checking the version actually running on Ubuntu.
Set up automatic Linux kernel upgrades safely with unattended-upgrades or live patching. Learn when to automate, how to verify updates, and rollback strategies.
Stop looking for CONFIG_HAVE_EBPF_JIT in menuconfig. Stop looking for CONFIG HAVE EBPF JIT in menuconfig. It describes a marker, not a feature you switch on.
LKML is where kernel patches get reviewed and merged. Learn to search lore.kernel.org, report bugs correctly, and follow threads to actual fixes.
Master kernel modules with lsmod, modprobe, and dmesg. Learn to load drivers, manage dependencies, and fix load failures without rebooting your system.
Update your Linux kernel using apt, dnf, pacman, or zypper depending on your distribution. Learn the right command and why rebooting matters.
poll() works for small file descriptor sets with POSIX compatibility; switch to epoll at scale. Learn when each syscall fits and common pitfalls to avoid.