Cursos - Desenvolvimento de Drivers Para Linux (Extensão)

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


 
Inscreva-se
Central de Atendimento:
São Paulo - (0xx11) 6014-5656
Bahia - (0xx71) 3264-0958 / 3264-1093
Rio de Janeiro - (0xx21) 2484-3336 / 2484-3254 / 4063-7161
Outros Estados - 0800 772 0149