Drivers
Category
15 articles
- 01AHCI
The register interface a SATA controller exposes once its BAR is mapped: command lists, FIS types, and how a driver actually moves data through a port.
- 02ATA/IDE in PIO Mode
The legacy 0x1F0-0x1F7 ports, the IDENTIFY command, and the BSY-polling read cycle that make PIO the simplest storage driver to write, if not the fastest.
- 03Audio (AC97/HDA)
The circular buffer model AC97 and Intel HDA both use to deliver samples continuously, mixer versus bus-master registers, and why AC97 is the simpler starting point.
- 04Console and Terminal Emulation (ANSI Escape Sequences)
The layer most kernels build on top of raw text/pixel drawing: an escape-sequence state machine for color and cursor movement, and scrolling as a memory copy.
- 05Floppy Disk Controller (FDC)
The 8272A/82077AA controller's legacy I/O ports, sector-by-sector reads via the system's legacy channel 2 DMA, and why this obsolete device remains a common first storage driver.
- 06Keyboard
Reading scancodes from the PS/2 keyboard controller and turning them into characters.
- 07Networking (NIC Driver Model)
The transmit/receive descriptor rings most network controllers expose, how a received packet arrives as an interrupt pointing at a buffer, and why virtio-net is usually first.
- 08NVMe
The paired submission/completion queue model, the memory-mapped controller register at BAR0, and the Identify command, contrasted against AHCI's port-and-slot design.
- 09PCI
The bus every kernel uses to discover and configure the hardware attached to a machine, from disk controllers to network cards.
- 10PS/2 Mouse
Enabling the 8042 controller's second channel, the three/four-byte packet format reporting movement and buttons, and switching the device into streaming mode.
- 11Real Time Clock (RTC/CMOS)
The battery-backed chip that keeps calendar date and time across reboots and power loss, its BCD register format, and the update-in-progress race reading it has to avoid.
- 12Serial Port
Using the UART serial port as an early, reliable output channel for debugging.
- 13USB
How a device gets an address, what a descriptor tells the host about it, and why every USB keyboard on a modern board still answers to a PS/2 driver at boot.
- 14VGA & Framebuffers
Writing text and pixels to the screen, from VGA text mode to a linear framebuffer.
- 15VirtIO and the Virtqueue
The descriptor ring shared between guest and host that every virtio device (network, block, GPU) is built on, and why it's simpler than emulating real hardware faithfully.