bug-coreutils
[Top][All Lists]
Advanced

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

Re: New uname option to query exact OS distribution


From: G. Vamsee Krishna
Subject: Re: New uname option to query exact OS distribution
Date: Mon, 23 Aug 2004 21:20:41 +0530 (IST)

Hello,
        If no one else is trying to implement these features, I'd like to 
give it a shot.

regards,
GVK

On Sun, 22 Aug 2004, Markus Kuhn wrote:

> Feature proposal for POSIX uname:
> 
> At present, the 'uname -o' command simply gives GNU/Linux for any of the
> many Linux distributions. Since these distributions differ often very
> significantly, it would be useful if uname could also identify the OS
> distribution and version that it came with. I believe, the granularity
> of the fields provided traditionally by uname is no longer sufficient
> and additional fields are necessary to distinguish between exact
> distribution variants of the same operating system. The presence of the
> lsb_release in the LSB Core specification is an indication that uname as
> currently defined by POSIX no longer fulfills its role adequately.
> 
> I propose to review uname and extend it appropriately such that other
> new non-POSIX OS identification mechanisms such as lsb_release become
> unnecessary. As a start, I suggest to add new command line options to
> uname to distinguish between operating system distributions:
> 
> For example, this could look like:
> 
> $ uname -d
> SuSE Linux Professional 9.1 (DVD 32-bit)
> $ uname -d
> Red Hat Linux 9
> 
> The information could be split up further into four fields:
> 
>   - DISTRIB_VENDOR. This is the commonly used colloquial shortname of
>     the vendor or organization that prepared the installable OS
>     distribution. Colloquial should mean that this name should be free
>     of legal designators (i.e. use "Sun" and not "Sun Microsystems Inc.").
>     (e.g. "SuSE", "Red Hat", "Novell", "Sun", "IBM", "Mandrake", "Debian")
> 
>   - DISTRIB_PRODUCT: This is the product name, without the vendor
>     name (which typically precedes it immediately), and also without the
>     version number (which typically follows immediately afterwards).
>     (e.g. "Linux", "Linux Professional", "Enterprise Server",
>     "Terminal Server", "Home Edition")
> 
>   - DISTRIB_RELEASE: Typically a dot-separated list of integer
>     numbers. Where this is a release date instead of a version number,
>     the ISO 8601 notation should be used.
>     (e.g., "8", "9.1", "2004-12-31")
> 
>   - DISTRIB_ATTRIBUTES (optional): This is a list of optional attributes
>     such as CPU type, installation source medium, regional variant, etc.
>     that distinguish several available variants of the same product version.
>     The individual attribute in this list should not contain any whitespace
>     or parenthesis and should be separated by a single whitespace.
>     (e.g., "DVD 32-bit", "FTP i586", "CD Amiga nocrypto")
> 
> These fields can be made individually accessable:
> 
> $ uname -d
> SuSE Linux Professional 9.1 (DVD 32-bit)
> $ uname -dv
> SuSE
> $ uname -dp
> Linux Professional
> $ uname -dr
> 9.1
> $ uname -da
> DVD 32-bit
> 
> The suggested output format is very simple:
> 
> If DISTRIB_ATTRIBUTES is non-empty
> 
>   "%s %s %s (%s)\n", DISTRIB_VENDOR, DISTRIB_PRODUCT, DISTRIB_RELEASE, 
> DISTRIB_ATTRIBUTES
> 
> otherwise
> 
>   "%s %s %s\n", DISTRIB_VENDOR, DISTRIB_PRODUCT, DISTRIB_RELEASE
> 
> Note: I deliberately did not include in this proposal an extra field for
> a release code name (as can be queried via 'lsb_release -c'). Most
> vendors do not use or publish such release project code names. They also
> add no information beyond DISTRIB_RELEASE and lack the temporal ordering
> implied by a version number.
> 
> Suggested implementation for uname in GNU coreutils:
> 
> There is little point in trying to autodetect this, as there is no
> portable and predictable way yet to find out this information (uname -d
> is meant to become exactly that). The person preparing uname for
> inclusion into a distribution package will have to manually provide
> values for these four fields in a configuration file. To ensure that
> this is not forgotten, the uname distribution should refuse to compile
> out of the box, until these values have been configured.
> 
> Related files:
> 
>   /etc/*-release, /etc/issue, /etc/issue.net, /etc/motd, /usr/bin/lsb_release
> 
> Related specifications:
> 
>   - http://www.opengroup.org/onlinepubs/009695399/utilities/uname.html
>   - http://www.opengroup.org/onlinepubs/009695399/functions/uname.html
>   - http://www.linuxbase.org/spec/booksets/LSB-Core/LSB-Core.html#LSBRELEASE
>   - http://cvs.openpkg.org/openpkg-src/openpkg/platform
> 
> Markus
> 
> 

-- 
Real programmers don't work 9 to 5. If any real programmers are around at 9am 
it's because they were up all night.





reply via email to

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