COSC562 Lab: Build Device Drivers for PCI and VirtIO from Scratch
Device Drivers lab exercise – COSC562
A university lab exercise that walks through writing device drivers for virtual PCI and VirtIO devices. It covers the ECAM configuration mechanism, PCI address layout, capability lists, MSI-X interrupts, and VirtIO-specific capabilities, with Rust code examples for wrapping ECAM structures and calculating offsets. Students implement initialization handoff from PCI to VirtIO and log devices in a kernel registry.
VirtIO devices are paravirtualized devices. Since paravirtualized devices know they are virtual, they are easier to configure, and they are more efficient to drive.