Mão na massa · ~90 min
Hardware e tipos de SO — mão na massa
Siga na ordem, leia o "por que importa" antes de rodar cada comando, e use as dicas colapsáveis se travar.
Passo 1 de 5
Conhecendo sua CPU
lscpuO que é
Um comando que resume tudo sobre o processador: modelo, quantos núcleos, arquitetura, velocidade.
Por que importa
É a primeira pergunta que você faz ao diagnosticar performance: "quantos núcleos essa máquina tem de verdade?"
$ lscpu Architecture: x86_64 CPU(s): 2 Model name: Intel(R) Core(TM) i7 ... CPU MHz: 2600.000
na sua VM, "CPU(s)" provavelmente mostra 2 — foi o que configuramos na Semana 0. Isso não é o processador físico do seu notebook inteiro, é o que o VirtualBox reservou pra VM.
Travou? Comando não encontrado
Alguns Ubuntus mínimos não trazem lscpu por padrão. Instale com: sudo apt install util-linux
Passo 2 de 5
Quanta memória você tem — e quanta sobra
free -hO que é
Mostra memória RAM total, usada, livre e a memória swap (área do disco usada como RAM de emergência).
Por que importa
Quando um sistema "trava" ou fica lento, a primeira suspeita costuma ser: acabou a memória disponível.
$ free -h total used free shared Mem: 3.8Gi 612Mi 2.4Gi 12Mi Swap: 0B 0B 0B
o -h significa "human-readable" — sem ele, os números vêm em bytes crus, ilegíveis. O total deve bater com os 4096 MB (~3.8-4 GiB) que configuramos na criação da VM.
Por que "total" não é exatamente 4096 MB?
Uma parte da RAM é reservada pelo próprio kernel e pelo firmware antes mesmo do Linux terminar de inicializar. É normal ver um número um pouco menor que o configurado no VirtualBox.
Passo 3 de 5
A mesma informação, direto da fonte
lscpu e free -h são versões "traduzidas". Agora vamos ver de onde elas tiram esses dados: o /proc.cat /proc/cpuinfoO que é
O arquivo virtual que o kernel expõe com os dados crus de cada núcleo de CPU — a fonte que o lscpu lê e organiza.
Por que importa
É a prova de que "hardware" e "o que o SO te mostra" são a mesma coisa, só que em duas roupagens diferentes.
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel model name : Intel(R) Core(TM) i7 ... cpu MHz : 2600.000 ... processor : 1 vendor_id : GenuineIntel ...
um bloco de texto bem mais longo e cru que o lscpu — repetido uma vez para cada núcleo (0, 1, ...). Conte quantos blocos "processor" aparecem: deve bater com o "CPU(s)" do passo 1.
cat /proc/meminfoO que é
A versão crua do free -h — dezenas de linhas com cada detalhe da memória, em kilobytes.
Por que importa
Mostra que "memória livre" não é uma única linha simples — tem várias categorias (livre, em cache, em buffers).
$ cat /proc/meminfo | head -5 MemTotal: 3980112 kB MemFree: 2540332 kB MemAvailable: 3120004 kB Buffers: 88420 kB Cached: 612340 kB
usamos | head -5 pra ver só as 5 primeiras linhas — o arquivo completo tem mais de 40. Compare o "MemTotal" aqui (em kB) com o "total" do free -h (em GiB) — são o mesmo número, unidades diferentes.
O que é esse "|" no meio do comando?
É o pipe — ele pega a saída de um comando e "encana" para dentro do próximo. Aqui, a saída inteira de cat /proc/meminfo vira a entrada de head -5, que mostra só as 5 primeiras linhas. Vamos usar bastante pipe ao longo do curso.
Passo 4 de 5
E o disco, quanto espaço sobra?
df -hO que é
Disk Free — mostra cada partição/disco montado no sistema, com espaço total, usado e livre.
Por que importa
Disco cheio é uma das causas mais comuns (e mais bobas) de sistemas travando em produção.
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 25G 6.1G 18G 26% / tmpfs 1.9G 0 1.9G 0% /dev/shm
a linha com / na coluna "Mounted on" é o seu disco principal — os 25 GB que configuramos na criação da VM. O "Use%" ainda deve estar baixo, já que a VM é nova.
O que é essa linha "tmpfs"?
É um sistema de arquivos temporário que vive na memória RAM, não no disco — por isso é tão rápido e por isso some quando a máquina desliga. Não se preocupe com ele agora, é só curiosidade.
Passo 5 de 5
O arquivo que muda sozinho
/proc não guarda arquivos de verdade.cat /proc/uptime (rode duas vezes)O que é
Mostra há quantos segundos a máquina está ligada (primeiro número) e há quantos segundos ela está ociosa (segundo número).
Por que importa
É o exemplo mais claro de que o conteúdo do /proc é gerado no instante da leitura — não fica salvo em lugar nenhum.
$ cat /proc/uptime 3841.92 3714.05 $ cat /proc/uptime 3846.17 3717.83
os dois números vão ser diferentes entre a primeira e a segunda leitura — mesmo que você rode os comandos com poucos segundos de diferença. Isso é o comportamento esperado, não um erro.
Quero comparar com um arquivo de verdade
Tente o mesmo teste com um arquivo comum: echo "teste" > ~/arquivo.txt && cat ~/arquivo.txt && cat ~/arquivo.txt Repare que, dessa vez, as duas leituras são idênticas — porque esse arquivo existe de verdade no disco.
REGISTRO NO PORTFÓLIO
Suas 3 observações
CPU. Compare a saída de lscpu com cat /proc/cpuinfo. O que muda entre as duas formas de ver a mesma informação?
0 / 40 caracteres
Memória. O que os campos "MemFree" e "MemAvailable" do /proc/meminfo sugerem sobre como o Linux gerencia memória livre?
0 / 40 caracteres
/proc como janela virtual. Por que /proc/uptime muda de valor a cada leitura, mesmo sem você "editar" nada? Conecte com a ideia de sistema de arquivos virtual vista na aula.
0 / 40 caracteres
Exemplo de observação forte × fraca
Observação fraca
"O comando mostrou os números da memória e tinha várias linhas com informações."
Observação forte
"MemFree mostra só a memória totalmente ociosa, enquanto MemAvailable soma a isso o que está em cache/buffer e pode ser liberado na hora se um programa precisar — por isso MemAvailable é sempre maior."
CHECKLIST FINAL
Antes de encerrar
Checklist final
- Rodei
lscpue identifiquei quantos núcleos minha VM tem - Rodei
free -he comparei com a memória configurada na VM - Comparei
lscpu/free -hcom/proc/cpuinfo//proc/meminfo - Rodei
df -he localizei minha partição principal - Rodei
cat /proc/uptimeduas vezes e confirmei que os números mudam - Enviei minhas 3 observações no quiz da semana
Terminou tudo? Abra o quiz da semana (botão logo abaixo) para enviar suas observações e responder a verificação de leitura.