Drivers run as userspace services, each owning its device state and hardware operations in a separate address space. Applications and other services access them through IPC, with client libraries exposing ordinary function interfaces. Drivers are trusted components: driver privilege permits port I/O and restricted mapping/interrupt operations, including access to device and DMA memory.

Communication and ownership

Service interfaces express device operations, such as reading sectors or setting a video mode. Register access, interrupt handling and hardware sequencing stay inside the responsible driver.

Messages carry commands, identifiers, status and buffer references. Bulk data uses shared memory: AHCI transfers through driver-owned shared DMA buffers, and video drivers share framebuffers with clients. This keeps data transfers separate from request/reply traffic.

Transaction IDs associate replies with requests. Each protocol defines buffer ownership, completion, errors and cancellation. A timeout ends the caller’s wait; an accepted write may still complete. Shared buffers remain owned until the protocol confirms that outstanding access has finished.

Services

Service Client library Role

devicemanager

libdevice

Device registration and driver startup.

pcidriver

libpci

PCI enumeration, configuration space and BAR access.

acpidriver

libacpi

ACPI firmware, events and power preparation.

ps2driver

libps2driver

Keyboard and mouse input pipes; libps2 handles the controller.

ahcidriver

libblockdevice

SATA disk geometry, read/write and flush; libahci supplies hardware definitions.

efifbdriver, vmsvgadriver

libvideo

Shared framebuffer and video mode/update requests.

storagemanager

libstorage

Disk and partition administration, volume discovery, mount coordination and boot-code installation.

fatdriver

Filesystem API, libstorage

FAT12/16/32 volumes and bounded FAT32 formatting; storage manager mount/flush/unmount control.

Startup and discovery

The kernel starts pcidriver, acpidriver and the devicemanager, then ps2driver and Ć’enster. The device manager selects VMSVGA when present, otherwise the boot framebuffer, and starts ahcidriver, storagemanager and fatdriver.

Drivers register a device type and serving task with the device manager. Each registration receives a system-wide device ID and is published on the replayable device topic. Consumers use the announced driver task and ID for requests.

ahcidriver exposes DMA/LBA48 disks with 512-byte logical sectors. storagemanager discovers whole-disk, MBR and GPT volumes and announces them on the replayable volume topic. Filesystem workers probe announced regions, claim them exclusively and confirm their VFS mounts through libstorage. FAT uses /mount/fat<DISK_ID> for the first partition and appends p<PARTITION> for others.

On installed systems, the selected FAT boot volume becomes / before the interactive desktop starts. See Storage management, Filesystem delegates and Shutdown and reboot for service lifecycle contracts.