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.