Los controladores permiten que el equipo se comunique con hardware o dispositivos externos. Hay diferentes tipos de controladores como controladores de dispositivo, controladores de clase, controladores lógicos programables y controladores wrapper. Normalmente los fabricantes del hardware escriben sus propios controladores dado su conocimiento del funcionamiento interno, aunque también existen controladores de código abierto desarrollados por terceros.