Uname
# Uname

uname ist sowohl eine Systemfunktion (uname) als auch ein Systemprogramm (/usr/bin/uname) in UNIX und UNIX-ähnlichen Betriebssystemen. Funktion und Programm liefern den Namen und weitere Informationen über das Betriebssystem. Vorhandensein und Verhalten sowohl der Funktion als auch des Programms, nebst dessen Optionen, sind in POSIX normiert.

Die Funktion liefert die Informationen als struct, deren Form in sys/utsname.h festgelegt wird, zurück.

Das Kommando gibt die Informationen auf stdout aus. Sowohl für die Funktion wie für das Kommando sind Form und Inhalt der Ausgabe nicht normiert.

## Implementierungen

Funktion und Programm wurden erstmals in PWB/UNIX implementiert. Einige Unix-Varianten, zum Beispiel AT&T UNIX System V Release 3.0, enthalten zusätzlich das Programm setname, mit dem die Werte, die uname zurückliefert, geändert werden können.

In den Manpages der Systeme FreeBSD, OpenBSD, NetBSD wird die POSIX-Konformität ihrer Implementierung des Programms uname behauptet.

Die Manual Documents der GNU-Implementierung des Programms weisen nicht explizit eine POSIX-Konformität aus, stellen aber für die Option -s fest, dass der Kernelname statt des Betriebssystemnamens als Inhalt ausgegeben wird. Den Begriff Kernel kennt die POSIX-Spezifikation nicht, allerdings widerspricht dieses Verhalten – wie eingangs beschrieben – ihr auch nicht ausdrücklich.

## Beispiel

Auf einem System mit Darwin könnte die Ausgabe des Befehls uname mit der Option -a (setze alle verfügbaren Optionen) so aussehen:

## Ähnliche Programme in anderen Betriebssystemen

Unter macOS kann zusätzlich der Befehl sw_vers verwendet werden, um Informationen über das System auszugeben.

In MS-DOS und seinen Abkömmlingen (etwa Windows) wird das Kommando ver zur Versionsabfrage benutzt. In VMS bzw. OpenVMS kann F$GETSYI bei entsprechender Parametrierung ähnliche Informationen über das laufende System liefern. Unter AmigaOS kompatiblen Systemen ist es version.

