298 lines
13 KiB
HTML
298 lines
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>Rationale</title>
|
|
</head>
|
|
<body>
|
|
|
|
<basefont size="3">
|
|
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group</font></center>
|
|
|
|
<hr size="2" noshade>
|
|
<h3><a name="tag_02_04"></a>Utilities</h3>
|
|
|
|
<p>For the utilities included in IEEE Std 1003.1-2001, see the RATIONALE sections on the individual reference pages.</p>
|
|
|
|
<h5><a name="tag_02_04_00_01"></a>Exclusion of Utilities</h5>
|
|
|
|
<p>The set of utilities contained in IEEE Std 1003.1-2001 is drawn from the base documents, with one addition: the <a
|
|
href="../utilities/c99.html"><i>c99</i></a> utility. This section contains rationale for some of the deliberations that led to this
|
|
set of utilities, and why certain utilities were excluded.</p>
|
|
|
|
<p>Many utilities were evaluated by the standard developers; more historical utilities were excluded from the base documents than
|
|
included. The following list contains many common UNIX system utilities that were not included as mandatory utilities, in the User
|
|
Portability Utilities option, in the XSI extension, or in one of the software development groups. It is logistically difficult for
|
|
this rationale to distribute correctly the reasons for not including a utility among the various utility options. Therefore, this
|
|
section covers the reasons for all utilities not included in IEEE Std 1003.1-2001.</p>
|
|
|
|
<p>This rationale is limited to a discussion of only those utilities actively or indirectly evaluated by the standard developers of
|
|
the base documents, rather than the list of all known UNIX utilities from all its variants.</p>
|
|
|
|
<dl compact>
|
|
<dt><i>adb</i></dt>
|
|
|
|
<dd>The intent of the various software development utilities was to assist in the installation (rather than the actual development
|
|
and debugging) of applications. This utility is primarily a debugging tool. Furthermore, many useful aspects of <i>adb</i> are very
|
|
hardware-specific.</dd>
|
|
|
|
<dt><i>as</i></dt>
|
|
|
|
<dd>Assemblers are hardware-specific and are included implicitly as part of the compilers in IEEE Std 1003.1-2001.</dd>
|
|
|
|
<dt><i>banner</i></dt>
|
|
|
|
<dd>The only known use of this command is as part of the <a href="../utilities/lp.html"><i>lp</i></a> printer header pages. It was
|
|
decided that the format of the header is implementation-defined, so this utility is superfluous to application portability.</dd>
|
|
|
|
<dt><i>calendar</i></dt>
|
|
|
|
<dd>This reminder service program is not useful to conforming applications.</dd>
|
|
|
|
<dt><i>cancel</i></dt>
|
|
|
|
<dd>The <a href="../utilities/lp.html"><i>lp</i></a> (line printer spooling) system specified is the most basic possible and did
|
|
not need this level of application control.</dd>
|
|
|
|
<dt><i>chroot</i></dt>
|
|
|
|
<dd>This is primarily of administrative use, requiring superuser privileges.</dd>
|
|
|
|
<dt><i>col</i></dt>
|
|
|
|
<dd>No utilities defined in IEEE Std 1003.1-2001 produce output requiring such a filter. The <i>nroff</i> text formatter
|
|
is present on many historical systems and will continue to remain as an extension; <i>col</i> is expected to be shipped by all the
|
|
systems that ship <i>nroff</i>.</dd>
|
|
|
|
<dt><i>cpio</i></dt>
|
|
|
|
<dd>This has been replaced by <a href="../utilities/pax.html"><i>pax</i></a>, for reasons explained in the rationale for that
|
|
utility.</dd>
|
|
|
|
<dt><i>cpp</i></dt>
|
|
|
|
<dd>This is subsumed by <a href="../utilities/c99.html"><i>c99</i></a>.</dd>
|
|
|
|
<dt><i>cu</i></dt>
|
|
|
|
<dd>This utility is terminal-oriented and is not useful from shell scripts or typical application programs.</dd>
|
|
|
|
<dt><i>dc</i></dt>
|
|
|
|
<dd>The functionality of this utility can be provided by the <a href="../utilities/bc.html"><i>bc</i></a> utility; <a href=
|
|
"../utilities/bc.html"><i>bc</i></a> was selected because it was easier to use and had superior functionality. Although the
|
|
historical versions of <a href="../utilities/bc.html"><i>bc</i></a> are implemented using <i>dc</i> as a base,
|
|
IEEE Std 1003.1-2001 prescribes the interface and not the underlying mechanism used to implement it.</dd>
|
|
|
|
<dt><i>dircmp</i></dt>
|
|
|
|
<dd>Although a useful concept, the historical output of this directory comparison program is not suitable for processing in
|
|
application programs. Also, the <a href="../utilities/diff.html"><i>diff</i></a> <b>-r</b> command gives equivalent
|
|
functionality.</dd>
|
|
|
|
<dt><i>dis</i></dt>
|
|
|
|
<dd>Disassemblers are hardware-specific.</dd>
|
|
|
|
<dt><i>emacs</i></dt>
|
|
|
|
<dd>The community of <i>emacs</i> editing enthusiasts was adamant that the full <i>emacs</i> editor not be included in the base
|
|
documents because they were concerned that an attempt to standardize this very powerful environment would encourage vendors to ship
|
|
versions conforming strictly to the standard, but lacking the extensibility required by the community. The author of the original
|
|
<i>emacs</i> program also expressed his desire to omit the program. Furthermore, there were a number of historical UNIX systems
|
|
that did not include <i>emacs</i>, or included it without supporting it, but there were very few that did not include and support
|
|
<a href="../utilities/vi.html"><i>vi</i></a>.</dd>
|
|
|
|
<dt><i>ld</i></dt>
|
|
|
|
<dd>This is subsumed by <a href="../utilities/c99.html"><i>c99</i></a>.</dd>
|
|
|
|
<dt><i>line</i></dt>
|
|
|
|
<dd>The functionality of <i>line</i> can be provided with <a href="../utilities/read.html"><i>read</i></a>.</dd>
|
|
|
|
<dt><i>lint</i></dt>
|
|
|
|
<dd>This technology is partially subsumed by <a href="../utilities/c99.html"><i>c99</i></a>. It is also hard to specify the degree
|
|
of checking for possible error conditions in programs in any compiler, and specifying what <i>lint</i> would do in these cases is
|
|
equally difficult.
|
|
|
|
<p>It is fairly easy to specify what a compiler does. It requires specifying the language, what it does with that language, and
|
|
stating that the interpretation of any incorrect program is unspecified. Unfortunately, any description of <i>lint</i> is required
|
|
to specify what to do with erroneous programs. Since the number of possible errors and questionable programming practices is
|
|
infinite, one cannot require <i>lint</i> to detect all errors of any given class.</p>
|
|
|
|
<p>Additionally, some vendors complained that since many compilers are distributed in a binary form without a <i>lint</i> facility
|
|
(because the ISO C standard does not require one), implementing the standard as a stand-alone product will be much harder.
|
|
Rather than being able to build upon a standard compiler component (simply by providing <a href=
|
|
"../utilities/c99.html"><i>c99</i></a> as an interface), source to that compiler would most likely need to be modified to provide
|
|
the <i>lint</i> functionality. This was considered a major burden on system providers for a very small gain to developers
|
|
(users).</p>
|
|
</dd>
|
|
|
|
<dt><i>login</i></dt>
|
|
|
|
<dd>This utility is terminal-oriented and is not useful from shell scripts or typical application programs.</dd>
|
|
|
|
<dt><i>lorder</i></dt>
|
|
|
|
<dd>This utility is an aid in creating an implementation-defined detail of object libraries that the standard developers did not
|
|
feel required standardization.</dd>
|
|
|
|
<dt><i>lpstat</i></dt>
|
|
|
|
<dd>The <a href="../utilities/lp.html"><i>lp</i></a> system specified is the most basic possible and did not need this level of
|
|
application control.</dd>
|
|
|
|
<dt><i>mail</i></dt>
|
|
|
|
<dd>This utility was omitted in favor of <a href="../utilities/mailx.html"><i>mailx</i></a> because there was a considerable
|
|
functionality overlap between the two.</dd>
|
|
|
|
<dt><i>mknod</i></dt>
|
|
|
|
<dd>This was omitted in favor of <a href="../utilities/mkfifo.html"><i>mkfifo</i></a>, as <i>mknod</i> has too many
|
|
implementation-defined functions.</dd>
|
|
|
|
<dt><i>news</i></dt>
|
|
|
|
<dd>This utility is terminal-oriented and is not useful from shell scripts or typical application programs.</dd>
|
|
|
|
<dt><i>pack</i></dt>
|
|
|
|
<dd>This compression program was considered inferior to <a href="../utilities/compress.html"><i>compress</i></a>.</dd>
|
|
|
|
<dt><i>passwd</i></dt>
|
|
|
|
<dd>This utility was proposed in a historical draft of the base documents but met with too many objections to be included. There
|
|
were various reasons:
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Changing a password should not be viewed as a command, but as part of the login sequence. Changing a password should only be
|
|
done while a trusted path is in effect.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Even though the text in early drafts was intended to allow a variety of implementations to conform, the security policy for one
|
|
site may differ from another site running with identical hardware and software. One site might use password authentication while
|
|
the other did not. Vendors could not supply a <i>passwd</i> utility that would conform to IEEE Std 1003.1-2001 for all
|
|
sites using their system.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>This is really a subject for a system administration working group or a security working group.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
|
|
<dt><i>pcat</i></dt>
|
|
|
|
<dd>This compression program was considered inferior to <a href="../utilities/zcat.html"><i>zcat</i></a>.</dd>
|
|
|
|
<dt><i>pg</i></dt>
|
|
|
|
<dd>This duplicated many of the features of the <a href="../utilities/more.html"><i>more</i></a> pager, which was preferred by the
|
|
standard developers.</dd>
|
|
|
|
<dt><i>prof</i></dt>
|
|
|
|
<dd>The intent of the various software development utilities was to assist in the installation (rather than the actual development
|
|
and debugging) of applications. This utility is primarily a debugging tool.</dd>
|
|
|
|
<dt>RCS</dt>
|
|
|
|
<dd>RCS was originally considered as part of a version control utilities portion of the scope. However, this aspect was abandoned
|
|
by the standard developers. SCCS is now included as an optional part of the XSI extension.</dd>
|
|
|
|
<dt><i>red</i></dt>
|
|
|
|
<dd>Restricted editor. This was not considered by the standard developers because it never provided the level of security
|
|
restriction required.</dd>
|
|
|
|
<dt><i>rsh</i></dt>
|
|
|
|
<dd>Restricted shell. This was not considered by the standard developers because it does not provide the level of security
|
|
restriction that is implied by historical documentation.</dd>
|
|
|
|
<dt><i>sdb</i></dt>
|
|
|
|
<dd>The intent of the various software development utilities was to assist in the installation (rather than the actual development
|
|
and debugging) of applications. This utility is primarily a debugging tool. Furthermore, some useful aspects of <i>sdb</i> are very
|
|
hardware-specific.</dd>
|
|
|
|
<dt><i>sdiff</i></dt>
|
|
|
|
<dd>The "side-by-side <a href="../utilities/diff.html"><i>diff</i></a>" utility from System V was omitted because it is used
|
|
infrequently, and even less so by conforming applications. Despite being in System V, it is not in the SVID or XPG.</dd>
|
|
|
|
<dt><i>shar</i></dt>
|
|
|
|
<dd>Any of the numerous "shell archivers" were excluded because they did not meet the requirement of existing practice.</dd>
|
|
|
|
<dt><i>shl</i></dt>
|
|
|
|
<dd>This utility is terminal-oriented and is not useful from shell scripts or typical application programs. The job control aspects
|
|
of the shell command language are generally more useful.</dd>
|
|
|
|
<dt><i>size</i></dt>
|
|
|
|
<dd>The intent of the various software development utilities was to assist in the installation (rather than the actual development
|
|
and debugging) of applications. This utility is primarily a debugging tool.</dd>
|
|
|
|
<dt><i>spell</i></dt>
|
|
|
|
<dd>This utility is not useful from shell scripts or typical application programs. The <i>spell</i> utility was considered, but was
|
|
omitted because there is no known technology that can be used to make it recognize general language for user-specified input
|
|
without providing a complete dictionary along with the input file.</dd>
|
|
|
|
<dt><i>su</i></dt>
|
|
|
|
<dd>This utility is not useful from shell scripts or typical application programs. (There was also sentiment to avoid
|
|
security-related utilities.)</dd>
|
|
|
|
<dt><i>sum</i></dt>
|
|
|
|
<dd>This utility was renamed <a href="../utilities/cksum.html"><i>cksum</i></a>.</dd>
|
|
|
|
<dt><i>tar</i></dt>
|
|
|
|
<dd>This has been replaced by <a href="../utilities/pax.html"><i>pax</i></a>, for reasons explained in the rationale for that
|
|
utility.</dd>
|
|
|
|
<dt><i>tsort</i></dt>
|
|
|
|
<dd>This utility is an aid in creating an implementation-defined detail of object libraries that the standard developers did not
|
|
feel required standardization.</dd>
|
|
|
|
<dt><i>unpack</i></dt>
|
|
|
|
<dd>This compression program was considered inferior to <a href="../utilities/uncompress.html"><i>uncompress</i></a>.</dd>
|
|
|
|
<dt><i>wall</i></dt>
|
|
|
|
<dd>This utility is terminal-oriented and is not useful in shell scripts or typical applications. It is generally used only by
|
|
system administrators.</dd>
|
|
</dl>
|
|
|
|
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|