📄 xcu_chap04.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-2003 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, 2003 Edition<br>Copyright © 2001-2003 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 <ahref="../utilities/c99.html"><i>c99</i></a> utility. This section contains rationale for some of the deliberations that led to thisset 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 thanincluded. The following list contains many common UNIX system utilities that were not included as mandatory utilities, in the UserPortability Utilities option, in the XSI extension, or in one of the software development groups. It is logistically difficult forthis rationale to distribute correctly the reasons for not including a utility among the various utility options. Therefore, thissection 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 ofthe 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 developmentand debugging) of applications. This utility is primarily a debugging tool. Furthermore, many useful aspects of <i>adb</i> are veryhardware-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 wasdecided 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 didnot 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 formatteris present on many historical systems and will continue to remain as an extension; <i>col</i> is expected to be shipped by all thesystems 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 thatutility.</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 thehistorical 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 inapplication programs. Also, the <a href="../utilities/diff.html"><i>diff</i></a> <b>-r</b> command gives equivalentfunctionality.</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 basedocuments because they were concerned that an attempt to standardize this very powerful environment would encourage vendors to shipversions 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 systemsthat 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 degreeof checking for possible error conditions in programs in any compiler, and specifying what <i>lint</i> would do in these cases isequally difficult. <p>It is fairly easy to specify what a compiler does. It requires specifying the language, what it does with that language, andstating that the interpretation of any incorrect program is unspecified. Unfortunately, any description of <i>lint</i> is requiredto specify what to do with erroneous programs. Since the number of possible errors and questionable programming practices isinfinite, 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 providethe <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 notfeel 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 ofapplication 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 considerablefunctionality 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 manyimplementation-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. Therewere 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 bedone 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 onesite may differ from another site running with identical hardware and software. One site might use password authentication whilethe other did not. Vendors could not supply a <i>passwd</i> utility that would conform to IEEE Std 1003.1-2001 for allsites 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 thestandard 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 developmentand 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 abandonedby 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 securityrestriction 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 securityrestriction 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 developmentand debugging) of applications. This utility is primarily a debugging tool. Furthermore, some useful aspects of <i>sdb</i> are veryhardware-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 usedinfrequently, 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 aspectsof 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 developmentand 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 wasomitted because there is no known technology that can be used to make it recognize general language for user-specified inputwithout 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 avoidsecurity-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 thatutility.</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 bysystem 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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -