Front | Info | Lists | Newsfeeds | Study Guide | What is BSD?
Advertisement: The OpenBSD PF Packet Filter Book: PF for NetBSD, FreeBSD, DragonFly and OpenBSD

BSD Links
·New Links
·User Groups

This is the BSDA Study Guide Book written via a wiki collaboration. This is a work in progress. You may contribute to or discuss this specific page at

Determine information regarding the operating system


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
$ uname -s

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

$ uname -m
$ uname -p

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

$ 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

Front | Information | Lists | Newsfeeds