(61) 3223-3000

Fale conosco

 

alt

Curso realizado de forma presencial em laboratório.

Apresentação

Este curso tem o objetivo de apresentar práticas de programação segundo os padrões POSIX de interface. Nele o aluno aprenderá sobre o desenvolvimento de software portável utilizando interfaces (API e utilitários) definidas pelo POSIX, para sistemas operacionais modernos.

O POSIX é um conjunto de especificações de interface (APIs e utilitários) definido pela IEEE com o objetivo de garantir portabilidade de código de programas entre sistemas operacionais que o implementam. O desenvolvimento de software de acordo com o POSIX tem vantagens como a portabilidade do código produzido entre sistemas operacionais compatíveis, e utilização de uma infraestrutura madura de bibliotecas e utilitários existentes nesses sistemas.

 

Público Alvo

Profissionais e entusiastas interessados no desenvolvimento de software para sistemas operacionais POSIX, como UNIX's, BSD's e GNU Linux.

 

Vantagens e Pontos Fortes do Curso

  • Prática em projeto e produção de software segundo o padrão POSIX;
  • Prática de desenvolvimento de software com melhor integração a sistemas operacionais modernos;
  • Conhecimento aplicável a sistemas embutidos e grandes sistemas;

 

Carga Horária

40 horas

 

Pré-Requisitos

  • Inglês técnico (leitura)
  • Conhecimentos em programação em C e shell

 

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.

 

Ementa

  • Arquitetura de um sistema operacional
  • kernel
  • chamadas de sistema
  • biblioteca padrão
  • processos
  • comunicação inter-processos
  • Biblioteca Padrão e Padrões C e Unix;
  • o que é libc
  • padrões
  • implementações
  • Ambiente de desenvolvimento em C;
  • gcc
  • make
  • controle de versão
  • gdb
  • Entrada e Saída;
  • open/close;
  • read/write;
  • lseek;
  • mmap;
  • ioctl;
  • fcntl;
  • Multiplexação de Entrada e Saída;
  • select;
  • poll;
  • Arquivos e diretórios;
  • getcwd/chdir;
  • opendir/readdir/closedir;
  • link/symlink/unlink/rename;
  • mkdir/rmdir;
  • stat/chown/umask/chmod/access;
  • mknod/mktemp;
  • Processos;
  • system;
  • getpid/getppid;
  • fork;
  • exec*;
  • wait*;
  • Sinais;
  • introdução e lista de sinais;
  • signal;
  • sigaction;
  • tratadores e paralelismo;
  • raise/kill;
  • Pipes e Fifos
  • pipe;
  • popen/pclose;
  • mkfifo;
  • Sockets
  • introdução a sockets;
  • stream vs datagram;
  • endereços: formatos, famílias;
  • socket/shutdown/socketpair;
  • bind/getsockname;
  • local socket address;
  • internet socket address: inet_*/gethostby*/gai;
  • byte order;
  • connections/streams: connect/listen/accept/send/recv;
  • datagrams: sendto/recvfrom;
  • getsockopt/setsockopt;

 

alt