Introdução Enquadramento das Aulas TP e Preparação do ambiente de desenvolvimento TC2
Sérgio Lopes, 2009
1
Enquadramento •
Porquê deviceͲdrivers? Fazer a ponte entre aplicações e hardware do PC ou periféricos com necessidades específicas (e.g., tempoͲreal)
•
Para quê? – Controlo directo a partir do PC – Controlo por placa com microcontrolador e monitorização/gestão por PC
•
•
Evolução geral nos PCs
Antigamente
Actualmente
SOs
desprotegidos (DOS)
protegidos (Windows, Linux, Mac)
Acesso
directo ao hardware e ao BIOS (inport/outport, setvect/getvect...)
apenas ao SO (através de system calls)
Prog.s
Terminate and Stay Resident
Drivers
O que é um DeviceͲDriver – Programa que permite que os módulos de mais alto nível do SO e as aplicações utilizem recursos de hardware sem ter que lidar com os respectivos detalhes – Executa em kernelͲmode, tem acesso às estruturas internal do kernel e aos recursos de hardware
TC2
Sérgio Lopes, 2009
2
Preparação do ambiente de desenvolvimento de drivers 1. 2.
Descarregar o VirtualBox Instalar o VirtualBox completo (opções de USB e Networking permitem que esses recursos do PC sejam utilizados na máquina virtual) 3. Escolher o directório para colocar discos e máquinas virtuais 4. Criar uma máquina virtual (com disco novo) 5. Executar a máquina virtual (wizard monta temporariamente o CDͲ ROM no guest para instalar S.O.) 6. Fazer o boot com o CD do XP e parar a instalação (demonstro eu) 7. Copiar o disco virtual "XP" para o directorio de discos virtuais 8. Configurar a máquina criada para utilizar o disco "XP" (atenção aos avisos de alguns settings) 9. Executar a VM e fazer logon no guest (Administrator; admin2009); 10. Alternar entre host e guest; instalar as Guest Additions TC2
Sérgio Lopes, 2009
3
Preparação do ambiente de desenvolvimento de drivers 11. Criar um snapshot (ver que foi criado um diferencing HD; vêͲlo nas definições da VM a partir do popͲup do disco base e mostrando os differencing HDs) 12. Visitar no host o site do WDK (antigamente DDK) 13. Verificar condições para descarregar o WDK (registo no connect.microsoft.com) 14. Criar um sharedͲfolder para instalar o DDK: ler o help (Devices Ͳ> Shared Folders; Windows Explorer Ͳ> My Network Places Ͳ> Entire Network Ͳ> Virtual Box Shared Folders; Map Network Drive) 15. Abrir e ler o ficheiro “Install.htm” 16. Instalar no guest o DDK (descarregar no host o 7Ͳzip para abrir o ficheiro ISO; path não pode ter espaços) 17. Fazer o checked build para Vista/2008 18. Se correu tudo bem, (desligar a VM) repetir 10 e anotar dados do discoͲbase e do primeiro snapshot; apagar o primeiro snapshot e ver o respectivo conteudo ser “misturado” no disco base (ver dados do disco base e definições de disco da VM) 19. Limpar disco (disk cleanup, espaço de restauro, apagar build de verificação “build Ͳ0cC”), limpar shapshots anteriores e fazer snapshot do estado actual
TC2
Sérgio Lopes, 2009
4
Bibliografia • Windows Driver Kit Documentation, Online: http://www.microsoft.com/whdc/DevTools/WDK/WDKdocs.mspx, Microsoft Corporation, 2009. Documentação de referência.
• Penny Orwick and Guy Smith, Developing Drivers with the Windows Driver Foundation, pp. 928, Microsoft Press, 2007. Direcionada para o WDF e recomendada a leitura (único à data) para quem não se sentir confortável com a anterior.
• Walter Oney, Programming the Microsoft Windows Driver Model, 2nd Edition, pp.880, Microsoft Press, 2003. Leitura facultativa que aborda os conceitos de base do WDM (subjacente ao WDF).
TC2
Sérgio Lopes, 2009
5