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
- Objectivos
- Quem são vocês
- A Fundação Linux
- Formação da Fundação Linux
- Programas de Certificação e Distintivos Digitais
- [Distribuições
- Plataformas
- Preparando seu sistema
- Usando e baixando uma máquina virtual
- As coisas mudam em Linux
Preliminares
- Procedimentos
- Padrões e a LSB
Como trabalhar em projetos OSS **
- Visão geral sobre como contribuir corretamente
- Fique perto da linha principal para segurança e qualidade
- Estudar e entender o DNA do projeto
- Descubra o que você quer fazer Scratch
- Identificar mantenedores e seus fluxos e métodos de trabalho
- Obtenha contribuições antecipadas e trabalhe de forma aberta
- Contribua com bits incrementais, não com grandes despejos de código
- Deixe seu ego na porta: Não seja magro
- Seja paciente, desenvolva relações de longo prazo, seja útil
Compiladores
- GCC
- Outros compiladores
- Principais opções do gcc
- Pré-processador
- Ambientes de desenvolvimento integrado (IDE)
- Laboratórios
Bibliotecas
- Bibliotecas estáticas
- Bibliotecas partilhadas
- Ligação a bibliotecas
- Carregador de ligação dinâmica
- Laboratórios
Make
- Usando make e Makefiles
- Construindo grandes projetos
- Regras mais complicadas
- Regras incorporadas
- Laboratórios
Controlo de Fontes
- Controlo de fontes
- RCS e CVS
- Subversão
- git
- Laboratórios
Depuração e Core Dumps
- gdb
- O que são ficheiros Core Dump?
- Produzindo Core Dumps
- Examinando Core Dumps
- Laboratórios
Ferramentas de depuração
- Obtendo o tempo
- Criação de perfil e desempenho
- valgrind
- Laboratórios
Chamadas de sistema
- Chamadas de sistema vs. funções de biblioteca
- Como as chamadas de sistema são feitas
- Valores de retorno e números de erro
- Laboratórios
Memória Management e Alocação
- Memória Management
- Alocação Dinâmica
- Ajustando malloc()
- Bloqueio de páginas
- Laboratórios
Ficheiros e Sistemas de Ficheiros em Linux **
- Ficheiros, Directórios e Dispositivos
- O sistema de ficheiros virtual
- O sistema de ficheiros ext2/ext3
- Sistemas de ficheiros com journaling
- O sistema de ficheiros ext4/
- Laboratórios
E/S de ficheiros
- E/S de ficheiros UNIX
- Abrir e fechar
- Leitura, escrita e procura
- E/S posicional e vetorial
- Biblioteca de E/S padrão
- Suporte a ficheiros grandes (LFS)
- Laboratórios
Operações avançadas de ficheiros
- Funções de Stat
- Funções de diretório
- inotify
- Mapeamento de memória
- flock() e fcntl()
- Criação de ficheiros temporários
- Outras chamadas de sistema
- Laboratórios
Processos I
- O que é um processo?
- Limites de processos
- Grupos de processos
- O sistema de ficheiros proc
- Métodos InterProcessos Communication
- Laboratórios
Processos II
- Usando system() para criar um processo
- Usando fork() para criar um processo
- Usando exec() para criar um processo
- Usando clone()
- Sair
- Construtores e Destrutores
- Esperando
- Processos Daemon
- Laboratórios
Pipes e Fifos
- Pipes e InterProcessos Communication
- popen() e pclose()
- pipe()
- Pipes nomeados (FIFOs)
- splice(), vmsplice() e tee()
- Laboratórios
E/S assíncrona**
- O que é E/S assíncrona?
- A API de E/S assíncrona POSIX
- Implementação Linux
- Laboratórios
Sinais I
- O que são Sinais?
- Sinais disponíveis
- Despacho de sinais
- Alarmes, pausa e suspensão
- Configuração de um manipulador de sinais
- Conjuntos de sinais
- sigaction()
- Laboratórios
Sinais II
- Reentrância e manipuladores de sinais
- Saltos e retornos não-locais
- siginfo e sigqueue()
- Sinais em Tempo Real
- Laboratórios
Threads POSIX I
- Multithreading em Linux
- Estrutura Básica do Programa
- Criando e Destruindo Threads
- Sinais e Threads
- Forking vs. Threading
- Laboratórios
Threads POSIX II
- Deadlocks e condições de corrida
- Operações de Mutex
- Semáforos
- Futexes
- Operações condicionais
- Laboratórios
Networking e Sockets
- Camadas Networking
- O que são Sockets?
- Sockets de fluxo
- Sockets de datagrama
- Sockets brutos
- Ordenação de bytes
- Laboratórios
Endereços de Sockets e Hosts
- Estruturas de endereços de sockets
- Conversão de endereços IP
- Informações sobre hosts
- Laboratórios
Portas e protocolos de sockets
- Informações sobre portas de serviço
- Informações sobre protocolos
- Laboratórios
Clientes de sockets
- Sequência básica de cliente
- socket()
- conectar()
- close() e shutdown()
- Cliente UNIX
- Cliente Internet
- Laboratórios
Servidores de sockets
- Sequência básica do servidor
- bind()
- listen()
- accept()
- Servidor UNIX
- Servidor de Internet
- Laboratórios
Operações de entrada/saída de sockets
- escrever(), ler()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Laboratórios
Opções de Sockets
- Obtendo e configurando opções de sockets
- fcntl()
- ioctl()
- getsockopt() e setsockopt()
- Laboratórios
Netlink Sockets**
- O que são netlink Sockets?
- Abrindo um netlink Socket
- Mensagens netlink
- Laboratórios
Multiplexação de sockets e servidores simultâneos
- E/S de sockets multiplexados e assíncronos
- select()
- poll()
- pselect() e ppoll()
- epoll
- E/S assíncronas e accionadas por sinais
- Servidores simultâneos
- Laboratórios
Interprocessos Communication
- Métodos de IPC
- IPC POSIX
- IPC do Sistema V**
- Laboratórios
Memória Partilhada
- O que é a Memória Partilhada?
- Memória Partilhada POSIX
- Memória Partilhada System V**
- Laboratórios
Semáforos
- O que é um Semáforo?
- Semáforos POSIX
- Semáforos do Sistema V**
- Laboratórios
Filas de mensagens
- O que são filas de mensagens?
- Filas de Mensagens POSIX
- Filas de mensagens do System V**
- Laboratórios
Requisitos
Este curso destina-se a programadores experientes. Os alunos devem ser proficientes em programação C e estar familiarizados com utilitários Linux básicos e editores de texto.
Público
Este curso destina-se a programadores experientes. Os alunos devem ser proficientes em programação C e estar familiarizados com utilitários Linux básicos e editores de texto.
Nível de experiência: Intermediário
28 Horas