Determine information regarding the operating system

Author: name contact BSD flavour

Reviewer: name contact BSD flavour

Reviewer: name contact BSD flavour


Be able to determine the type and version of the operating system installed.


The uname command can display the type and version of the operating system installed, including the system's hostname, the release level, and the hardware platform name and the processor architecture name. The -a option will show many details, and is similar to calling uname with the "-m -n -r -s -v" options.

Note that usually the kernel and userland (like libc, BSD tools and network daemons, et cetera) are kept in sync so the same version would apply for the operating system as a whole.

TODO: is "sync" term okay here? Maybe improve sentence. And should this mention that uname is for kernel only?

By default, it shows the name of the operating system:

""$ uname ""DragonFly ""$ uname -s ""DragonFly

The machine's hardware name and processor architecture name can be displayed, respectively:

""$ uname -m ""i386 ""$ uname -p ""i386

TODO: add note and example about when -m and -p are different

It can also provide the time and date of the built kernel, the host it was built on, and the path to the kernel configuration used, for example:

""$ uname -v ""DragonFly 1.7.0-DEVELOPMENT #0: Fri Oct 27 12:10:01 PDT 2006 ""

The sysctl tool (introduced in section Modify a kernel parameter on the fly) can also show some of this same information, for example:

""$ sysctl kern.ostype ""kern.ostype = NetBSD ""$ sysctl kern.hostname ""kern.hostname = ""$ sysctl kern.osrelease ""kern.osrelease = 3.99.24 ""$ sysctl kern.version ""kern.version = NetBSD 3.99.24 (JCR20060802) #0: Mon Sep 25 12:22:43 CDT 2006 reed@new-host-8:/usr/src/sys/arch/i386/compile/JCR20060802 "" ""$ sysctl hw.machine ""hw.machine = i386 ""$ sysctl hw.machine_arch ""hw.machine_arch = i386

On NetBSD, an /etc/release file also gives further details to identify the source code used to build the system.

Practice Exercises


More information

uname(1), sysctl(8); /etc/release on NetBSD