O que é um controlador de dispositivo e onde ele se encaixa entre o kernel e o dispositivo?

4

Alguém por favor pode explicar o conceito de um controlador de dispositivo (controlador de disco rígido, controlador compatível com NEC PD765, etc.).

Aqui estão algumas definições dos principais termos que podem ser necessários para a explicação. Apenas para manter o termo sync:)

Kernel - O software que fornece abstração para acessar dispositivos de hardware

Drivers - programas de baixo nível escritos por fabricantes de hardware que são carregados como módulos do kernel e fornecem ao kernel o conhecimento sobre como controlar os dispositivos

Firmware - programas específicos de hardware que definem as lógicas internas no hardware. O kernel geralmente não tem nada a ver com eles, exceto nos casos em que o firmware é carregado no dispositivo a cada inicialização, caso em que o kernel faz o upload

Onde o controlador de dispositivo se encaixa e está localizado no próprio dispositivo da placa-mãe?

Os drivers fornecem ao kernel a interface para o controlador e não diretamente para o próprio dispositivo?

A ideia por trás do controlador era poder controlar dispositivos de diferentes fabricantes com o mesmo driver?

    
por TheMeaningfulEngineer 23.07.2013 / 09:50

2 respostas

5

Was the idea behind the controller to be able to control devices from a different manufacturers with the same driver?

Não. O objetivo principal é fornecer parte da interface entre os dispositivos e o processador. Um controlador possui seu próprio driver; isso é um acréscimo aos drivers necessários para os dispositivos conectados a ele.

A razão pela qual a interface é necessária é que o processador é altamente especializado; controladores são uma espécie de tradutores do mundo especializado do processador para o multiverso de dispositivos. O processador tem apenas uma conexão de dados físicos para o exterior (o barramento ), não uma variedade deles, e na verdade, geralmente intermediário entre os controladores e o processador estão pontes que conecte o processador à placa-mãe. Controladores de dispositivos são então conectados à placa-mãe e se comunicam através de uma ponte. Portanto, existem quatro entidades físicas discretas na cadeia: processador - > ponte - > controlador - > dispositivo, todos dos quais envolvem seus próprios drivers de software (um driver para o processador, para o chipset de ponte, depois para cada um dos controladores e para cada um dos dispositivos).

Se você observar o diagrama abaixo, no artigo da wikipedia , as caixas azuis na parte inferior representam controladores de dispositivo.

[Por Alexander Taubenkorb, Creative Commons Attribution-Share Alike 3.0]

    
por 23.07.2013 / 11:23
4

Os controladores de dispositivo são geralmente árbitros de barramento. Você geralmente não está falando diretamente com os dispositivos em um determinado barramento, mas sim com o controlador. O controlador está determinando quando e como enviar comandos para os dispositivos em seu barramento com base no que você solicitou através do controlador.

A Wikipedia tem o seguinte sobre o assunto, link .

trecho

The Device Controller receives the data from a connected device and stores it temporarily in some special purpose registers (i.e. local buffer) inside the controller. Then it communicates the data with a Device Driver . For each device controller there is an equivalent device driver which is the standard interface through which the device controller communicates with the Operating Systems through Interrupts. Device controller is a hardware whereas device driver is a software.

    
por 23.07.2013 / 10:50