Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

ComponentSourceDescription
PCIdrivers/pci.cPCI bus enumeration
ACPIdrivers/acpi.cACPI table parsing
AHCIdrivers/ahci.cSATA/AHCI block device driver
VirtIOdrivers/virtio_net.cVirtIO network device driver
Inputdrivers/input.cEvent-based input subsystem
Keyboarddrivers/kbd.cPS/2 keyboard driver
PS/2 Mousedrivers/ps2mouse.cPS/2 mouse driver
Framebufferdrivers/fb.cLinear framebuffer driver
fbdevdrivers/fbdev.cFramebuffer device (/dev/fb0)
TTYdrivers/tty.cTeletype terminal
Virtual TTYdrivers/vt.cVirtual terminal switching
Serialdrivers/serial.cSerial port (COM1)
Blockdrivers/block.cBlock device abstraction
UIOdrivers/uio.cUserspace I/O device

Initialization Order

Drivers are initialized in kmain() after PCI enumeration and ACPI setup:

  1. block_init() – Block device abstraction
  2. ahci_init() – SATA/AHCI controllers
  3. virtnet_init() – VirtIO network
  4. net_init() – Network stack (lwIP)
  5. uio_init() – Userspace I/O
  6. fbdev_init() – Framebuffer device
  7. input_init() – Input event subsystem
  8. vt_init() – Virtual terminal
  9. pit_init() – Timer
  10. ps2mouse_init() – PS/2 mouse

Last reviewed: 2026-07-22