Comando uname in Linux: controllare kernel e architettura
uname mostra il nome e la release del kernel in esecuzione e l’architettura della macchina. Non identifica la distribuzione Linux e non fornisce un inventario completo dell’hardware.
Senza opzioni restituisce solo il nome del kernel. Usa -r per la release attiva e -m per il tipo di macchina. Con -a ottieni più informazioni su una riga, ma alcuni valori contengono spazi: negli script richiedi separatamente i campi necessari, anziché dividere questa riga in colonne fisse.
Sintassi di base
uname [opzioni]
Le parentesi indicano opzioni facoltative: non vanno digitate. Apri un terminale sul sistema da esaminare; per questi comandi di sola lettura non serve sudo. In una connessione SSH, i risultati riguardano il sistema remoto su cui esegui il comando. Implementazione e opzioni disponibili possono variare: consulta man uname sul sistema interessato.
Esempi pratici
Nome del kernel attivo
Esegui il comando senza opzioni. Su un normale sistema Linux il risultato è Linux, lo stesso richiesto da -s; questo non permette di distinguere Ubuntu da Rocky Linux.
uname
Release del kernel
Per verificare quale kernel è attualmente avviato, per esempio prima di controllare la compatibilità di un driver o modulo, usa:
uname -r
Confronta l’intera stringa con i requisiti del modulo o del pacchetto, compresi gli eventuali suffissi della distribuzione. Il solo numero iniziale non certifica la compatibilità.
Architettura della macchina
uname -m
Valori comuni sono x86_64 e aarch64, ma dipendono dall’ambiente. Usa il risultato come primo controllo della piattaforma di un binario; verifica anche formato, librerie e requisiti indicati dal produttore. Il nome dell’architettura nel gestore pacchetti può essere diverso, per esempio amd64 per x86_64.
Distinguere kernel e distribuzione
uname -r descrive il kernel in esecuzione, mentre uname -m indica il tipo di macchina esposto nell’ambiente corrente. Per vedere insieme nome del kernel, release e architettura:
uname -srm
Esempio illustrativo, non output misurato: la release e l’architettura cambiano da un sistema all’altro; xx è un segnaposto.
Linux 6.8.0-xx-generic x86_64
In questo esempio, il primo elemento è il nome del kernel, il secondo la release e il terzo l’architettura. L’ordine dipende dai campi selezionati, non dall’ordine delle lettere delle opzioni.
Per nome e versione della distribuzione leggi /etc/os-release, per esempio con cat /etc/os-release. PRETTY_NAME è destinato alla visualizzazione; negli script sono utili ID e, se presente, VERSION_ID. Se il file manca, controlla /usr/lib/os-release senza combinare i due file. I singoli campi possono essere assenti. Il comando lscpu serve invece ad approfondire le caratteristiche della CPU.
Opzioni principali
| Opzione | Significato |
|---|---|
-a |
Mostra più informazioni di sistema su una riga. In GNU uname omette tipo di processore e piattaforma hardware se sconosciuti. |
-r |
Mostra la release del kernel in esecuzione. |
-m |
Mostra il tipo di macchina, spesso usato come indicazione dell’architettura. |
-s |
Mostra il nome del kernel; è il comportamento predefinito. |
-n |
Mostra il nome del nodo di rete; non è l’indirizzo IP. |
Limiti e verifiche importanti
Installare un nuovo pacchetto del kernel non cambia automaticamente ciò che mostra uname -r: il comando continua a descrivere il kernel in esecuzione. Dopo un riavvio, verifica nuovamente la release e confrontala con quella che intendevi avviare.
Un container Linux condivide normalmente il kernel dell’host Linux: uname non identifica la distribuzione dell’immagine. Se i container girano dentro una macchina virtuale, il kernel condiviso è quello della macchina virtuale. Anche la personalità del processo o un ambiente di compatibilità possono influire sui dati esposti: non dedurre da -m da solo tutte le capacità della CPU o dell’ambiente utente.
Nella verifica con GNU coreutils 8.32 tramite Git per Windows sono stati eseguiti uname, uname -s, uname -r, uname -m e uname -srm. Il comando senza opzioni coincideva con -s e l’output combinato rispettava l’ordine nome–release–macchina. Il nome era MINGW64_NT-10.0-28000: questa prova riguarda l’ambiente Windows e non convalida un kernel Linux, driver o container.
Domande frequenti
Posso conoscere la versione della distribuzione con uname?
No. Il comando mostra soprattutto informazioni su kernel e macchina. Leggi /etc/os-release per identificare la distribuzione e la sua versione, quando dichiarata, senza confonderla con la release di uname -r.
Documentazione ufficiale
Per significato e ordine dei campi consulta la sezione «uname invocation» del manuale nel repository ufficiale GNU coreutils. Il formato e i campi per identificare la distribuzione sono descritti nella specifica ufficiale di os-release.




