A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Device Drivers no Windows e Linux Visão Geral e Boas Práticas Andrew Santana, Cassiano Reis, Josué Demartini Programação de Periféricos Profº Eduardo Bezerra.

Apresentações semelhantes


Apresentação em tema: "Device Drivers no Windows e Linux Visão Geral e Boas Práticas Andrew Santana, Cassiano Reis, Josué Demartini Programação de Periféricos Profº Eduardo Bezerra."— Transcrição da apresentação:

1 Device Drivers no Windows e Linux Visão Geral e Boas Práticas Andrew Santana, Cassiano Reis, Josué Demartini Programação de Periféricos Profº Eduardo Bezerra 1

2 Device Drivers: Um Device Driver é composto por um conjunto de funções e de estruturas de dados que controlam um ou mais periféricos tais como discos rígidos, teclados, mouse, monitores, interfaces de redes, etc. Cada driver interage com as diferentes partes do sistema operacional através de uma interface de programação(API) bem definida. O papel de um Device Driver é prover mecanismo, e não política. Assim sendo, um device driver deve indicar quais capacidades deverão ser providas (mecanismo), e não como essas capacidades devem ser utilizadas (política). 2

3 Operações nos Device Drivers Algumas operações implementadas: - Open - Release - Write - Read - Init - Cleanup 3

4 Device Drivers no Linux Fazem uma parte em particular do hardware responder a uma interface de programação interna bem definida. Escondem completamente os detalhes de como o dispositivo funciona. Atividades de usuário são feitas através de um conjunto de chamadas padronizadas que são independentes do driver específico. O papel do device driver então é mapear estas chamadas para operações especificas do dispositivo que atuam sobre o hardware. É nesta interface de programação que os drivers podem ser construídos separadamente do resto do Kernel e plugados em tempo de execução quando necessário (Modularidade) 4

5 Tipos de Device Drivers no Linux Char Devices: responsável por implementar o acesso a uma stream de bytes (como um arquivo). Implementa operações de opens, read e close. Exemplos deste tipo de driver seriam o console de texto(/dev/console) e portas seriais(/dev/ttySO). Char devices podem ser acessados no diretório /dev. Block Device: São dispositivos que podem servir como hosts para um sistema de arquivos, como se fosse um disco. Também podem ser acessados no diretório /dev. Network Interfaces: orientado a dispositivos de rede, não possui entrada no diretório /dev. Transmite/Recebe pacotes não bytes de um stream. 5

6 Arquitetura do Linux Device Driver 6

7 Device Driver no Windows O Windows Driver Model (WDM) oferece um conjunto de serviços para os desenvolvedores criarem drivers compatíveis com os sistemas operacionais Windows. Um drive WDM é compatível com Windows XP, Millenium e Windows 98. A vantagem desse tipo de driver de rodar em várias plataformas Windows é que os desenvolvedores podem criar e gerenciar um único código fonte de base, reduzindo assim a carga de testes e debug sobre o código. 7

8 Arquitetura do WDM 8

9 Drivers do WDM Drivers de Barramento: Driver de entrada e saída. No contexto da WDM, suas responsabilidades são: enumerar os dispositivos no seu barramento, responder ao plug and play e a requisições de I/O do gerenciador de energia (Power management), e provê uma administração independente de dispositivo para os dispositivos de seu barramento Drivers de Função: É o driver principal para um dispositivo. Suas responsabilidades são: prover uma interface operacional para o dispositivo, gerencia as leituras e escritas no dispositivo, gerencia a política de energia do Driver Drivers de Filtro: Usado pelos escritores de drivers para adicionar valores ou modificar o comportamento de um dispositivo, uma classe de dispositivos, ou um barramento, por exemplo: um driver de filtro para um teclado USB que possa exigir checagens adicionais de segurança. 9

10 Boas Práticas para a Construção de Drivers Portáveis Comentar claramente o código. Especialmente o código que os usuários do driver podem ter que modificar para permitir que o driver possa funcionar nos dispositivos ou hardware dos mesmos. Minimizar a quantidade de código específica para uma plataforma de hardware em particular. Privilegiar códigos que façam com que o driver possa rodar em várias plataformas Armazenar informações de configuração de um device driver em um registrador 10

11 Obter o endereço físico do registrador Permitir configuração de prioridade de execução de Threads no registrador Boas Práticas para a Construção de Drivers Portáveis 11

12 Referências - Rubini, Alessandro; Corbet, Jonathan. Linux Device Drivers. 2º edição, junho Windows Hardware Developer Central; Windows Driver Model (WDM), Abril Windows Embedded Developer Center. Best Practices for Portable Device Drivers, agosto Links - -http://www.inf.pucrs.br/~eduardob/disciplinas/ProgPerif/DeviceDriver/ 12


Carregar ppt "Device Drivers no Windows e Linux Visão Geral e Boas Práticas Andrew Santana, Cassiano Reis, Josué Demartini Programação de Periféricos Profº Eduardo Bezerra."

Apresentações semelhantes


Anúncios Google