Marvin Pascale

[B.Log]

29 Aprile 2026

Linux e /sys

Linux /sys

C’è un momento, prima o poi, nella vita di chi smanetta con Linux, in cui ci si accorge che gli strumenti “classici” non bastano più. top, htop, lsblk, ip… utilissimi, certo. Ma cosa succede davvero sotto il cofano?

È qui che entra in gioco /sys: una di quelle cose che esistono da sempre, ma che spesso restano in ombra finché non ne hai davvero bisogno. E quando ci entri dentro per la prima volta… è un po’ come aprire una porta segreta.

Questo articolo prende ispirazione da un approfondimento molto interessante su sysfs , ma lo rielabora in chiave pratica, nello stile “mani sporche di terminale”.

/sys: non è una directory, è un’interfaccia

Partiamo da una cosa fondamentale: /sys non è un filesystem “vero”.

È un filesystem virtuale (sysfs), montato in RAM, che espone direttamente le strutture interne del kernel. In pratica:

  • leggi un file → stai interrogando il kernel
  • scrivi un file → stai modificando il comportamento del kernel (in tempo reale)

Sì, hai capito bene.

E la cosa più bella? Lo fai con strumenti banalissimi:

cat
echo

/sys vs /proc: due facce della stessa medaglia

Se /proc è orientato ai processi, /sys è orientato all’hardware e ai dispositivi.

  • /proc → processi, memoria, parametri runtime
  • /sys → device, driver, bus, kernel objects

Nel documento originale viene sottolineata proprio questa differenza strutturale : /sys è molto più organizzato e riflette il modello a oggetti del kernel.

La prima volta che fai:

ls /sys

ti senti un po’ sopraffatto. È normale.

Ecco i punti chiave da cui partire:

  • /sys/class → vista “funzionale” (rete, block, input…)
  • /sys/block → dischi e storage
  • /sys/devices → struttura reale dell’hardware
  • /sys/bus → come i dispositivi sono collegati
  • /sys/module → moduli del kernel

Un concetto importante (e spesso ignorato): molto è collegato tramite symlink. Lo stesso dispositivo può apparire in più punti, ma è sempre lo stesso oggetto.

Esempio pratico: rete

Vuoi capire lo stato reale di una scheda di rete senza usare ip?

cd /sys/class/net/eth0

Dentro trovi:

cat operstate
cat speed
cat mtu
cat carrier

Oppure statistiche:

cat statistics/rx_bytes
cat statistics/tx_bytes

È tutto lì, aggiornato in tempo reale.

Cambiare parametri al volo

Qui arriva la parte divertente (e pericolosa, se fai a caso).

Vuoi cambiare l’MTU?

echo 1400 > /sys/class/net/eth0/mtu

Nessun riavvio. Nessun tool esterno. Diretto al kernel.

Come evidenziato anche nell’articolo originale :

  • le scritture vengono validate
  • se sbagli, ricevi errore (non rompi tutto… di solito)

NB: le modifiche non sono persistenti.

CPU tuning senza tool esterni

Uno degli utilizzi più interessanti è il controllo della CPU.

Governor

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Cambiarlo:

echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Frequenza corrente

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

Limitare la frequenza

echo 2400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

Perfetto per:

  • server rumorosi
  • laptop che scaldano troppo
  • ambienti virtualizzati

Storage: capire davvero i dischi

Dentro /sys/block trovi informazioni che spesso gli altri tool nascondono.

cd /sys/block/sda/queue

Qui puoi vedere:

cat scheduler
cat rotational
cat read_ahead_kb

E anche modificarli:

echo mq-deadline > scheduler

Se stai ottimizzando performance su SSD o VM, questo è oro.

Temperatura e power management

Su laptop o server, /sys è una miniera.

Temperature

for z in /sys/class/thermal/thermal_zone*; do
  echo "$(cat $z/type): $(($(cat $z/temp)/1000))°C"
done

Batteria

cat /sys/class/power_supply/BAT0/capacity
cat /sys/class/power_supply/BAT0/status

Puoi anche calcolare salute e autonomia, come mostrato nell’articolo originale .

Driver e debug (livello avanzato)

Una delle cose più potenti: gestire i driver manualmente.

Esempio (semplificato):

echo 0000:03:00.0 > /sys/bus/pci/drivers/nvidia/unbind
echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/bind

Scenario tipico:

  • GPU passthrough su Proxmox
  • debugging driver
  • recovery da crash

Qui si entra nel territorio “sysadmin serio”.

Quando usare davvero /sys

Non è uno strumento da usare sempre. Ma diventa fondamentale quando:

  • devi fare troubleshooting hardware
  • vuoi evitare tool esterni
  • ti serve controllo fine
  • stai lavorando su performance tuning
  • stai costruendo automazioni low-level

Conclusione

/sys è uno di quegli strumenti che cambiano il modo in cui vedi Linux.

Non è più una scatola nera. Diventa qualcosa che puoi:

  • esplorare
  • interrogare
  • modificare

Direttamente.

Non serve impararlo tutto. Basta iniziare a curiosare.

Magari la prossima volta che un comando “non basta”, invece di installare l’ennesimo tool… prova a dare un’occhiata in /sys.

Potresti trovare la risposta già lì.


Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.

Risorse: