btop è un’applicazione versatile per tenere sotto controllo tutte le risorse utilizzate ed i processi lanciati dal vostro sistema operativo.
“Real men Don’t use GUIs“, recita un vecchio adagio in voga tra i nerds appassionati di Unix e suoi discendenti. Sotto Unix (e Linux), ogni elemento del sistema è assimilabile ad un file che può essere letto o scritto. Inoltre, la maggior parte dei comandi per la manipolzione di files può essere raggiunta da riga di comando. Kernighan e Thompson hanno “addensato” i comandi operativi in due o tre lettere, in modo che con pochi tocchi di tastiera si possa ottenere il risultato desiderato.
Il classico tool di monitoraggio del sistama da terminale è top. Top viene fornito con il sistema operativo, e si occupa di tenere sotto controllo i parametri vitali del sistema operativo: identificativo di processo ed eventuale padre, memoria reale e virtuale dei processi, consumo di CPU istantaneo e dall’accensione della macchina.
Purtroppo, come tutti i tool di Unix/Linux, la sua lettura non risulta immediata. Per tale ragione sono stati sviluppati tool Open Source che ne facilitano la lettura e ne estendono le caratteristiche.
Oggi ci occuperemo di btop.
Descrizione
Btop è un monitor delle risorse che mostra l’utilizzo e le statistiche di processore, memoria, dischi, rete e processi. Rispetto al classico top, offre le seguenti caratteristiche:
- Facile da usare, con un sistema di menu ispirato ai giochi.
- Supporto completo del mouse, tutti i pulsanti con un tasto evidenziato sono cliccabili e lo scorrimento del mouse funziona nell’elenco dei processi e nelle caselle del menu.
- Interfaccia utente veloce e reattiva con tasti SU, GIÙ per la selezione del processo.
- Funzione per mostrare statistiche dettagliate per il processo selezionato.
- Possibilità di filtrare i processi.
- Facile passaggio tra le opzioni di ordinamento.
- Visualizzazione ad albero dei processi.
- Invia qualsiasi segnale al processo selezionato.
- Menu dell’interfaccia utente per modificare tutte le opzioni del file di configurazione.
- Grafico di ridimensionamento automatico per l’utilizzo della rete.
- Mostra l’attività IO e le velocità per i dischi.
- Misuratore della batteria
- Simboli selezionabili per i grafici.
- Preimpostazioni personalizzate
Ovviamente i puristi storceranno il naso… l’80% delle informazioni offerte da btop possono essere estratte da top originale, ed il restante 20% è una “gamificazione” del comando, trasformando la shell in una GUI orientata al carattere. I “diversamente giovani” come il sottoscritto, troveranno invece l’interfaccia piacevolmente simile a quella del vecchio Norton Commander, o dei sistemi Turbo di Borland.
Installazione
L’installazione non crea soverchi problemi, basterà attenersi alle istruzioni.
Prerequisiti:
Per un’esperienza ottimale, un terminale con supporto per:
- Truecolor a 24 bit (vedere l’elenco dei terminali con supporto Truecolor)
- I terminali a 256 colori sono supportati tramite conversione da 24 bit a 256 colori quando si imposta “truecolor” su False nelle opzioni o con argomenti “-lc/–low-color”.
- La modalità TTY a 16 colori verrà attivata se viene rilevato un dispositivo tty reale. Può essere forzata con argomenti “-t/–tty_on”. Caratteri larghi (a volte sono problematici nei terminali basati sul Web)
Richiede anche una localizzazione UTF8 e un font che copra:
- Unicode Block “Braille Patterns” U+2800 – U+28FF (non necessario in modalità TTY o con grafici impostati su tipo: block o tty.)
- Unicode Block “Geometric Shapes” U+25A0 – U+25FF
- Unicode Block “Box Drawing” e “Block Elements” U+2500 – U+259F
Dipendenze facoltative (necessarie per il monitoraggio GPU) (solo Linux)
Il monitoraggio GPU richiede anche un binario btop compilato con supporto GPU (flag GPU_SUPPORT=true).
Consulta la sezione sulla compatibilità GPU per maggiori informazioni sulla compilazione con supporto GPU.
NVIDIA
Se hai una GPU NVIDIA devi usare un driver NVIDIA ufficiale, sia quello closed-source che quello open-source sono stati verificati per funzionare. Oltre a ciò devi anche avere installata la libreria dinamica nvidia-ml, che dovrebbe essere inclusa nel pacchetto driver della tua distribuzione.
Se hai una GPU AMD è richiesta rocm_smi_lib, che potrebbe o meno essere impacchettata per la tua distribuzione.
Richiede un compilatore C funzionante se si compila dalla sorgente, testato con GCC12 e Clang16. Richiede inoltre che l’utente abbia l’autorizzazione per leggere da SYSFS. Può essere impostato con make setcap (preferito) o make setuid o eseguendo btop con sudo o equivalente.
I file binari per Linux sono compilati staticamente con musl e funzionano sul kernel 2.6.39 e successivi
Scarica btop-(VERSION)-(ARCH)-(PLATFORM).tbz dall’ultima versione e decomprimi in una nuova cartella
Nota: Usa x86_64 per sistemi x86 a 64 bit, i486 e i686 sono a 32 bit!
Installa (dalla cartella creata)
Esegui:
1 2 3 |
# usa "make install PREFIX=/target/dir" per impostare la destinazione, predefinito: /usr/local # usa "sudo" solo quando installi in una directory NON di proprietà dell'utente sudo make install |
(Facoltativo/Obbligatorio per Intel GPU) Imposta le capacità estese o il bit suid su btop
Abilita l’invio di segnali a qualsiasi processo senza iniziare con sudo e può prevenire problemi di permessi di lettura /proc su alcuni sistemi.
È obbligatorio per il supporto Intel GPU.
Esegui:
1 2 |
# esegui dopo make install e usa lo stesso PREFISSO se ne è stato usato uno durante l'installazione sudo make setcap |
oppure
1 2 3 |
# esegui dopo make install e usa lo stesso PREFISSO se ne è stato usato uno durante l'installazione # imposta SU_USER e SU_GROUP per selezionare utente e gruppo, il valore predefinito è root:root sudo make setuid |
Versione binaria (dal repository del sistema operativo nativo)
openSUSE – Tumbleweed:
1 |
sudo zypper in btop |
Per tutte le altre versioni, vedi Software openSUSE: btop
Fedora:
1 |
sudo dnf install btop |
RHEL/AlmaLinux 8+
1 2 |
sudo dnf install epel-release sudo dnf install btop |
FreeBSD
1 |
pkg install btop |
NetBSD
1 |
pkg_add btop |
Versione binaria su Homebrew (macOS (x86_64 & ARM64) / Linux (x86_64))
1 |
brew install btop |
Ubuntu:
1 |
snap install btop |
Compilazione
Richiede almeno GCC 10 o Clang 16. Il makefile necessita anche di GNU coreutils e sed (dovrebbero essere già installati su qualsiasi distribuzione moderna).
Compatibilità GPU
Btop++ supporta GPU Nvidia e AMD e IGPU Intel out of the box su Linux x86_64, a condizione che tu abbia i driver e le librerie corretti. Il supporto GPU per Nvidia o AMD non funzionerà quando si collega staticamente glibc (o musl, ecc.)!
Per Linux x86_64 il flag GPU_SUPPORT è impostato automaticamente su true, per disabilitare manualmente il supporto GPU imposta il flag su false, come:
make GPU_SUPPORT=false (o cmake -DBTOP_GPU=false con CMake)
Seguire le operazioni mostrate nel file readme.md
Considerazioni finali
Questa utility risulterà particolarmente gradita a tutti gli smanettoni che vogliono tenere sotto controllo la propria macchina senza dover ricordare comandi criptici. Ad essere cattivi, non aggiunge nulla che non sia già presente nel sistema, se non un po’ di colore e di animazione relativa ai processi in uso (ma per quello c’è già Windows….). Resta il fatto che sono tool di questo genere che avvicinano l’utente alle prime armi ad un sistema operativo la cui curva di apprendimento è inizialmente ripida. Agiungiamo che il tool è open source, e gira praticamente su tutte le varianti Linux, compreso il Raspberry pi…
Iscriviti ai nostri gruppi Telegram
Link utili
- Arduino UNO R3
- Elegoo UNO R3
- Arduino Starter Kit per principianti
- Elegoo Advanced Starter Kit
- Arduino Nano
- Raspberry PI 5
- Raspberry PI 400
- Raspberry PI Pico
- Programmiamo il Pico