Rastreamento de chamadas de sistema, análise de processos e gerenciamento de memória, interpretação de mensagens do kernel, inspeção de dispositivos e partições, exploração do sysfs e do diretório /dev, além da criação, formatação, montagem e desmontagem de partições virtuais no Linux.
Utilize o `strace` para rastrear o comando `ls`. Capture a tela da saída e identifique a transição entre o User Space e o Kernel Space, destacando as chamadas de sistema (syscalls) que solicitam serviços do kernel.
execve("/usr/bin/ls", ["ls"], 0x7ffc1... /* 58 vars */) = 0
brk(NULL) = 0x55c8a...
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
getdents64(3, /* 18 entries */, 32768) = 496
getdents64(3, /* 0 entries */, 32768) = 0
close(3) = 0
write(1, "arquivo1.txt\ndisco_virtual.img\ndocumento.pdf\n", 48) = 48
close(1) = 0
close(2) = 0
exit_group(0) = ?
Utilize o comando `ps aux | head -n 10` para listar os dez primeiros processos em execução. Identifique o PID (ID do Processo), o USER (Usuário) e o %CPU (uso do processador) de cada processo.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 169444 11788 ? Ss Sep01 0:02 /sbin/init splash root 2 0.0 0.0 0 0 ? S Sep01 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Sep01 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Sep01 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< Sep01 0:00 [kworker/0:0H-kblockd] root 9 0.0 0.0 0 0 ? I< Sep01 0:00 [mm_percpu_wq] root 10 0.0 0.0 0 0 ? S Sep01 0:01 [ksoftirqd/0] root 11 0.0 0.0 0 0 ? I Sep01 0:15 [rcu_sched] hacker 1500 0.5 2.3 875432 18234 ? Sl Sep01 12:34 /usr/bin/gnome-shell
Utilize o comando `free -h` para verificar o gerenciamento de memória. Capture a tela, explicando o significado das linhas Mem e Swap.
total used free shared buff/cache available
Mem: 15Gi 3.5Gi 8.1Gi 235Mi 3.8Gi 11Gi
Swap: 2.0Gi 0B 2.0Gi
Utilize o comando `dmesg` para visualizar mensagens do kernel. Capture a tela mostrando a detecção de um ou mais dispositivos de hardware durante a inicialização.
[ 0.693431] ata1.00: ATA-10: KINGSTON SA400S37240G, SBFK71F0, max UDMA/133 [ 0.694512] ata1.00: 240.0 GB SSD, quirks 0x0 [ 1.258523] usb 1-4: New high-speed USB device number 2 using xhci_hcd [ 1.412354] usb 1-4: Found U-Boot 2017.03 [ 2.548971] usb 3-2: new SuperSpeed USB device number 2 using xhci_hcd [ 2.570123] usb 3-2: New USB device found, idVendor=0bda, idProduct=8153, bcdDevice=30.00 [ 2.570127] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6 [ 2.570129] usb 3-2: Product: USB 10/100/1000 LAN
ata1.00: ATA-10: KINGSTON SA400S37240G: O kernel detectou um dispositivo no barramento ATA (usado por discos SATA). Ele identificou o modelo exato do dispositivo: um SSD Kingston de 240GB.usb 1-4: New high-speed USB device...: Um dispositivo USB 2.0 foi conectado na porta 4 do barramento USB 1.usb 3-2: Product: USB 10/100/1000 LAN: Um dispositivo USB 3.0 (SuperSpeed) foi conectado e identificado como um adaptador de rede LAN Gigabit. O kernel agora sabe qual driver carregar para fazer essa placa de rede funcionar.Utilize o comando `lsblk` para listar os dispositivos de bloco do sistema (discos e partições). Capture a tela da saída, identificando um disco e suas partições.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 55.5M 1 loop /snap/core18/2785 loop1 7:1 0 450M 1 loop /snap/libreoffice/301 sda 8:0 0 223.6G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi └─sda2 8:2 0 223.1G 0 part / sdb 8:16 1 28.7G 0 disk └─sdb1 8:17 1 28.7G 0 part /media/hacker/PENDRIVE
sda1: A primeira partição, com 512 MB, montada em `/boot/efi` (partição de boot do sistema).sda2: A segunda partição, com 223.1 GB, montada na raiz `/` (o sistema de arquivos principal).Navegue até o diretório `/dev` e utilize o comando `ls -l /dev/sd*`. Capture a tela da saída, identificando um arquivo de dispositivo de bloco (b).
brw-rw---- 1 root disk 8, 0 Sep 2 08:30 /dev/sda brw-rw---- 1 root disk 8, 1 Sep 2 08:30 /dev/sda1 brw-rw---- 1 root disk 8, 2 Sep 2 08:30 /dev/sda2 brw-rw---- 1 root disk 8, 16 Sep 2 08:30 /dev/sdb brw-rw---- 1 root disk 8, 17 Sep 2 08:30 /dev/sdb1
Utilize o comando `sudo udevadm info --query=property --name=
DEVPATH=/devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/block/sda DEVNAME=/dev/sda DEVTYPE=disk MAJOR=8 MINOR=0 SUBSYSTEM=block USEC_INITIALIZED=696432 ID_VENDOR=ATA ID_MODEL=KINGSTON_SA400S37240G ID_MODEL_ENC=KINGSTON\x20SA400S37240G\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 ID_REVISION=SBFK71F0 ID_SERIAL=ATA_KINGSTON_SA400S37240G_50026B7380755D1C ID_SERIAL_SHORT=50026B7380755D1C ID_TYPE=disk ID_PART_TABLE_UUID=c2a6d10f-13a8-4e89-8d9e-1d547f208173 ID_PART_TABLE_TYPE=gpt ID_WWN=0x50026b7380755d1c ID_WWN_WITH_EXTENSION=0x50026b7380755d1c ...
Navegue até o diretório `/sys/block/` e liste seu conteúdo. Identifique o nome do seu disco (por exemplo, `sda`).
total 0 lrwxrwxrwx 1 root root 0 Sep 3 10:00 loop0 -> ../devices/virtual/block/loop0 lrwxrwxrwx 1 root root 0 Sep 3 10:00 loop1 -> ../devices/virtual/block/loop1 ... lrwxrwxrwx 1 root root 0 Sep 3 10:00 sda -> ../devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/block/sda lrwxrwxrwx 1 root root 0 Sep 3 10:00 sdb -> ../devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/host1/target1:0:0/1:0:0:0/block/sdb
Entre no diretório do seu disco (`/sys/block/sda/`) e explore seu conteúdo. Encontre o arquivo `size` e use o comando `cat` para ler seu conteúdo. Capture a tela da saída.
O que o valor do arquivo `size` representa?
Como essa estrutura (`sysfs`) é diferente do `/dev`?
Crie um arquivo de 50 MB para simular um disco rígido: `dd if=/dev/zero of=disco_virtual.img bs=1M count=50`.
Utilize o comando `fdisk` no arquivo `disco_virtual.img` para criar uma partição primária de 25 MB. Capture a tela do processo e do salvamento.
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xabcdef12.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-102399, default 2048): [ENTER]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-102399, default 102399): +25M
Created a new partition 1 of type 'Linux' and of size 25 MiB.
Command (m for help): p
Disk disco_virtual.img: 50 MiB, 52428800 bytes, 102400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xabcdef12
Device Boot Start End Sectors Size Id Type
disco_virtual.img1 2048 53247 51200 25M 83 Linux
Command (m for help): w
The partition table has been altered.
Syncing disks.
Formate a nova partição com o sistema de arquivos ext4.
`sudo losetup -f disco_virtual.img`
`sudo mkfs.ext4
mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 25600 1k blocks and 6400 inodes Filesystem UUID: 1234abcd-efgh-5678-ijkl-9101112mnop Superblock backups stored on blocks: 8193 Allocating group tables: done Writing inode tables: done Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done
Crie um ponto de montagem, monte a partição formatada e verifique a montagem com `df -h`.
Filesystem Size Used Avail Use% Mounted on /dev/loop0p1 24M 28K 23M 1% /mnt/virtual
Desmonte a partição e remova o arquivo do disco virtual.