== Description
A cross platform Ruby interface for getting operating system information. The
name comes from the Unix 'uname' command, but this library works on Windows as well.

== Synopsis
  require 'sys/uname'
  include Sys

  # Unix
  puts Uname.nodename  => my_host
  puts Uname.version   => #1 Fri Oct 24 22:43:28 MDT 2003
  puts Uname.sysname   => Linux
  puts Uname.machine   => i686
  puts Uname.release   => 2.4.22-21mdk

  p Uname.uname        => Show all UnameStruct members

  # Windows
  u = Uname.uname
  puts u.caption     => 'Microsoft Windows XP Home Edition
  puts u.csd_version => 'Service Pack 2'

== Constants
VERSION
  The current version number of the sys-uname library. This is a String.

== Class Methods
Uname.sysname
  Returns the operating system name, e.g. "Darwin".
    
Uname.nodename
  Returns the nodename. This is usually, but not necessarily, the 
  same as the system's hostname.
	
  You cannot currently set the nodename (root or otherwise). This may
  be added in a future release.

Uname.machine
  Returns the machine hardware type, e.g. "i686"
    
Uname.version
  Returns the operating system version. e.g. "5.8".  In the case of MS
  Windows, it returns the version plus patch information, separated by
  a hyphen, e.g. "2915-Service Pack 2".
    
Uname.release
  Returns the operating system release, e.g. "2.2.16-3"
    
Uname.uname
  Returns a struct of type UnameStruct that contains sysname, nodename,
  machine, version, and release. On HP-UX, it will also include id_number.
    
  MS Windows - there are many more, and different, fields in the struct.
  Please see the MSDN documenation on the Win32_OperatingSystem WMI class
  for a complete explanation of what each of these members mean.
    
== BSD Platforms Only (including OS X)
Uname.model
  Returns the model type, e.g. "PowerBook5,1"
    
== HP-UX Only
Uname.id
  Returns the id number, e.g. 234233587. This is a String, not a Fixnum.

== Notes
Not all of the information that you might be used to seeing with
a 'uname -a' is available. This may be added in future releases,
but since different implementations provide different information
(via different header files) it will be a bit of a pain.

Windows users - please see the MSDN documentation for the
Win32_OperatingSystem class for a complete list of what each of the
UnameStruct members mean.

== Known Bugs
None that I'm aware of. Please log any bugs on the project page at
https://github.com/djberg96/sys-uname 
	
== License
Apache-2.0

== Copyright
(C) 2002-2026 Daniel J. Berger
All Rights Reserved

== Warranty
This package is provided "as is" and without any express or
implied warranties, including, without limitation, the implied
warranties of merchantability and fitness for a particular purpose.

== Author
Daniel Berger
	
== See Also
uname(1) for unix, or WMI for MS Windows.
