Como o Linux funciona
O que todo superusuário deveria saber
Descrição do livro
De modo diferente de alguns sistemas operacionais, o Linux não tenta esconder as partes importantes – ele permite que você tenha um controle completo de seu computador. Porém, para verdadeiramente dominar o Linux, é necessário entender o seu funcionamento interno, por exemplo, como o sistema inicializa, de que modo a rede funciona e o que o kernel realmente faz.
Nesta segunda edição totalmente revisada do sempre best-seller Como o Linux funciona, o autor Brian Ward torna os conceitos por trás da operação interna do Linux acessíveis a qualquer pessoa que tenha curiosidade de saber como o sistema operacional funciona por dentro.
Neste livro, você encontrará o tipo de conhecimento que normalmente resulta de anos de experiência realizando tarefas com muito esforço. Você saberá:Como o Linux é inicializado, usando de boot loaders a implementações de init (systemd, Upstart e System V)
Como o kernel administra dispositivos, device drivers e processos
Como a rede, as interfaces, os firewalls e os servidores funcionam
Como as ferramentas de desenvolvimento funcionam e se relacionam com bibliotecas compartilhadas
Como escrever shell scripts eficientes
Você também irá explorar o kernel e analisará as tarefas fundamentais do sistema no espaço de usuário, incluindo chamadas de sistema, entrada e saída e sistemas de arquivo. Com sua combinação de informações básicas, teoria, exemplos do mundo real e explicações dadas com paciência, Como o Linux funciona ensinará o que você deve saber para resolver problemas complicados e assumir o controle de seu sistema operacional.
Ver menos ▲Sumário
Sumário
- Prefácio
- Agradecimentos
- Quadro geral
- 1.1 Níveis e camadas de abstração em um sistema Linux
- 1.2 Hardware: compreendendo a memória principal
- 1.3 Kernel
- 1.4 Espaço de usuário
- 1.5 Usuários
- 1.6 Próximos passos
- Comandos básicos e hierarquia de diretórios
- 2.1 Bourne shell: /bin/sh
- 2.2 Usando o shell
- 2.3 Comandos básicos
- 2.4 Navegando pelos diretórios
- 2.5 Comandos intermediários
- 2.6 Alterando sua senha e o shell
- 2.7 Arquivos ponto
- 2.8 Variáveis de ambiente e de shell
- 2.9 O path do comando
- 2.10 Caracteres especiais
- 2.11 Edição de linha de comando
- 2.12 Editores de texto
- 2.13 Obtendo ajuda online
- 2.14 Entrada e saída de shell
- 2.15 Entendendo as mensagens de erro
- 2.16 Listando e manipulando processos
- 2.17 Modos e permissões de arquivo
- 2.18 Arquivamento e compressão de arquivos
- 2.19 Aspectos essenciais da hierarquia de diretórios do Linux
- 2.20 Executando comandos como superusuário
- 2.21 Próximos passos
- Dispositivos
- 3.1 Arquivos de dispositivo
- 3.2 Path de dispositivos sysfs
- 3.3 dd e dispositivos
- 3.4 Resumo dos nomes dos dispositivos
- 3.5 udev
- 3.6 Em detalhes: SCSI e o kernel do Linux
- Discos e sistemas de arquivos
- 4.1 Particionando dispositivos de disco
- 4.2 Sistemas de arquivos
- 4.3 Espaço de swap
- 4.4 Próximos passos: discos e espaço de usuário
- 4.5 Dentro de um sistema de arquivos tradicional
- Como o kernel do Linux inicializa
- 5.1 Mensagens de inicialização
- 5.2 Inicialização do kernel e opções de boot
- 5.3 Parâmetros do kernel
- 5.4 Boot loaders
- 5.5 Introdução ao GRUB
- 5.6 Problemas com o boot seguro do UEFI
- 5.7 Carregando outros sistemas operacionais em cadeia
- 5.8 Detalhes dos boot loaders
- Como o espaço de usuário inicia
- 6.1 Introdução ao init
- 6.2 Os runlevels do System V
- 6.3 Identificando o seu init
- 6.4 systemd
- 6.5 Upstart
- 6.6 System V init
- 6.7 Desligando o seu sistema
- 6.8 O sistema de arquivos inicial em RAM
- 6.9 Inicialização de emergência e modo monousuário
- Configuração do sistema: logging, hora do sistema, tarefas em lote e usuários
- 7.1 Estrutura do /etc
- 7.2 Logging do sistema
- 7.3 Arquivos para gerenciamento de usuários
- 7.4 getty e login
- 7.5 Configurando o horário
- 7.6 Agendando tarefas recorrentes com cron
- 7.7 Agendando tarefas a serem executadas uma só vez com at
- 7.8 Entendendo os IDs de usuário e as mudanças de usuário
- 7.9 Identificação e autenticação de usuários
- 7.10 PAM
- 7.11 Próximos passos
- Observando mais de perto os processos e a utilização de recursos
- 8.1 Monitorando processos
- 8.2 Encontrando arquivos abertos com lsof
- 8.3 Execução de programas de tracing e chamadas de sistema
- 8.4 Threads
- 8.5 Introdução à monitoração de recursos
- 8.6 Medindo o tempo de CPU
- 8.7 Ajustando as prioridades do processo
- 8.8 Médias de carga
- 8.9 Memória
- 8.10 Monitorando o desempenho da CPU e da memória com vmstat
- 8.11 Monitoração de I/O
- 8.12 Monitoração por processo com pidstat
- 8.13 Tópicos adicionais
- Entendendo a rede e sua configuração
- 9.1 Básico sobre redes
- 9.2 Camadas de rede
- 9.3 A camada de Internet
- 9.4 Rotas e a tabela de roteamento do kernel
- 9.5 Ferramentas básicas para ICMP e DNS
- 9.6 A camada física e a Ethernet
- 9.7 Entendendo as interfaces de rede do kernel
- 9.8 Introdução à configuração das interfaces de rede
- 9.9 Configuração de rede ativada no boot
- 9.10 Problemas com a configuração manual de rede ativada no boot
- 9.11 Gerenciadores de configuração de rede
- 9.12 Resolvendo nomes de hosts
- 9.13 Localhost
- 9.14 A camada de transporte: TCP, UDP e serviços
- 9.15 Analisando uma rede local simples novamente
- 9.16 Entendendo o DHCP
- 9.17 Configurando o Linux como roteador
- 9.18 Redes privadas
- 9.19 Tradução de endereços de rede (Mascaramento de IP)
- 9.20 Roteadores e o Linux
- 9.21 Firewalls
- 9.22 Ethernet, IP e ARP
- 9.23 Ethernet wireless
- 9.24 Resumo
- Aplicações e serviços de rede
- 10.1 Básico sobre serviços
- 10.2 Servidores de rede
- 10.3 Secure Shell (SSH)
- 10.4 Os daemons inetd e xinetd
- 10.5 Ferramentas de diagnóstico
- 10.6 Remote Procedure Call (RPC)
- 10.7 Segurança em redes
- 10.8 Próximos passos
- 10.9 Sockets: como os processos se comunicam com a rede
- 10.10 Sockets de domínio Unix
- Introdução aos shell scripts
- 11.1 Básico sobre shell scripts
- 11.2 Uso de aspas e literais
- 11.3 Variáveis especiais
- 11.4 Códigos de saída
- 11.5 Condicionais
- 11.6 Laços
- 11.7 Substituição de comandos
- 11.8 Gerenciamento de arquivos temporários
- 11.9 Here documents
- 11.10 Utilitários importantes para shell scripts
- 11.11 Subshells
- 11.12 Incluindo outros arquivos em scripts
- 11.13 Lendo dados de entrada do usuário
- 11.14 Quando (não) usar shell scripts
- Movendo arquivos pela rede
- 12.1 Cópia rápida
- 12.2 rsync
- 12.3 Introdução ao compartilhamento de arquivos
- 12.4 Compartilhando arquivos com o Samba
- 12.5 Clientes NFS
- 12.6 Outras opções e limitações do serviço de arquivos em redes
- Ambientes de usuário
- 13.1 Diretrizes para criar arquivos de inicialização
- 13.2 Quando os arquivos de inicialização devem ser alterados
- 13.3 Elementos do arquivo de inicialização do shell
- 13.4 Ordem dos arquivos de inicialização e exemplos
- 13.5 Configurações default do usuário
- 13.6 Armadilhas dos arquivos de inicialização
- 13.7 Tópicos adicionais relativos à inicialização
- Uma breve análise do desktop Linux
- 14.1 Componentes do desktop
- 14.2 Um olhar mais detalhado sobre o X Window System
- 14.3 Explorando os clientes do X
- 14.4 O futuro do X
- 14.5 D-Bus
- 14.6 Impressão
- 14.7 Outros assuntos relacionados ao desktop
- Ferramentas de desenvolvimento
- 15.1 O compilador C
- 15.2 make
- 15.3 Debuggers
- 15.4 Lex e Yacc
- 15.5 Linguagens de scripting
- 15.6 Java
- 15.7 Próximos passos: compilando pacotes
- Introdução à compilação de software a partir de código-fonte C
- 16.1 Sistemas de geração de software
- 16.2 Desempacotando pacotes com código-fonte C
- 16.3 GNU autoconf
- 16.4 Efetuando instalações
- 16.5 Aplicando um patch
- 16.6 Resolvendo problemas de compilação e de instalações
- 16.7 Próximos passos
- Desenvolvendo sobre o básico
- 17.1 Servidores e aplicações web
- 17.2 Bancos de dados
- 17.3 Virtualização
- 17.4 Processamento distribuído e por demanda
- 17.5 Sistemas embarcados
- 17.6 Observações finais
- Bibliografia
Sobre o autor
Brian Ward trabalha com Linux desde 1993. É autor do Linux Kernel-HOWTO, The Book of VMware (No Starch Press) e The Linux Problem Solver (No Starch Press).… Ver perfil completo ▶
Livros relacionados
Opinião dos leitores
Fernando M da R
Direto ao ponto, mas não serve como um livro introdutório...
Alexandre B B
O livro é ótimo e é recomendadíssimo! Mudei alguns dos meus conceitos com relação à atuação do sistema operacional sobre hardware.
Érick R G
Ótimo livro explicando vários conceitos, muito mais que explicação de serviços e redes. A tradução não é tão ruim.
Josivan P de S
O livro é muito fácil de ler e entender. Porém, para usuários avançados. Para novatos o livro é muito pesado. Eu aprendi bastante coisa com o livro, e provavelmente uma segunda leitura deverá ocorrer.






