IFCE Horizonte · Portal
ADS23 · Sistemas Operacionais

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.

DURAÇÃO · ~90 minPRÉ-REQUISITO · VM Ubuntu ligada (Semana 0)ENTREGA · Quiz da semana

Passo 1 de 5

Conhecendo sua CPU

Antes de qualquer coisa, vamos descobrir com que processador sua VM está trabalhando.
1lscpu

O 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
O que esperar:

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

Agora vamos olhar para a RAM: total, em uso e livre.
2free -h

O 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 que esperar:

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.
3cat /proc/cpuinfo

O 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
...
O que esperar:

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.

4cat /proc/meminfo

O 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
O que esperar:

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?

Vamos fechar o trio CPU/memória/disco olhando para o armazenamento.
5df -h

O 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
O que esperar:

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

Este é o passo mais importante do roteiro — a prova ao vivo de que o /proc não guarda arquivos de verdade.
6cat /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
O que esperar:

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

A entrega é no quiz da semana. Este espaço é para você rascunhar antes — o que escrever aqui já aparece preenchido lá. Cada observação precisa ter no mínimo 40 caracteres e conectar o comando ao conceito, não apenas descrever o que apareceu na tela.

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 lscpu e identifiquei quantos núcleos minha VM tem
  • Rodei free -h e comparei com a memória configurada na VM
  • Comparei lscpu/free -h com /proc/cpuinfo//proc/meminfo
  • Rodei df -h e localizei minha partição principal
  • Rodei cat /proc/uptime duas vezes e confirmei que os números mudam
  • Enviei minhas 3 observações no quiz da semana
0 / 6 verificados

Terminou tudo? Abra o quiz da semana (botão logo abaixo) para enviar suas observações e responder a verificação de leitura.