Programação de Sistemas Prática com C++
Programação de Sistemas Prática com C++
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,exece seus wrappers em C++. - Gerenciamento de memória — trabalho com memória virtual, alocação de grandes blocos, uso de
mmappara 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,gdbe 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.