No primeiro diagrama do Linux, acima da parte "driver de dispositivo"; o mesmo para o diagrama de Bovet.
Ao escrever um sistema operacional, você deseja manter as partes dependentes do dispositivo o mais isoladas possível, para que você possa adicionar outros dispositivos de maneira limpa. No caso do Linux, o "driver de dispositivo para um disco" (ou "placa de rede" ou "placa WiFi", ou qualquer outro) é uma classe no sentido de programação orientada a objetos, refinada em classes para tipos de dispositivos individuais (por exemplo, "Realtek Semiconductor Co., Ltd. Controlador Gigabit Ethernet PCI Express RTL8111 / 8168/8411"), que por sua vez podem ser instatados como várias cópias dos mesmos (ou similares) dispositivos, como necessário. por exemplo. cujos objetos são Em alguns casos, a funcionalidade específica do dispositivo é abstraída em subsistemas de nível mais alto, como toda a manipulação complexa de domínios administrativos e restrições de WiFi (isso era originalmente parte de cada driver). Às vezes, há dispositivos sobrepostos uns aos outros, como um pendrive USB, que usa USB e é tratado como um disco SCSI por USB, ou SCSI por IP (que por sua vez é executado por interfaces de rede de fibra ótica).
tl; dr: Esta separação clara (como muito mais o que você vê nos textos do "sistema operacional") é apenas um muito primeira aproximação bruta, a realidade é uma bagunça muito mais interessante.