Início:
Carga horária :40h
Objetivo :O objetivo do curso é capacitar o aluno em desenvolvimento de device drivers para o sistema operacional Linux (2.6.x) sob arquitetura Intel 32 bits. O curso destina-se a profissionais ou estudantes que querem: ● criar drivers para hardware fora-do-padrão do mercado (empresas que desenvolvem hardware para PC em nichos não explorados pelas grandes empresas de hardware, por exemplo) ● adicionar funções ou alterar o funcionamento de um driver já existente ● entender melhor o funcionamento do kernel do Linux ● adaptar o Linux para um hardware desenvolvido sob medida, como empresas que fabricam sistemas embarcados (embedded) ● colaborar com a comunidade open source
Pré-requisitos É necessário ter conhecimentos de linguagem C, conhecimento básico de Unix e conhecimentos básicos de Sistemas Operacionais.
Conteúdo Programático: ● Intro: Noções de Unix. ● Intro: Noções de GPL/LGPL. ● Intro: Noções do Compilador GCC, Makefile. ● Intro: Introdução à Arquitetura de Sistemas Operacionais. ● Intro: Noções de multiprocessamento, concorrência, tempo real. ● Intro: Introdução ao IA32: funcionamento da CPU, modo real, modo protegido, paginação, tasks, registradores, exceções e falhas. ● Itntro: User mode & kernel mode: anéis de execução e armadilhas. ● Kernel: arquitetura e visão geral. ● Kernel: modelo de memória, gerenciador de memória. ● Kernel: comunicação entre kernel e user space: read/write/ioctl. ● Kernel: filesystem: /dev, /proc. ● Kernel: serviços, primitivas de sincronização ● Kernel: tratamento de interrupções. ● Kernel: halves. ● Kernel: buses. ● Kernel: acesso à portas de IO, memória e IO mapeado em memória ● Kernel: DMA. ● Kernel: apresentação dos fontes. ● Kernel: customização de uma compilação. ● Drivers: tipos de drivers. ● Drivers: implementaçao básica. ● Drivers: Load/unloading. ● Drivers: Read/Write ● Drivers: ioctl. ● Drivers: comunicação com /proc. ● Drivers: alterando o funcionamento de um driver existente (teclado?). ● Drivers: Prática: construção de um driver simples para acesso ao (TBD). ● Drivers: parametrizando o funcionamento. ● Compilador: estudo de geração de código. ● Compilador: otimizando a utilização da pilha. ● Compilador: mas o “goto” não é “proibido”? ● Debugging: Técnicas de Debugging. ● Debugging: analisando um binário ● Debugging: inspecionando assembler gerado pelo compilador. ● Debugging: console ● Debugging: Kernel Panic ● Debugging: serial ● Debugging: KDBG ● Debugging: Kdump ● Debugging: Prática: debug de um driver padrão. ● Kernel: adicionando um driver estático. ● Kernel: análises de drivers existentes ethernet, floppy. ● Conclusão: Fatores de sucesso/risco a serem considerados na construção de drivers. ● Conclusão: Como contribuir com o desenvolvimento do kernel.
Investimento : Até 07 dias antes do início do curso :R$ 50,00 Valor do curso : R$ 1.800,00 Local : Central de Cursos – São Paulo Rua Treze de Maio , 681-Bela Vista Cep.:01327-000-São Paulo/SP
|