controller
also: adapter, interface card, host controller
A hardware device or kernel subsystem that manages communication between the CPU and peripherals like storage drives, network cards, or USB devices.
In Linux, a controller refers to a piece of hardware that acts as an intermediary between the processor and external devices. Common examples include SATA controllers (managing hard drives), network interface controllers (NICs), and USB host controllers. Each controller has its own firmware and handles the low-level protocol details needed to communicate with its connected peripherals.
The Linux kernel communicates with controllers through drivers—software that translates high-level requests (like "read file from disk") into specific commands the controller understands. For example, when you read a file, the kernel's filesystem driver sends commands to the SATA controller, which then instructs the hard drive to retrieve the data.
You can view detected controllers on your system using commands like lspci (for PCI devices) or lsusb (for USB devices). Modern systems often have controllers built into the motherboard or integrated into CPUs for efficiency.