'winlong',
'windows[_+ ]nt[_+ ]6\.0' => 'winlong',
'windows[_+ ]?2003' => 'win2003',
'windows[_+ ]nt[_+ ]5\.2' => 'win2003',
'windows[_+ ]xp' => 'winxp',
'windows[_+ ]nt[_+ ]5\.1' => 'winxp',
'windows[_+ ]me' => 'winme',
'win[_+ ]9x' => 'winme',
'windows[_+ ]?2000' => 'win2000',
'windows[_+ ]nt[_+ ]5' => 'win2000',
'winnt' => 'winnt',
'windows[_+ \-]?nt' => 'winnt',
'win32' => 'winnt',
'win(.*)98' => 'win98',
'win(.*)95' => 'win95',
'win(.*)16' => 'win16',
'windows[_+ ]3' => 'win16',
'win(.*)ce' => 'wince',
# Macintosh OS family
'mac[_+ ]os[_+ ]x' => 'macosx',
'mac[_+ ]?p' => 'macintosh',
'mac[_+ ]68' => 'macintosh',
'macweb' => 'macintosh',
'macintosh' => 'macintosh',
# Linux family (linuxyyy)
'linux(.*)centos' => 'linuxcentos',
'linux(.*)debian' => 'linuxdebian',
'linux(.*)fedora' => 'linuxfedora',
'linux(.*)mandr' => 'linuxmandr',
'linux(.*)red[_+ ]hat' => 'linuxredhat',
'linux(.*)suse' => 'linuxsuse',
'linux(.*)ubuntu' => 'linuxubuntu',
'linux' => 'linux',
# Hurd family
'gnu.hurd' => 'gnu',
# BSDs family (bsdyyy)
'bsdi' => 'bsdi',
'gnu.kfreebsd' => 'bsdkfreebsd', # Must be before freebsd
'freebsd' => 'bsdfreebsd',
'openbsd' => 'bsdopenbsd',
'netbsd' => 'bsdnetbsd',
# Other Unix => Unix-like
'aix' => 'aix',
'sunos' => 'sunos',
'irix' => 'irix',
'osf' => 'osf',
'hp\-ux' => 'hp\-ux',
'unix' => 'unix',
'x11' => 'unix',
'gnome\-vfs' => 'unix',
# Other famous OS
'beos' => 'beos',
'os\/2' => 'os/2',
'amiga' => 'amigaos',
'atari' => 'atari',
'vms' => 'vms',
'commodore' => 'commodore',
# Miscellanous OS
'cp\/m' => 'cp/m',
'crayos' => 'crayos',
'dreamcast' => 'dreamcast',
'risc[_+ ]?os' => 'riscos',
'symbian' => 'symbian',
'webtv' => 'webtv',
'playstation[_+ ]portable' => 'psp',
'xbox' => 'winxbox',
);
/**
* OS name list ('os unique id in lower case','os clear text')
* Each unique ID string is associated to a label
*/
$OSHashLib = array(
# Windows family OS
'winlong' => 'Windows Vista (Longhorn)',
'win2003' => 'Windows 2003',
'winxp' => 'Windows XP',
'winme' => 'Windows Me',
'win2000' => 'Windows 2000',
'winnt' => 'Windows NT',
'win98' => 'Windows 98',
'win95' => 'Windows 95',
'win16' => 'Windows 3.xx',
'wince' => 'Windows CE',
'winxbox' => 'Microsoft XBOX',
# Macintosh OS
'macosx' => 'Mac OS X',
'macintosh' => 'Mac OS',
# Linux
'linuxcentos' => 'Centos',
'linuxdebian' => 'Debian',
'linuxfedora' => 'Fedora',
'linuxmandr' => 'Mandriva (or Mandrake)',
'linuxredhat' => 'Red Hat',
'linuxsuse' => 'Suse',
'linuxubuntu' => 'Ubuntu',
'linux' => 'Linux (Unknown/unspecified)',
'linux' => 'GNU Linux (Unknown or unspecified distribution)',
# Hurd
'gnu' => 'GNU Hurd',
# BSDs
'bsdi' => 'BSDi',
'bsdkfreebsd' => 'GNU/kFreeBSD',
'freebsd' => 'FreeBSD', # For backard compatibility
'bsdfreebsd' => 'FreeBSD',
'openbsd' => 'OpenBSD', # For backard compatibility
'bsdopenbsd' => 'OpenBSD',
'netbsd' => 'NetBSD', # For backard compatibility
'bsdnetbsd' => 'NetBSD',
# Other Unix => Unix-like
'aix' => 'Aix',
'sunos' => 'Sun Solaris',
'irix' => 'Irix',
'osf' => 'OSF Unix',
'hp\-ux' => 'HP UX',
'unix' => 'Unknown Unix system',
# Other famous OS
'beos' => 'BeOS',
'os/2' => 'OS/2',
'amigaos' => 'AmigaOS',
'atari' => 'Atari',
'vms' => 'VMS',
'commodore' => 'Commodore 64',
# Miscellanous OS
'cp/m' => 'CPM',
'crayos' => 'CrayOS',
'dreamcast' => 'Dreamcast',
'riscos' => 'RISC OS',
'symbian' => 'Symbian OS',
'webtv' => 'WebTV',
'psp' => 'Sony PlayStation Portable',
);
# Informations from microsoft for detecting windows version
# Windows 95 retail, OEM 4.00.950 7/11/95
# Windows 95 retail SP1 4.00.950A 7/11/95-12/31/95
# OEM Service Release 2 4.00.1111* (4.00.950B) 8/24/96
# OEM Service Release 2.1 4.03.1212-1214* (4.00.950B) 8/24/96-8/27/97
# OEM Service Release 2.5 4.03.1214* (4.00.950C) 8/24/96-11/18/97
# Windows 98 retail, OEM 4.10.1998 5/11/98
# Windows 98 Second Edition 4.10.2222A 4/23/99
# Windows Me 4.90.3000