Programação de Sistemas Prática com C++
566 páginas
Portuguese
PDF
4.5

Programação de Sistemas Prática com C++

Programação de Sistemas Prática com C++

Autor:

Ano:

Resumo:

Introdução

O livro «Hands-On System Programming with C++» de autoria de Rian Quinn é um guia prático que mergulha o leitor no mundo da programação de baixo nível utilizando C++ moderno (C++17). Lançado em 2018 pela editora Packt, o livro com 566 páginas aborda os principais aspectos da interação de um programa com o sistema operacional: chamadas de sistema, gerenciamento de memória, multithreading, comunicação entre processos (IPC) e trabalho com sistemas de arquivos. Diferente de livros acadêmicos, Quinn enfatiza exemplos reais e exercícios práticos, tornando o livro uma escolha ideal para desenvolvedores que desejam migrar da escrita de código aplicado para a criação de componentes de sistema.

Sobre o que é o livro

O livro está dividido em 14 capítulos, cada um dedicado a um tópico específico de programação de sistemas. O autor começa com o básico: compilação, linkedição, trabalho com g++ e CMake, e depois avança para conceitos mais complexos. A atenção principal é dada a:

  • Chamadas de sistema POSIX — open, read, write, mmap, fork, exec e seus wrappers em C++.
  • Gerenciamento de memória — trabalho com memória virtual, alocação de grandes blocos, uso de mmap para mapeamento de arquivos.
  • Multithreading e sincronização — std::thread, mutexes, variáveis de condição, operações atômicas, além de primitivas de baixo nível (futex).
  • Comunicação entre processos — pipes, filas de mensagens, memória compartilhada, semáforos e sockets.
  • Trabalho com sistemas de arquivos — monitoramento de alterações, entrada/saída assíncrona (AIO, io_uring).
  • Perfilamento e depuração — uso de perf, strace, gdb e ferramentas embutidas do C++.

Cada capítulo contém vários exemplos de código que podem ser executados e modificados imediatamente. O autor também aborda questões de segurança e portabilidade de código entre Linux e Windows (através do subsistema WSL).

Para quem é este livro

O livro é voltado para desenvolvedores C++ que já possuem experiência básica (conhecimento de sintaxe, STL, classes). Será útil para:

  • Programadores que estão migrando do nível aplicado (web, bancos de dados) para a programação de sistemas.
  • Desenvolvedores de sistemas embarcados e drivers.
  • Especialistas em desempenho e otimização.
  • Estudantes de graduação em cursos de sistemas operacionais.

Se você conhece C++ ao nível de escrever utilitários de console, mas quer entender como processos, threads e memória funcionam "por baixo dos panos" — este livro será uma excelente ponte entre teoria e prática.

O que o leitor aprenderá

Após a leitura do livro, você será capaz de:

  • Escrever utilitários de sistema eficientes em C++ usando chamadas de sistema.
  • Gerenciar memória manualmente, evitando vazamentos e fragmentação.
  • Criar aplicações multithread com sincronização correta.
  • Organizar a troca de dados entre processos através de memória compartilhada, pipes e sockets.
  • Trabalhar com entrada/saída assíncrona para melhorar o desempenho.
  • Perfilar e depurar código de sistema usando ferramentas padrão do Linux.
  • Compreender o funcionamento interno do sistema operacional (Linux) e sua API.

Pontos fortes

O livro se destaca em relação a outras publicações sobre programação de sistemas graças a:

  • Abordagem prática — cada bloco teórico é acompanhado de código que pode ser baixado do GitHub.
  • C++ moderno — o autor utiliza ativamente os recursos do C++17 (std::optional, std::variant, structured bindings), mostrando como escrever código seguro e legível.

Recommendations