Drivers
This document describes the device driver subsystem of the Kyronix kernel. It is the child of Kernel and parent of driver component documents.
Components
| Component | Source | Description |
|---|---|---|
| PCI | drivers/pci.c | PCI bus enumeration |
| ACPI | drivers/acpi.c | ACPI table parsing |
| AHCI | drivers/ahci.c | SATA/AHCI block device driver |
| VirtIO | drivers/virtio_net.c | VirtIO network device driver |
| Input | drivers/input.c | Event-based input subsystem |
| Keyboard | drivers/kbd.c | PS/2 keyboard driver |
| PS/2 Mouse | drivers/ps2mouse.c | PS/2 mouse driver |
| Framebuffer | drivers/fb.c | Linear framebuffer driver |
| fbdev | drivers/fbdev.c | Framebuffer device (/dev/fb0) |
| TTY | drivers/tty.c | Teletype terminal |
| Virtual TTY | drivers/vt.c | Virtual terminal switching |
| Serial | drivers/serial.c | Serial port (COM1) |
| Block | drivers/block.c | Block device abstraction |
| UIO | drivers/uio.c | Userspace I/O device |
Initialization Order
Drivers are initialized in kmain() after PCI enumeration and ACPI setup:
block_init()– Block device abstractionahci_init()– SATA/AHCI controllersvirtnet_init()– VirtIO networknet_init()– Network stack (lwIP)uio_init()– Userspace I/Ofbdev_init()– Framebuffer deviceinput_init()– Input event subsystemvt_init()– Virtual terminalpit_init()– Timerps2mouse_init()– PS/2 mouse
Last reviewed: 2026-07-22