Linux Kernel Development Workflow: Testing Changes in a Virtual Machine

I think we can all agree that the faster a code-compile-test development cycle is, the better. Working on an operating system kernel like Linux throws a bit of a wrench in the development cycle that most of us are used to simply because Linux expects to be driving some hardware! This means that the kernel … Continue reading Linux Kernel Development Workflow: Testing Changes in a Virtual Machine

How the Linux Kernel Detects PCI Devices and Pairs Them with Their Drivers

Have you ever wondered how Linux knows what PCI devices are plugged in? How does Linux know what driver to associate with the device when it detects it? In short, here's what happens: During the kernel's init process (init/main.c), various subsystems are brought up according to their "init levels." Among these early subsystems are the … Continue reading How the Linux Kernel Detects PCI Devices and Pairs Them with Their Drivers