|
Introdução ao Linux Embarcado
Carga horária: 60 horas
Apresentação
Este curso tem o objetivo de apresentar o uso do kernel Linux em sistemas embarcados, sua preparação e instalação em uma plataforma. Nele o aluno aprenderá sobre o Linux, processo de desenvolvimento de sistemas embarcados, ferramentas de desenvolvimento, boas práticas de projeto e programação.
Público alvo
Profissionais e entusiastas interessados no desenvolvimento de sistemas embarcados com o kernel Linux.
Vantagens do curso
- Melhor conhecimento sobre o funcionamento do Kernel Linux
- Processo de projeto e construção de sistemas completos e funcionais para plataformas embarcadas com o Linux
- Conhecimento de critérios e boas práticas para a construção de sistemas
Pré requisitos
- Inglês técnico (leitura)
- Conhecimentos em programação em C e shell
Conteúdo programático
1. Introdução
- Apresentação
- Arquitetura de um sistema embarcado
- Hardware
- Kernel space
- User space
- Distribuições
- Sistemas de construção
- Controle de versão
2. Ambiente de Desenvolvimento
- Usando gcc
- Usando make
- Usando gdb
- Sistemas de tracing
- Usando binutils
- DHCP/TFTP/NFS
3. Toolchain/Cross-toolchain
- Compilando e instalando binutils
- Compilando e instalando gcc
- Biblioteca padrão
- Bibliotecas compartilhadas
4. Biblioteca padrão
- Função e operação
- Alternativas: glibc, eglibc, klibc, uclibc, dietlibc, newlib, bionic
- Compilando uclibc
5. Linux
- Estrutura
- Obtenção
- Construção
- Módulos
- Criando módulos externos
- Criando módulos internos
6. Boot do Linux
- Papel do bootloader
- Parâmetros do kernel
- initrd/initramfs
7. Userspace
- Sistema de arquivos raiz
- init e scripts de inicialização
8. Bootloaders
- Redboot
- U-boot
9. Device Drivers
- Modelos de drivers
- Construção de um driver simples
10. Manipulando e criando dispositivos
- ioctl
- /dev
- /sys
- mknod
- makedev
- udev/mdev
11. Sistemas de arquivos
- Conceitos
- Dispositivos de bloco e MTD
- Sistemas somente-leitura
- JFFS2, cramfs, squashfs, etc
12. Busybox
- Configuração
- Compilação
13. Sistemas de build
- Conceitos
- Alternativas: buildroot, openembedded, scratchbox, em debian e outros
- Configurando e gerando uma imagem de sistema de arquivos
- Adicionando aplicações ao sistema de build
Instrutor
Bacharel em Ciência da Computação pela UFMG. Desenvolvedor de Software desde 1996, com experiência em linguagem C desde 1999. Prestador de serviços a diversas empresas desenvolvendo software de base, incluindo controladores de dispositivos em sistemas operacionais modernos e consultor no desenvolvimento de sistemas operacionais para dispositivos portáteis. Desenvolvedor de software livre atuante.
Mais informações
O Linux é um kernel (núcleo de um sistema operacional) livre para utilização, estudo e modificação, licenciado como GPL, com uma comunidade de desenvolvedores bem atuante. Seu código é bastante portável, e já está disponível para várias plataformas de hardware existentes.
O mercado de semicondutores e dispositivos está adotando o Linux cada vez mais, através de suporte aos seus produtos. Desenvolvedores de software de base, software embutido e fabricantes de dispositivos e equipamentos devem considerar adotar o Linux como kernel para seus sistemas e contribuir com melhorias para ele, com o benefício de grande economia em tempo de desenvolvimento e custos.
Este curso instrui o aluno a participar disso. O Linux é um software livre, e quando utilizado em um produto, sua licença, bem como as dos demais softwares que acompanham o produto final, devem ser respeitadas.
|