Files
oldlinux-files/Ref-docs/POSIX/susv3/xrat/xcu_chap04.html
2024-02-19 00:21:47 -05:00

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 &copy; 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&nbsp;Std&nbsp;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&nbsp;Std&nbsp;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&nbsp;Std&nbsp;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&nbsp;Std&nbsp;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&nbsp;Std&nbsp;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&nbsp;Std&nbsp;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&nbsp;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&nbsp;Std&nbsp;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 &quot;side-by-side <a href="../utilities/diff.html"><i>diff</i></a>&quot; utility from System&nbsp;V was omitted because it is used
infrequently, and even less so by conforming applications. Despite being in System&nbsp;V, it is not in the SVID or XPG.</dd>
<dt><i>shar</i></dt>
<dd>Any of the numerous &quot;shell archivers&quot; 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 &reg; is a registered Trademark of The Open Group.<br>
POSIX &reg; 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>