Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
Programa do Curso
Introdução
- breve história do GNU/Linux
- licenciamento
- versionamento do kernel
- ciclo de lançamento
- árvores do kernel
- mainline
- kernel vs. espaço de usuário
- mecanismo vs. política
- alternativas para drivers de kernel
- RTOS vs. Linux
Gerenciamento de Memória
- memória virtual vs. memória física
- alocação de memória no kernel
- páginas
- zonas
- API
- slab
Patch do Kernel
- ciclo de vida
- git
- fonte do kernel
- criar patch
- verificar patch
- corrigir patch
- distribuir patch
- código auditado
Módulos do Kernel
- obter fontes do kernel
- configurar/compilar/instalar
- drivers de dispositivo (vinculados estaticamente, carregados em tempo de execução)
- init/exit
- licenciamento
- EXPORT SYMBOL GPL
- makefile fora da árvore do kernel
- module-init-tools
- módulo na árvore do kernel
- Kconfig
- passagem de parâmetros
- sparse
Drivers Char
- arquitetura
- interface usuário/kernel
- subsistema I/O
- VFS
- sysfs (dispositivos, barramento, drivers, classes),
- kobject/ktype/kset
- modelo de driver do kernel Linux
- arquivos de dispositivo
-
driver char
- inicialização
- registro
- open, release
- cdev, cdev_add, cdev_del,...
- números major/minor
- udev, udevmonitor, udevadm
Operações Avançadas de Driver Char
- ioctl
- ioctl unlocked
- compat ioctl
- API de espaço de usuário
- API de espaço de kernel
- ciclo de vida do processo
- sleep/bloqueio
- sleep/wake up
- wait queue
- thundering herd
- poll/select
Depuração de Kernel
- depuração
-
depurando o kernel
- busca binária com git
- suporte de depuração do kernel
- printk, syslogd, klogd, loglevels, rate limit, debug levels, debug selective subsystems
- depuração através da consulta ao debugfs
- depuração de oops, forçando oops
- Tecla Mágica SysRq
- kgdb/kdb
- JTAG
Rastreamento
- gcov
- lcov
- oprofile
-
ftrace
- nop tracer
- function tracer
- sched switch tracer
- function graph tracer
- dynamic tracer
- trace-cmd/kernelshark
- perf
- LTTng
Interrupções
- interrupções vs. polling
- interrupção
- seções de programa
- reentrancy
- eventos
- manipulador de interrupção
- manipulador de interrupção compartilhada
- fluxo de interrupção
- controle de interrupção
Adiar Trabalho
- top/bottom halves
- softirqs
- tasklets
- work queues
- interrupts encadeados
Concorrência
- região/seção crítica
- atomic
- condição de corrida
- sincronização
- locking
- soluções de locking
- deadlock
- contention
- o que bloquear?
-
o que pode ser usado?
- operações atômicas
- spin locks
- reader-writer spin locks
- semáforo
- semáforo binário
- mutex
- reader-writer semaphore
- variáveis de completamento
- sequential locks
- desativar preempção
- ordem e barreiras
Tempo
- HZ
- Jiffies
- atrasos grandes/pequenos
- timers do kernel
I/O de Hardware
- I/O Ports
- I/O Memory
- Como lidar com efeitos colaterais ao acessar registradores?
Comunicação Usuário-Kernel
- put(get)_user()
- copy to(from)_user()
- Kernel I/O
- mapeamento de memória
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilidade
- tamanho de palavra
- tipos opacos
- char assinado/não assinado
- alinhamento de dados
- promoção inteira
- reutilização de código
- endianess
- tick do sistema
- tamanho de página
- ordenação de instruções
- SMP/preempção/high memory
Exceto onde indicado de outra forma, o conteúdo e este esboço de curso estão licenciados sob Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requisitos
- Conhecimento básico sobre o uso de um sistema GNU/Linux como usuário final
- Conhecimento básico de um shell de linha de comando
- Conhecimento básico de desenvolvimento em espaço de usuário / aplicação
- Conhecimento intermediário de programação em C
- Deve ter participado anteriormente de Arquitetura de Sistemas GNU/Linux Embarcados (fortemente recomendado!) e/ou ter um bom entendimento dos tópicos descritos nesse curso.
35 Horas
Treinamento Corporativo Personalizado
Soluções de treinamento projetadas exclusivamente para empresas.
- Conteúdo Personalizado: Adaptamos o programa e os exercícios práticos aos objetivos e necessidades reais do seu projeto.
- Horário Flexível: Datas e horários adaptados à agenda da sua equipe.
- Formato: Online (ao vivo), In-Company (em suas instalações) ou Híbrido.
Preço por grupo privado, treinamento online ao vivo, a partir de 6500 € + VAT*
Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes
Testemunhos de Clientes (3)
Tudo está bem.
Adrian Rybka - SEOyon
Curso - Flutter Development Bootcamp with Dart
Máquina Traduzida
Informações adicionais muito úteis
Grzegorz - Comp S.A.
Curso - BLoC Pattern
Máquina Traduzida
Seu conhecimento e paciência.
Chrisna - Agricatural Research Council
Curso - Ionic 4 and Angular for Developers
Máquina Traduzida