bug-sh-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: uname


From: Bob Proulx
Subject: Re: uname
Date: Sun, 28 Jan 2001 16:12:37 -0700

> I usually look to uname to give me the operating
> system version. In this case, I was investigating
> whether a particular system was Redhat 6.2 or 7.0.
>
> Now uname -v is suppose to "print the operating system
> version".  Is this below output normal? Wherein lies
> the operating system version? 
> 
> On Redhat 6.2: 
> uname -v    
> #1 SMP Mon Jun 19 19:00:35 EDT 2000
> 
> On Redhat 7.0      
> uname -v 
> #1 Tue Aug 22 16:49:06 EDT 2000

But Redhat is not an operating system but rather a distribution of an
operating system.  The operating system in this case is Linux.  The
above is normal output on Linux systems.

The -v uname option returns the version.  The -r uname option returns
the release.  This is specified by the "utsname" data structure which
is compiled into the operating system kernel.  In order to comply with
various standards including POSIX every system must provide this data
to support legacy UNIX programs.  This is derived from AT&T System V
UNIX.  The uname program only reports what the kernel has stored into
that data structure.

The problem is that the fields are of limited (too small) size and not
well defined.  Different systems place different information into
those fields.  In my personal opinion this command and data structure
are not useful for portable programs and should be avoided.  The
default uname output, uname -s, is probably the only portable output.

Here is an example.  The command followed by the response on various
platforms.

Linux:
  $ uname
  Linux
  $ uname -r
  2.0.27
  $ uname -v
  #6 Sun Dec 8 01:13:13 MST 1996

HP-UX:
  $ uname
  HP-UX
  $ uname -r
  B.10.20
  $ uname -v
  A

IBM AIX:
  $ uname  
  AIX
  $ uname -r
  2
  $ uname -v
  4

On Linux it was chosen to implement the kernel source version as the
release and the kernel build time as the operating system version.  On
HP-UX the version indicates the commercial licensing of the system
(where A == 2-user, B == 16-user, U == unlimited-user, etc.) and the
release indicates the operating system version.  On AIX the version
contains only the major version number and the release the minor
version number, 4.2 in this case.

None of this is important except to note that they are all different
and therefore portable programs have to be careful in the use of the
data from the utsname data structure.

Further documentation can be found online at the following location.

  http://www.unix-systems.org/single_unix_specification_v2/xsh/uname.html

Bob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]