Programa do Curso

Introdução

  • História do Unix/Linux
  • Software Livre
  • Filosofia Unix

PLAYGROUND DO HOST

  • Brincar com o GNU/Linux
    • arquitetura
    • shell
    • permissões
    • FHS (padrão de hierarquia de ficheiros)
    • ligações hard/soft
    • uid/gid real/eficaz
    • agendador
    • processo/tarefa/thread
    • IPC simples/avançado
      • tubos
      • sinais
      • filas de mensagens
      • semáforos
      • memória partilhada
      • sockets
      • select/poll
    • Técnicas de IPC a evitar
  • Configuração do host Linux
    • Yocto/ELDK (ferramentas cruzadas/alvo, bibliotecas, pacotes)
    • Emulação de terminal
    • Servidores (DHCP, tftp, NFS)

PLAYGROUND DO ALVO

  • ficheiros necessários para correr algo a bordo
    • Configuração JTAG/BDI
    • u-boot (checkout, config, build)
    • kernel (checkout, config, build)
    • rootfs
    • árvore plana de dispositivos
  • construir/executar o que é aplicável a partir de cima na placa de destino
  • vários rootfs
    • CRAMFS
    • ramdisk
    • MTD
    • JFFS2
    • roEXT2
    • ubi
  • construir/executar o que é aplicável a partir de cima na placa de destino
  • comparação de sistemas de ficheiros raiz
  • depuração
    • ferramentas simples
    • local/remoto
    • utilizador/kernel
    • gdb
    • servidor gdbs
    • JTAG/BDI (opcional)
  • criação de perfis
    • gprof
    • gcov
    • oprofile

TEMPO REAL

  • pré-requisitos
    • interrupções
    • código reentrante
  • tempo real Linux
    • pontos de preempção explícitos/implícitos
    • patch de preempção em tempo real
    • kernel totalmente preemptivo
    • extensões hard real-time
  • Adeos/Xenomai
    • patch adeos
    • xenomai
    • patch/config/build kernel
    • executá-lo a bordo

LANÇAMENTO DO SOFTWARE

  • administração
  • desenvolvimento
  • como reproduzir uma versão SW?

MISC

  • getopt
  • endianess
  • folhas de batota

Exceto quando indicado em contrário, o conteúdo desta descrição do curso está licenciado 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 (por exemplo, Ubuntu) como utilizador final no espaço do utilizador 
  • Familiaridade básica com um shell de linha de comando 
  • Conhecimento básico do espaço do utilizador/desenvolvimento de aplicações com GNU/Linux 
  • Conhecimentos básicos sobre processadores embebidos e placas de desenvolvimento 
  • Conhecimentos básicos de programação em C 
  • …e/ou ou medo de aprender os itens acima… 
 35 horas

Declaração de Clientes (3)

Próximas Formações Provisórias

Categorias Relacionadas