Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Programa do Curso
Introdução
- histórico rápido de licenciamento GNU/Linux controle de versão do kernel ciclo de liberação árvores de kernel kernel principal vs. mecanismo de espaço do usuário vs. políticas alternativas de driver de kernel RTOS vs.
Memória Management
- Memória virtual vs. alocação de memória física em zonas de páginas do kernel Placa de API
Patch do kernel
- ciclo de vida git kernel fonte criar patch verificar patch corrigir patch enviar patch código auditado
Módulos do Kernel
- obter fontes do kernel configurar/construir/instalar drivers de dispositivos (ligados estaticamente, carregados em tempo de execução) licenciamento de inicialização/saída SÍMBOLO DE EXPORTAÇÃO GPL fora da árvore makefile module-init-tools módulo na árvore do kernel Parâmetro Kconfig passando esparso
Drivers de caracteres
- arquitetura interface usuário/kernel subsistema de E/S VFS sysfs (dispositivos, barramento, drivers, classes), kobject/ktype/kset modelo de driver de kernel linux arquivos de dispositivo registro de inicialização do driver char aberto, liberação cdev, cdev add, cdev del,... números maiores/menores udev, udevmonitor, udevadm
Operações avançadas de driver de personagem
- ioctl desbloqueado compatibilidade com ioctl ioctl espaço do usuário API espaço do kernel Ciclo de vida do processo da API dormir/bloquear dormir/acordar fila de espera trovejando pesquisa/seleção de rebanho
Depuração de kernel
- depuração de bugs depuração da pesquisa binária do kernel com git debug suporte do kernel printk syslogd, klogd, loglevels, limite de taxa, níveis de depuração, depuração de subsistemas seletivos depuração consultando debugfs oops depuração, afirmando oops Magic SysRq Key kgdb/kdb JTAG
Rastreamento
- gcov lcov oprofile ftrace nop rastreador de função rastreador sched switch rastreador função rastreador gráfico rastreador dinâmico
interrupções vs. polling interrupção seções do programa eventos de reentrada manipulador de interrupção manipulador de interrupção compartilhada fluxo de interrupção controle de interrupção
- Adiando Trabalho
metades superior/inferior softirqs tasklets filas de trabalho interrupções encadeadas
- Simultaneidade
região/seção crítica condição de corrida atômica sincronização bloqueio soluções de bloqueio contenção de impasse o que bloquear? o que pode ser usado? operações atômicas spin locks leitor-gravador spin locks semáforo semáforo binário mutex leitor-gravador semáforo variáveis de conclusão bloqueios sequenciais desabilitam ordem de preempção e barreiras
- Tempo
HZ Jiffies grandes/pequenos atrasos nos temporizadores do kernel
- E/S de hardware
Portas de E/S Memória de E/S Como lidar com efeitos colaterais ao acessar registros?
- Kernel do usuário Communication
put(get)_user() copiar para(from)_user() Mapeamento de memória de E/S do kernel procfs sysfs debugfs relayfs netlink ioctl
- Portabilidade
tamanho da palavra tipos opacos assinados/não assinados alinhamento de dados char código de promoção integral reutilização endianess sistema tick tamanho da página instrução ordenação SMP/preempção/memória alta
- Exceto quando indicado de outra forma, o conteúdo e o esboço deste curso estão licenciados sob Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requisitos
- Familiaridade básica com a utilização de um sistema GNU/Linux como utilizador final
- Familiaridade básica com um shell de linha de comando
- Conhecimento básico do espaço do utilizador / desenvolvimento de aplicações
- Conhecimentos intermédios de programação em C
- Deve ter frequentado Embedded GNU/Linux Systems Architecture anteriormente (fortemente recomendado!) e/ou ter uma boa compreensão dos tópicos aí descritos
35 horas
Declaração de Clientes (4)
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Curso - The Yocto Project - An Overview - hands-on
Que havia muitos exercícios.
Katarzyna Straszewska - Swiss AviationSoftware Ltd.
Curso - Build Native iOS and Android Apps with Flutter
Machine Translated
Mais sobre o laboratório.
Sarbin - Cagayan Electric Power And Light Co., Inc.
Curso - Flutter Development Bootcamp with Dart
Machine Translated
On time, training resources is readily available