O que é um driver e como funciona? [fechadas]

3

Recentemente reintalei o SO no meu computador e tive que instalar vários drivers para que tudo funcionasse. Isso me fez pensar, o que é um motorista, como funciona? E existe uma diferença entre, por exemplo, um driver de impressora e um driver de placa gráfica?

    
por Thomas 17.10.2013 / 16:37

3 respostas

3

Quando escrevo um software para imprimir em uma impressora, não quero saber os comandos especiais específicos que você precisa enviar para uma impressora Lexmark para que seja impressa em comparação com uma impressora HP. O que eu quero escrever é uma abstração dada a me pelo sistema operacional , dessa forma eu só preciso escrever meu código de impressão uma vez e meus usuários podem usar qualquer impressora que quiserem, desde que o sistema operacional possa traduzir a interface genérica para a interface específica do fabricante.

Agora, como o sistema operacional sabe como traduzir essa abstração para os comandos específicos do fabricante para o dispositivo? O sistema operacional publica uma API que o fabricante pode escrever seu "código de tradução" que vai da interface genérica para seu hardware específico.

Esse "código de tradução" é um driver.

A diferença entre um driver gráfico e um driver de impressora é que um driver de impressora fala com o print API e os gráficos falam com o API gráfica .

    
por 17.10.2013 / 16:44
2

Um dos trabalhos de um sistema operacional é fornecer "abstração" - um ambiente em que os programadores não precisam detalhar com detalhes de baixo nível e, em vez disso, podem trabalhar na tarefa que desejam que o computador faça. Isso reduz o tempo e os custos de desenvolvimento.

A E / S pode ser analisada de maneira muito generalizada. Você abre um arquivo, lê ou escreve nele, depois fecha quando terminar. Este paradigma de E / S aqui (e não é o único paradigma, mas certamente o mais comum e mais fácil de entender) pode se aplicar a um grande número de dispositivos, obviamente.

Mas os detalhes de baixo nível dos dispositivos geralmente são muito diferentes. Programar e operar um controlador de unidade de disquete é muito diferente de um controlador de disco rígido, que é muito diferente do flash NAND.

Dado, digamos, algo como um programador que está tentando desenvolver um aplicativo como uma planilha eletrônica - seria muito benéfico se ele ou ela não precisasse se preocupar com as técnicas e requisitos meticulosos e muitas vezes complicados envolvidos na obtenção de uma planilha. esses dispositivos para ler blocos, girar seus motores, etc.

Provavelmente, obteremos um programa de planilhas muito melhor se alguém entender os pacotes de detalhes de hardware de E / S de baixo nível em uma API e depois o programador de planilhas puder usar essa API (esperançosamente bem documentada) e trabalhar no que ele Ela sabe melhor. Por isso, escrevemos um driver para cada dispositivo que implementa nosso paradigma de E / S - o driver seria o pequeno programa que recebe solicitações de alto nível e tem o conhecimento necessário para que um dispositivo as obedeça.

O benefício adicional é que nós (geralmente) não temos que mudar nossos aplicativos quando novos tipos de dispositivos são lançados. Adicionamos mais drivers e informamos ao aplicativo para salvar em um lugar diferente.

Agora, essa é uma aparência simplificada, mas esperamos que você tenha uma boa ideia.

    
por 17.10.2013 / 17:29
1

Drivers são o middleware que permite que programas de computador usem recursos de um dispositivo de hardware específico.

    
por 17.10.2013 / 16:44

Tags