formatting (make list fit on two pages)
[unix-history] / usr / src / share / man / man0 / title.urm
CommitLineData
eefcf19b
KM
1.\" Copyright (c) 1980, 1993 Regents of the University of California.
2.\" All rights reserved.
bac80489 3.\"
eefcf19b
KM
4.\" %sccs.include.redist.roff%
5.\"
74013f37 6.\" @(#)title.urm 8.4 (Berkeley) %G%
bac80489 7.\"
78d75eb3
KM
8.af % i
9.EH ''''
10.OH ''''
11.OF '''\s10- % -\s0'
12.EF '\s10- % -\s0'''
13\&
14.sp |2.75i
15.nr PS 24
16.nr VS 28
17.LP
18.ft B
19.ce 2
20UNIX User's Reference Manual
21(URM)
74013f37
KM
22.nr LL 5.5i
23.nr PO 1.5i
24.bp
25\&
26.sp |1.5i
27.nr PS 11
28.nr VS 13
29.LP
30The USENIX Association,
31the UNIX and Advanced Computing Systems professional and technical organization,
32is a not-for-profit membership association of individuals and
33institutions with an interest in UNIX and UNIX-like systems,
34and, by extension, C++, X windows, and other programming tools.
35It is dedicated to:
36.IP \(bu
37fostering innovation and communicating research and technological devlopments,
38.IP \(bu
39sharing ideas and experience relevant to UNIX,
40UNIX-related, and advanced computing systems, and
41.IP \(bu
42providing a neutral forum for the exercise of critical
43thought and airing of technical issues.
44.LP
45USENIX publishes a journal (\fBComputing Systems\fP),
46Conference and Workshop Proceedings, and a Book Series.
47.nr LL 6i
48.nr PO 1i
49.bp
50\&
51.sp |2.75i
52.nr PS 18
53.nr VS 22
78d75eb3 54.LP
74013f37
KM
55.ft B
56.ce 2
57UNIX User's Reference Manual
58(URM)
e188f896 59.sp |4i
74013f37 60.ce 2
eefcf19b 614.4 Berkeley Software Distribution
74013f37
KM
62(June, 1993)
63.sp 3
64.nr PS 15
65.nr VS 18
78d75eb3 66.LP
74013f37 67.ce 2
e05e172b 68Computer Systems Research Group
74013f37
KM
69University of California, Berkeley
70.sp |8.2i
71.nr PS 12
72.nr VS 15
73.LP
74.ce 4
75A USENIX Association Book
76The MIT Press
77Cambridge, Massachusetts
78London, England
bac80489 79.bp
bac80489 80.hy 0
78d75eb3
KM
81.nr PS 9
82.nr VS 11
83.LP
74013f37
KM
84First Printing, 1993
85.sp 1
86.LP
d216586a
KM
87Copyright 1979, 1980, 1983, 1986, 1993
88The Regents of the University of California. All rights reserved.
78d75eb3
KM
89.sp 1
90.LP
d216586a
KM
91Other than the specific manual pages and documents listed below
92as copyrighted by AT&T,
93redistribution and use of this manual in source and binary forms,
94with or without modification, are permitted provided that the
95following conditions are met:
78d75eb3
KM
96.IP 1)
97Redistributions of this manual must retain the copyright
d216586a 98notices on this page, this list of conditions and the following disclaimer.
78d75eb3
KM
99.IP 2)
100Software or documentation that incorporates part of this manual must
d216586a
KM
101reproduce the copyright notices on this page, this list of conditions and
102the following disclaimer in the documentation and/or other materials
103provided with the distribution.
78d75eb3
KM
104.IP 3)
105All advertising materials mentioning features or use of this software
d216586a
KM
106must display the following acknowledgement:
107``This product includes software developed by the University of
108California, Berkeley and its contributors.''
78d75eb3
KM
109.IP 4)
110Neither the name of the University nor the names of its contributors
d216586a
KM
111may be used to endorse or promote products derived from this software
112without specific prior written permission.
78d75eb3 113.LP
d216586a
KM
114\fB\s-1THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
115ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
116IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
117ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
118FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
119DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
120OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
121HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
122LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
123OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
124SUCH DAMAGE.\s+1\fP
78d75eb3
KM
125.sp 1
126.LP
d216586a
KM
127The Institute of Electrical and Electronics Engineers and the American
128National Standards Committee X3, on Information Processing Systems have
129given us permission to reprint portions of their documentation.
78d75eb3
KM
130.sp 0.5
131.LP
d216586a
KM
132In the following statement, the phrase ``this text'' refers to portions
133of the system documentation.
78d75eb3 134.LP
d216586a
KM
135``Portions of this text are reprinted and reproduced in
136electronic form in 4.4BSD from IEEE Std 1003.1-1988, IEEE
137Standard Portable Operating System Interface for Computer Environments
138(POSIX), copyright 1988 by the Institute of Electrical and Electronics
139Engineers, Inc. In the event of any discrepancy between these versions
140and the original IEEE Standard, the original IEEE Standard is the referee
141document.''
78d75eb3
KM
142.sp 0.5
143.LP
d216586a
KM
144In the following statement, the phrase ``This material'' refers to portions
145of the system documentation.
78d75eb3 146.LP
d216586a
KM
147``This material is reproduced with permission from American National
148Standards Committee X3, on Information Processing Systems. Computer and
149Business Equipment Manufacturers Association (CBEMA), 311 First St., NW,
150Suite 500, Washington, DC 20001-2178. The developmental work of
151Programming Language C was completed by the X3J11 Technical Committee.''
78d75eb3
KM
152.sp 1
153.LP
eefcf19b 154Manual pages adb.1, bc.1, compact.1, crypt.1, dc.1, deroff.1, ed.1,
ff5a3f93 155expr.1, graph.1, ld.1, learn.1, m4.1, plot.1, ptx.1, spell.1,
eefcf19b
KM
156spline.1, struct.1, tar.1, units.1, uucp.1, uux.1, ching.6, eqnchar.7,
157man.7, ms.7, and term.7
158are copyright 1979, AT&T Bell Laboratories, Incorporated.
e188f896
KM
159Holders of \x'-1p'UNIX\v'-4p'\s-3TM\s0\v'4p'/32V,
160System III, or System V software licenses are
161permitted to copy these documents, or any portion of them,
162as necessary for licensed use of the software,
bac80489
KM
163provided this copyright notice and statement of permission
164are included.
78d75eb3
KM
165.sp 1
166.LP
d216586a 167The views and conclusions contained in this manual are those of the
e188f896 168authors and should not be interpreted as representing official policies,
eefcf19b 169either expressed or implied, of the Regents of the University of California.
78d75eb3
KM
170.sp 1
171.LP
172This book was printed and bound in the United States of America.
173.br
174Distributed by The MIT Press.
175.bp
176\&
177.sp |1.5i
178.nr PS 11
179.nr VS 13
180.LP
181.ce 1
182\s+4\fBContents\fP\s-4
183.sp 3
184.TS
185expand;
186l r.
187The Computer Systems Research Group, 1979\-1993 vii
188Prefaces xi
189Introduction xvii
190List of Manual Pages xxiii
191Permuted Index xli
192Reference Manual Sections 1, 6, 7 tabbed pages
193List of Documents inside back cover
194.TE
195.if o .bp
196\&
197.bp
198.\"
199.\" The contributor list below is derived from the file that resides in
200.\" vangogh:~admin/contrib/contrib:
201.\"
e05e172b 202.\" @(#)contrib 5.52 (Berkeley) 11/16/93
78d75eb3
KM
203.\"
204.\" This file should not be editted, rather the original contrib file
205.\" should be used to recrete this one following the directions at its top.
206.\" Contrib starts here and continues to the comment `END OF CONTRIB'.
207.\"
208\&
209.sp |1i
210.ps 16
211.ce
212\fBThe Computer Systems Research Group 1979 \- 1993\fP
213.sp 3
214.nr PS 11
215.nr VS 12
216.LP
217.nf
218.in +0.5i
219\fBCSRG Technical Staff\fP
220.sp 1
221.in +1i
222Jim Bloom
223Keith Bostic
224Ralph Campbell
225Kevin Dunlap
226William N. Joy
227Michael J. Karels
228Samuel J. Leffler
229Marshall Kirk McKusick
230Miriam Amos Nihart
231Keith Sklower
232Marc Teitelbaum
233Michael Toy
234.in -1i
235.sp 3
236\fBCSRG Administration and Support\fP
237.sp 1
238.in +1i
239Robert Fabry
240Domenico Ferrari
241Susan L. Graham
242Bob Henry
243Anne Hughes
244Bob Kridle
245David Mosher
246Pauline Schwartz
247Mark Seiden
248Jean Wood
249.in -1i
250.fi
251.sp 3
252\fBOrganizations that funded the CSRG with grants,
253gifts, personnel, and/or hardware.\fP
254.sp 1
255.nf
256.in +1i
257Center for Advanced Aviation System Development, The MITRE Corp.
258Compaq Computer Corporation
259Cray Research Inc.
260Department of Defense Advance Research Projects Agency (DARPA)
261Digital Equipment Corporation
262The Hewlett-Packard Company
263NASA Ames Research Center
264The National Science Foundation
265The Open Software Foundation
266UUNET Technologies Inc.
267.in -1.5i
268.fi
269.bp
270.nr PS 10
271.nr VS 11
272.LP
273\fBThe following are people and organizations that provided a
274large subsystem for the BSD releases.\fP
275.sp
276.TS
277l l.
278ANSI C library Chris Torek
279ANSI C prototypes Donn Seeley and John Kohl
280Autoconfiguration Robert Elz
281C library documentation American National Standards Committee X3
282CCI 6/32 support Computer Consoles Inc.
283DEC 3000/5000 support Ralph Campbell
284Disklabels Symmetric Computer Systems
285Documentation Cynthia Livingston and The USENIX Association
286Franz Lisp Richard Fateman, John Foderaro, Keith Sklower, Kevin Layer
287GCC, GDB The Free Software Foundation
288Groff James Clark (The FSF)
289HP300 support Jeff Forys, Mike Hibler, Jay Lepreau, Donn Seeley and the Systems
290 Programming Group; University of Utah Computer Science Department
291ISODE Marshall Rose
292Ingres Mike Stonebraker, Gene Wong, and the Berkeley Ingres Research Group
293Intel 386/486 support Bill Jolitz and TeleMuse
294Job control Jim Kulp
295Kerberos Project Athena and MIT
296Kernel support Bill Shannon and Sun Microsystems Inc.
297LFS Margo Seltzer, Mendel Rosenblum, Carl Staelin
298MIPS support Trent Hein
299Math library K.C. Ng, Zhishun Alex Liu, S. McDonald, P. Tang and W. Kahan
300NFS Rick Macklem
301NFS automounter Jan-Simon Pendry
302Network device drivers Micom-Interlan and Excelan
303Omron Luna support Akito Fujita and Shigeto Mochida
304Quotas Robert Elz
305RPC support Sun Microsystems Inc.
306Shared library support Rob Gingell and Sun Microsystems Inc.
307Sony News 3400 support Kazumasa Utashiro
308Sparc I/II support Computer Systems Engineering Group, Lawrence Berkeley Laboratory
309Stackable file systems John Heidemann
310Stdio Chris Torek
311System documentation The Institute of Electrical and Electronics Engineers, Inc.
312TCP/IP Rob Gurwitz and Bolt Beranek and Newman Inc.
313Timezone support Arthur David Olson
314Transport/Network OSI layers IBM Corporation and the University of Wisconsin
315Kernel XNS assistance William Nesheim, J. Q. Johnson, Chris Torek, and James O'Toole
316User level XNS Cornell University
317VAX 3000 support Mt. Xinu and Tom Ferrin
318VAX BI support Chris Torek
319VAX device support Digital Equipment Corporation and Helge Skrivervik
320Versatec printer/plotter support University of Toronto
321Virtual memory implementation Avadis Tevanian, Jr., Michael Wayne Young,
322 and the Carnegie-Mellon University Mach project
323X25 University of British Columbia
324.TE
325.bp
326.LP
327\fBThe following are people and organizations that provided a specific
328item, program, library routine or program maintenance for the BSD system.
329(Their contribution may not be part of the final 4.4BSD release.)\fP
330.nr PS 9
331.nr VS 10
332.ps 9
333.vs 10
334.sp
335.TS
336l l.
337386 device drivers Carnegie-Mellon University Mach project
338386 device drivers Don Ahn, Sean Fagan and Tim Tucker
339HCX device drivers Harris Corporation
340Kernel enhancements Robert Elz, Peter Ivanov, Ian Johnstone, Piers Lauder,
341 John Lions, Tim Long, Chris Maltby, Greg Rose and John Wainwright
342.TE
343.TS
344l l l l.
e05e172b
KM
345adventure(6) Don Woods log(3) Peter McIlroy
346adventure(6) Jim Gillogly look(1) David Hitz
347adventure(6) Will Crowther ls(1) Elan Amir
348apply(1) Rob Pike ls(1) Michael Fischbein
349ar(1) Hugh A. Smith lsearch(3) Roger L. Snyder
350arithmetic(6) Eamonn McManus m4(1) Ozan Yigit
351arp(8) Sun Microsystems Inc. mail(1) Kurt Schoens
352at(1) Steve Wall make(1) Adam de Boor
353atc(6) Ed James me(7) Eric Allman
354awk(1) Arnold Robbins mergesort(3) Peter McIlroy
355awk(1) David Trueman mh(1) Marshall Rose
356backgammon(6) Alan Char mh(1) The Rand Corporation
357banner(1) Mark Horton mille(6) Ken Arnold
358battlestar(6) David Riggle mknod(8) Kevin Fall
359bcd(6) Steve Hayman monop(6) Ken Arnold
360bdes(1) Matt Bishop more(1) Eric Shienbrood
361berknet(1) Eric Schmidt more(1) Mark Nudleman
362bib(1) Dain Samples mountd(8) Herb Hasler
363bib(1) Gary M. Levin mprof(1) Ben Zorn
364bib(1) Timothy A. Budd msgs(1) David Wasley
365bitstring(3) Paul Vixie multicast Stephen Deering
366boggle(6) Barry Brachman mv(1) Ken Smith
367bpf(4) Steven McCanne named/bind(8) Douglas Terry
368btree(3) Mike Olson named/bind(8) Kevin Dunlap
369byte-range locking Scooter Morris news(1) Rick Adams (and a cast of thousands)
370caesar(6) John Eldridge nm(1) Hans Huebner
371caesar(6) Stan King pascal(1) Kirk McKusick
372cal(1) Kim Letkeman pascal(1) Peter Kessler
373cat(1) Kevin Fall paste(1) Adam S. Moskowitz
374chess(6) Stuart Cracraft (The FSF) patch(1) Larry Wall
375ching(6) Guy Harris pax(1) Keith Muller
376cksum(1) James W. Williams phantasia(6) C. Robertson
377clri(8) Rich $alz phantasia(6) Edward A. Estes
378col(1) Michael Rendell ping(8) Mike Muuss
379comm(1) Case Larsen pom(6) Keith E. Brandt
380compact(1) Colin L. McMaster pr(1) Keith Muller
381compress(1) James A. Woods primes(6) Landon Curt Noll
382compress(1) Joseph Orost qsort(3) Doug McIlroy
383compress(1) Spencer Thomas qsort(3) Earl Cohen
384courier(1) Eric Cooper qsort(3) Jon Bentley
385cp(1) David Hitz quad(3) Chris Torek
386cpio(1) AT&T quiz(6) Jim R. Oldroyd
387crypt(3) Tom Truscott quiz(6) Keith Gabryelski
388csh(1) Christos Zoulas radixsort(3) Dan Bernstein
389csh(1) Len Shar radixsort(3) Peter McIlroy
390curses(3) Elan Amir rain(6) Eric P. Scott
391curses(3) Ken Arnold ranlib(1) Hugh A. Smith
392cut(1) Adam S. Moskowitz rcs(1) Walter F. Tichy
393cut(1) Marciano Pitargue rdist(1) Michael Cooper
394dbx(1) Mark Linton regex(3) Henry Spencer
395dd(1) Keith Muller robots(6) Ken Arnold
396dd(1) Lance Visser rogue(6) Timothy C. Stoehr
397des(1) Jim Gillogly rs(1) John Kunze
398des(1) Phil Karn sail(6) David Riggle
399des(1) Richard Outerbridge sail(6) Edward Wang
400dipress(1) Xerox Corporation sccs(1) Eric Allman
401disklabel(8) Symmetric Computer Systems scsiformat(1) Lawrence Berkeley Laboratory
402du(1) Chris Newcomb sdb(1) Howard Katseff
403dungeon(6) R.M. Supnik sed(1) Diomidis Spinellis
404ed(1) Rodney Ruddock sendmail(8) Eric Allman
405emacs(1) Richard Stallman setmode(3) Dave Borman
406erf(3) Peter McIlroy, K.C. Ng sh(1) Kenneth Almquist
407error(1) Robert R. Henry slattach(8) Rick Adams
408ex(1) Mark Horton slip(8) Rick Adams
409factor(6) Landon Curt Noll spms(1) Peter J. Nicklin
410file(1) Ian Darwin strtod(3) David M. Gay
78d75eb3
KM
411find(1) Cimarron Taylor swab(3) Jeffrey Mogul
412finger(1) Tony Nardo sysconf(3) Sean Eric Fagan
413fish(6) Muffy Barkocy sysline(1) J.K. Foderaro
414fmt(1) Kurt Schoens syslog(3) Eric Allman
415fnmatch(3) Guido van Rossum systat(1) Bill Reeves
416fold(1) Kevin Ruddy systat(1) Robert Elz
417fortune(6) Ken Arnold tail(1) Edward Sze-Tyan Wang
418fpr(1) Robert Corbett talk(1) Clem Cole
419fsdb(8) Computer Consoles Inc. talk(1) Kipp Hickman
420fsplit(1) Asa Romberger talk(1) Peter Moore
421fsplit(1) Jerry Berkman telnet(1) Dave Borman
422gcc/groff integration UUNET Technologies, Inc. telnet(1) Paul Borman
423gcore(1) Eric Cooper termcap(5) John A. Kunze
424getcap(3) Casey Leedom termcap(5) Mark Horton
425glob(3) Guido van Rossum test(1) Kenneth Almquist
426gprof(1) Peter Kessler tetris(6) Chris Torek
427gprof(1) Robert R. Henry tetris(6) Darren F. Provine
428hack(6) Andries Brouwer (and a cast of thousands) timed(8) Riccardo Gusella
429hangman(6) Ken Arnold timed(8) Stefano Zatti
430hash(3) Margo Seltzer tn3270(1) Gregory Minshall
431heapsort(3) Elmer Yglesias tr(1) Igor Belchinskiy
432heapsort(3) Kevin Lew traceroute(8) Van Jacobson
433heapsort(3) Ronnie Kon trek(6) Eric Allman
434hunt(6) Conrad Huang tset(1) Eric Allman
435hunt(6) Greg Couch tsort(1) Michael Rendell
436icon(1) Bill Mitchell unifdef(1) Dave Yost
437icon(1) Ralph Griswold uniq(1) Case Larsen
438indent(1) David Willcox uucpd(8) Rick Adams
439indent(1) Eric Schmidt uudecode(1) Mark Horton
440indent(1) James Gosling uuencode(1) Mark Horton
441indent(1) Sun Microsystems uuq(1) Lou Salkind
442init(1) Donn Seeley uuq(1) Rick Adams
443j0(3) Sun Microsystems, Inc. uusnap(8) Randy King
444j1(3) Sun Microsystems, Inc. uusnap(8) Rick Adams
445jn(3) Sun Microsystems, Inc. vacation(1) Eric Allman
446join(1) David Goodenough vi(1) Steve Kirkendall
447join(1) Michiro Hikida which(1) Peter Kessler
448join(1) Steve Hayman who(1) Michael Fischbein
449jot(1) John Kunze window(1) Edward Wang
450jove(1) Jonathon Payne worm(6) Michael Toy
451kermit(1) Columbia University worms(6) Eric P. Scott
452kvm(3) Peter Shipley write(1) Craig Leres
453kvm(3) Steven McCanne write(1) Jef Poskanzer
454lam(1) John Kunze wump(6) Dave Taylor
455larn(6) Noah Morgan X25/Ethernet Univ. of Erlangen-Nuremberg
456lastcomm(1) Len Edmondson X25/LLC2 Dirk Husemann
457lex(1) Vern Paxson xargs(1) John B. Roll Jr.
458libm(3) Peter McIlroy xneko(6) Masayuki Koba
459libm(3) UUNET Technologies, Inc. XNSrouted(1) Bill Nesheim
460locate(1) James A. Woods xroach(6) J.T. Anderson
461lock(1) Bob Toxen yacc(1) Robert Paul Corbett
78d75eb3
KM
462.TE
463.\"
464.\" END OF CONTRIB: Contrib ends here.
465.\"
466.if o .bp
467\&
468.bp
469.nr PS 10
470.nr VS 12
471\&
472.sp |1.5i
473.LP
474.ce
475\fB\s+4PREFACE\s-4\fP
476.sp 3
477.NH 1
478Introduction
479.PP
480The major new facilities available in the 4.4BSD release are
481a new virtual memory system,
482the addition of ISO/OSI networking support,
483a new virtual filesystem interface supporting filesystem stacking,
484a freely redistributable implementation of NFS,
485a log-structured filesystem,
486enhancement of the local filesystems to support
487files and filesystems that are up to 2^63 bytes in size,
488enhanced security and system management support,
489and the conversion to and addition of the IEEE Std1003.1 (``POSIX'')
490facilities and many of the IEEE Std1003.2 facilities.
491In addition, many new utilities and additions have been made to the C-library.
492The kernel sources have been reorganized to collect all machine-dependent
493files for each architecture under one directory,
494and most of the machine-independent code is now free of code
495conditional on specific machines.
496The user structure and process structure have been reorganized
497to eliminate the statically-mapped user structure and to make most
498of the process resources shareable by multiple processes.
499The system and include files have been converted to be compatible
500with ANSI C, including function prototypes for most of the exported
501functions.
502There are numerous other changes throughout the system.
503.NH 1
504Changes in the Kernel
505.PP
506This release includes several important structural kernel changes.
507The kernel uses a new internal system call convention;
508the use of global (``u-dot'') variables for parameters and error returns
509has been eliminated,
510and interrupted system calls no longer abort using non-local goto's (longjmp's).
511A new sleep interface separates signal handling from scheduling priority,
512returning characteristic errors to abort or restart the current system call.
513This sleep call also passes a string describing the process state,
514which is used by the ps(1) program.
515The old sleep interface can be used only for non-interruptible sleeps.
516.PP
517Many data structures that were previously statically allocated
518are now allocated dynamically.
519These structures include mount entries, file entries,
520user open file descriptors, the process entries, the vnode table,
521the name cache, and the quota structures.
522.PP
523Both the HP300 and SPARC ports feature the ability to run binaries
524built for the native operating system (HP-UX or SunOS) by emulating
525their system calls.
526Though this native operating system compatibility was provided by the
527developers as needed for their purposes and is by no means complete,
528it is complete enough to run several non-trivial applications including
529those that require HP-UX or SunOS shared libraries.
530For example, the vendor supplied X11 server and windowing environment
531can be used on both the HP300 and SPARC.
532.NH 2
533Virtual memory changes
534.PP
535The new virtual memory implementation is derived from the MACH
536operating system developed at Carnegie-Mellon,
537and was ported to the BSD kernel at the University of Utah.
538The MACH virtual memory system call interface has been replaced with the
539``mmap''-based interface described in the ``Berkeley Software
540Architecture Manual''.
541The interface is similar to the interfaces shipped
542by several commercial vendors such as Sun, USL, and Convex Computer Corp.
543The integration of the new virtual memory is functionally complete,
544but, like most MACH-based virtual memory systems,
545still has serious performance problems under heavy memory load.
546.NH 2
547Networking additions and changes
548.PP
549The ISO/OSI Networking consists of a kernel implementation of
550transport class 4 (TP-4),
551connectionless networking protocol (CLNP),
552and 802.3-based link-level support (hardware-compatible with Ethernet*).
553.FS
554*Ethernet is a trademark of the Xerox Corporation.
555.FE
556We also include support for ISO Connection-Oriented Network Service,
557X.25, TP-0.
558The session and presentation layers are provided outside
559the kernel by the ISO development environment (ISODE).
560Included in this development environment are file
561transfer and management (FTAM), virtual terminals (VT),
562a directory services implementation (X.500), and miscellaneous other utilities.
563.PP
564Several important enhancements have been added to the TCP/IP
565protocols including TCP header prediction and
566serial line IP (SLIP) with header compression.
567The routing implementation has been completely rewritten
568to use a hierarchical routing tree with a mask per route
569to support the arbitrary levels of routing found in the ISO protocols.
570The routing table also stores and caches route characteristics
571to speed the adaptation of the throughput and congestion avoidance
572algorithms.
573.NH 2
574Additions and changes to filesystems
575.PP
576The 4.4BSD distribution contains most of the interfaces
577specified in the IEEE Std1003.1 system interface standard.
578Filesystem additions include IEEE Std1003.1 FIFOs,
579byte-range file locking, and saved user and group identifiers.
580.PP
581A new virtual filesystem interface has been added to the
582kernel to support multiple filesystems.
583In comparison with other interfaces,
584the Berkeley interface has been structured for more efficient support
585of filesystems that maintain state (such as the local filesystem).
586The interface has been extended with support for stackable
587filesystems done at UCLA.
588These extensions allow for filesystems to be layered on top of each
589other and allow new vnode operations to be added without requiring
590changes to existing filesystem implementations.
591For example, the umap filesystem
592is used to mount a sub-tree of an existing filesystem
593that uses a different set of uids and gids than the local system.
594Such a filesystem could be mounted from a remote site via NFS or it
595could be a filesystem on removable media brought from some foreign
596location that uses a different password file.
597.PP
598In addition to the local ``fast filesystem'',
599we have added an implementation of the network filesystem (NFS)
600that fully interoperates with the NFS shipped by Sun and its licensees.
601Because our NFS implementation was implemented using only the
602publicly available NFS specification,
603it does not require a license from Sun to use in source or binary form.
604By default it runs over UDP to be compatible with Sun's implementation.
605However, it can be configured on a per-mount basis to run over TCP.
606Using TCP allows it to be used quickly and efficiently through
607gateways and over long-haul networks.
608Using an extended protocol, it supports Leases to allow a limited
609callback mechanism that greatly reduces the network traffic necessary
610to maintain cache consistency between the server and its clients.
611.PP
612A new log-structured filesystem has been added that provides
613near disk-speed output and fast crash recovery.
614It is still experimental in the 4.4BSD release,
615so we do not recommend it for production use.
616We have also added a memory-based filesystem that runs in
617pageable memory, allowing large temporary filesystems without
618requiring dedicated physical memory.
619.PP
620The local ``fast filesystem'' has been enhanced to do
621clustering which allows large pieces of files to be
622allocated contiguously resulting in near doubling
623of filesystem throughput.
624The filesystem interface has been extended to allow
625files and filesystems to grow to 2^63 bytes in size.
626The quota system has been rewritten to support both
627user and group quotas (simultaneously if desired).
628Quota expiration is based on time rather than
629the previous metric of number of logins over quota.
630This change makes quotas more useful on fileservers
631onto which users seldom login.
632.PP
633The system security has been greatly enhanced by the
634addition of additional file flags that permit a file to be
635marked as immutable or append only.
636Once set, these flags can only be cleared by the super-user
637when the system is running single user.
638To protect against indiscriminate reading or writing of kernel
639memory, all writing and most reading of kernel data structures
640must be done using a new ``sysctl'' interface.
641The information to be access is described through an extensible
642``Management Information Base'' (MIB).
643.NH 2
644POSIX terminal driver changes
645.PP
646The biggest area of change is a new terminal driver.
647The terminal driver is similar to the System V terminal driver
648with the addition of the necessary extensions to get the
649functionality previously available in the 4.3BSD terminal driver.
6504.4BSD also adds the IEEE Std1003.1 job control interface,
651which is similar to the 4.3BSD job control interface,
652but adds a security model that was missing in the
6534.3BSD job control implementation.
654A new system call, \fIsetsid\fP,
655creates a job-control session consisting of a single process
656group with one member, the caller, that becomes a session leader.
657Only a session leader may acquire a controlling terminal.
658This is done explicitly via a \s-1TIOCSCTTY\s+1 \fIioctl\fP call,
659not implicitly by an \fIopen\fP call.
660The call fails if the terminal is in use.
661.PP
662For backward compatibility,
663both the old \fIioctl\fP
664calls and old options to \fIstty\fP
665are emulated.
666.NH 1
667Changes to the utilities
668.PP
669There are several new tools and utilities included in this release.
670A new version of ``make'' allows much-simplified makefiles for the
671system software and allows compilation for multiple architectures
672from the same source tree (which may be mounted read-only).
673Notable additions to the libraries include functions to traverse a
674filesystem hierarchy, database interfaces to btree and hashing functions,
675a new, fast implementation of stdio and a radix sort function.
676The additions to the utility suite include greatly enhanced versions of
677programs that display system status information, implementations of
678various traditional tools described in the IEEE Std1003.2 standard,
679and many others.
680.PP
681We have been tracking the IEEE Std1003.2 shell and utility work
682and have included prototypes of many of the proposed utilities.
683Most of the traditional utilities have been replaced
684with implementations conformant to the POSIX standards.
685Almost the entire manual suite has been rewritten to
686reflect the POSIX defined interfaces.
687In rewriting this software, we have generally
688been rewarded with significant performance improvements.
689Most of the libraries and header files have been converted
690to be compliant with ANSI C.
691The system libraries and utilities all compile
692with either ANSI or traditional C.
693.PP
694The Kerberos (version 4) authentication software has been
695integrated into much of the system (including NFS) to provide
696the first real network authentication on BSD.
697.PP
698The \fIfind\fP
699utility has two new options that are important to be aware of if you
700intend to use NFS.
701The ``fstype'' and ``prune'' options can be used together to prevent
702find from crossing NFS mount points.
703.NH 2
704Additions and changes to the libraries
705.PP
706The \fIcurses\fP
707library has been largely rewritten.
708Important additional features include support
709for scrolling and \fItermios\fP.
710.PP
711An application front-end editing library, named libedit, has been
712added to the system.
713.PP
714A superset implementation of the SunOS kernel memory interface library,
715\fIlibkvm\fP, has been integrated into the system.
716.PP
717Nearly the entire C-library has been rewritten.
718Some highlights of the changes to the 4.4BSD C-library:
719.IP \(bu
720The newly added \fIfts\fP
721functions will do either physical or logical traversal of
722a file hierarchy as well as handle essentially infinite depth
723filesystems and filesystems with cycles.
724All the utilities in 4.4BSD that traverse file hierarchies
725have been converted to use \fIfts\fP.
726The conversion has always resulted in a significant performance
727gain, often of four or five to one in system time.
728.IP \(bu
729The newly added \fIdbopen\fP
730functions are intended to be a family of database access methods.
731Currently, they consist of \fIhash\fP,
732an extensible, dynamic hashing scheme,
733\fIbtree\fP, a sorted, balanced tree structure (B+tree's), and
734\fIrecno\fP, a flat-file interface for fixed or variable length records
735referenced by logical record number.
736Each of the access methods stores associated key/data pairs and
737uses the same record oriented interface for access.
738.IP \(bu
739The \fIqsort\fP
740function has been rewritten for additional performance.
741In addition, three new types of sorting functions,
742\fIheapsort\fP, \fImergesort\fP, and \fIradixsort\fP
743have been added to the system.
744The \fImergesort\fP
745function is optimized for data with pre-existing order,
746in which case it usually significantly outperforms \fIqsort\fP.
747The \fIradixsort\fP
748functions are variants of most-significant-byte radix sorting.
749They take time linear to the number of bytes to be
750sorted, usually significantly outperforming \fIqsort\fP
751on data that can be sorted in this fashion.
752An implementation of the POSIX 1003.2 standard \fIsort\fP
753based on \fIradixsort\fP is included in 4.4BSD.
754.IP \(bu
755The floating point support in the C-library has been replaced
756and is now accurate.
757.IP \(bu
758The C functions specified by both ANSI C, POSIX 1003.1 and
7591003.2 are now part of the C-library.
760This includes support for file name matching, shell globbing
761and both basic and extended regular expressions.
762.IP \(bu
763ANSI C multibyte and wide character support has been integrated.
764The rune functionality from the Bell Labs' Plan 9 system is provided
765as well.
766.IP \(bu
767The \fItermcap\fP
768functions have been generalized and replaced with a general
769purpose interface named \fIgetcap\fP.
770.IP \(bu
771The \fIstdio\fP
772routines have been replaced, and are usually much faster.
773In addition, the \fIfunopen\fP
774interface permits applications to provide their own I/O stream
775function support.
776.sp 3
777.nr PS 9
778.nr VS 10
779.LP
780.ce
781\fIPreface to the 4.4 Berkeley distribution\fP
782.sp 1
783.LP
784This update to the 4.3 distribution of April 1986 provides
785substantially improved functionality, security, and standardization,
786a Sun-compatible Network Filesystem (NFS),
787a new virtual memory implementation based on Carnegie-Mellon's MACH, and
788the addition of ISO networking protocols to the set of networking domains.
789It adds support for several new architectures including
790SPARC-based Sparcstations 1 and 2,
791MIPS-based Decstation 3100 and 5000 and Sony NEWS,
79268000-based Hewlett-Packard 9000/300 and Omron Luna, and
793386-based Personal Computers.
794.LP
795We were greatly assisted by the recent employees of the
796Computer Systems Research Group: Mike Karels, Marc Tietelbaum,
797and Keith Sklower.
798Our distribution coordinator, Pauline Schwartz,
799has reliably managed the finances
800and the mechanics of gettings distributions shipped for
801nearly the entire fourteen years of the group's existence.
802However, the vast majority of the distribution comes from the
803numerous people in the UNIX community
804that provided their time and energy in creating
805the software contributed to this release.
806We dedicate this distribution to them.
807.sp 1
808.in 4i
809.nf
810M. K. McKusick
811K. Bostic
812.fi
813.in 0
814.sp 2
815.ne 1i
816.ce
817\fIPreface to the 4.3 Berkeley distribution\fP
818.sp 1
819.LP
820This update to the 4.2 distribution of August 1983 provides
821substantially improved performance, reliability, and security,
822the addition of Xerox Network System (NS) to the set of networking domains,
823and partial support for the VAX 8600 and MICROVAXII.
824.LP
825We were greatly assisted by the DEC UNIX Engineering group who
826provided two full time employees, Miriam Amos and Kevin Dunlap,
827to work at Berkeley. They were responsible for developing and
828debugging the distributed domain based name server
829and integrating it into the mail system.
830Mt Xinu provided the bug list distribution service as well as
831donating their MICROVAXII port to 4.3BSD.
832Drivers for the MICROVAXII were done by Rick Macklem
833at the University of Guelph.
834Sam Leffler provided valuable assistance and advice with many projects.
835Keith Sklower coordinated with William Nesheim and J. Q. Johnson at Cornell,
836and Chris Torek and James O'Toole at the University of Maryland
837to do the Xerox Network Systems implementation.
838Robert Elz at the University of Melbourne contributed greatly
839to the performance work in the kernel.
840Donn Seeley and Jay Lepreau at the University of Utah
841relentlessly dealt with a miriad of details;
842Donn completed the unfinished performance work on Fortran 77
843and fixed numerous C compiler bugs.
844Ralph Campbell handled innumerable questions and problem reports
845and had time left to write rdist.
846George Goble was invaluable in shaking out the bugs on his
847production systems long before we were confident enough to
848inflict it on our users.
849Bill Shannon at Sun Microsystems has been helpful in
850providing us with bug fixes and improvements.
851Tom Ferrin, in his capacity as Board Member of Usenix Association,
852handled the logistics of large-scale reproduction
853of the 4.2BSD and 4.3BSD manuals.
854Mark Seiden helped with the typesetting and indexing of the 4.3BSD manuals.
855Special mention goes to Bob Henry for keeping ucbvax running
856in spite of new and improved software and
857an ever increasing mail, news, and uucp load.
858.LP
859Numerous others contributed their time and energy in creating
860the user contributed software for the release.
861As always, we are grateful to the UNIX user community for
862encouragement and support.
863.LP
864Once again, the financial support of the Defense Advanced Research
865Projects Agency is gratefully acknowledged.
866.sp 1
867.in 4i
868.nf
869M. K. McKusick
870M. J. Karels
871J. M. Bloom
872.fi
873.in 0
874.sp 2
875.ne 2i
876.ce
877\fIPreface to the 4.2 Berkeley distribution\fP
878.sp 1
879This update to the 4.1 distribution of June 1981 provides support
880for the VAX 11/730, full networking and interprocess communication
881support, an entirely new file system, and many other new features.
882It is certainly the most ambitious release of software ever prepared
883here and represents many man-years of work.
884Bill Shannon (both at DEC and at Sun Microsystems)
885and Robert Elz of the University
886of Melbourne contributed greatly to this distribution
887through new device drivers and painful debugging episodes.
888Rob Gurwitz of BBN wrote the initial version of the code upon
889which the current networking support is based.
890Eric Allman of Britton-Lee donated countless hours to the mail system.
891Bill Croft (both at SRI and Sun Microsystems) aided in the
892debugging and development of the networking facilities.
893Dennis Ritchie of Bell Laboratories also
894contributed greatly to this distribution, providing
895valuable advise and guidance. Helge Skrivervik
896worked on the device drivers which enabled
897the distribution to be delivered with a TU58
898console cassette and RX01 console flopppy disk, and
899rewrote major portions of the standalone i/o system
900to support formatting of non-DEC peripherals.
901.LP
902Numerous others contributed their time and energy in organizing
903the user software for release, while many groups of people on
904campus suffered patiently through the low spots of development.
905As always, we are grateful to the UNIX user community for
906encouragement and support.
907.LP
908Once again, the financial support of the Defense Advanced Research
909Projects Agency is gratefully acknowledged.
910.sp 1
911.in 4i
912.nf
913S. J. Leffler
914W. N. Joy
915M. K. McKusick
916.fi
917.in 0
918.sp 2
919.ne 1i
920.ce
921\fIPreface to the 4.1 Berkeley distribution\fP
922.sp 1
923This update to the fourth distribution of November 1980 provides
924support for the VAX 11/750 and for the full interconnect architecture
925of the VAX 11/780. Robert Elz of the University of Melbourne contributed
926greatly to this distribution especially in the boot-time system
927configuration code; Bill Shannon of DEC supplied us with the
928implementation of DEC standard bad block handling. The research
929group at Bell Laboratories and DEC Merrimack provided us with access
930to 11/750's in order to debug its support.
931.LP
932Other individuals too numerous to mention provided us with bug reports,
933fixes and other enhancements which are reflected in the system. We
934are grateful to the UNIX user community for encouragement and
935support.
936.LP
937The financial support of the Defence Advanced Research Projects Agency
938in support of this work is gratefully acknowledged.
939.sp 1
940.in 4i
941.nf
942W. N. Joy
943R. S. Fabry
944K. Sklower
945.fi
946.in 0
947.sp 2
948.ne 1i
949.ce
950\fIPreface to the Fourth Berkeley distribution\fP
951.sp 1
952This manual reflects the Berkeley system mid-October, 1980.
953A large amount of tuning has been done in the system since the last release;
954we hope this provides as noticeable an improvement for you as it did for us.
955This release finds the system in transition; a number of facilities
956have been added in experimental versions (job control, resource limits)
957and the implementation of others is imminent (shared-segments, higher
958performance from the file system, etc.).
959Applications which use facilities that are in transition should be aware
960that some of the system calls and library routines will change
961in the near future. We have tried to be conscientious and make it
962very clear where this is likely.
963.LP
964A new group has been formed
965at Berkeley, to assume responsibility for the future
966development and support of a version of UNIX on the VAX.
967The group has received funding from the
968Defense Advanced Research Projects Agency (DARPA)
969to supply a standard version of the system to DARPA contractors.
970The same version of the system will be made available to other licensees
971of UNIX on the VAX for a duplication charge.
972We gratefully acknowledge
973the support of this contract.
974.LP
975We wish to acknowledge the contribution of a number of individuals to
976the the system.
977.LP
978We would especially like to thank
979Jim Kulp of IIASA,
980Laxenburg Austria and his colleagues,
981who first put job control facilities into UNIX;
982Eric Allman, Robert Henry, Peter Kessler and Kirk McKusick, who
983contributed major new pieces of software;
984Mark Horton, who contributed to the improvement of facilities and
985substantially improved the quality of our bit-mapped fonts,
986our hardware support staff:
987Bob Kridle,
988Anita Hirsch,
989Len Edmondson
990and
991Fred Archibald,
992who helped us to debug a number of new peripherals;
993Ken Arnold who did much of the leg-work in getting this version of the
994manual prepared, and did the final editing of sections 2-6,
995some special individuals within Bell Laboratories:
996Greg Chesson,
997Stuart Feldman,
998Dick Haight,
999Howard Katseff,
1000Brian Kernighan,
1001Tom London,
1002John Reiser,
1003Dennis Ritchie,
1004Ken Thompson,
1005and
1006Peter Weinberger
1007who helped out by answering questions;
1008our excellent local DEC field service people,
1009Kevin Althaus and Frank Chargois
1010who kept our machine running virtually all the time, and fixed it quickly
1011when things broke;
1012and,
1013Mike Accetta of Carnegie-Mellon University,
1014Robert Elz of the University of Melbourne,
1015George Goble of Purdue University,
1016and
1017David Kashtan of the Stanford Research Institute
1018for their technical advice and support.
1019.LP
1020Special thanks to Bill Munson of DEC who helped by augmenting
1021our computing facility
1022and to Eric Allman for carefully proofreading the
1023``last'' draft of the manual and finding the bugs which we knew were
1024there but couldn't see.
1025.LP
1026We dedicate this to the memory of David Sakrison, late chairman of our
1027department, who gave his support to the establishment of our VAX
1028computing facility, and to our department as a whole.
1029.sp 1
1030.in 4i
1031.nf
1032W. N. Joy
1033\v'-3p'\h'2p'\*:\v'3p'\h'-2p'O. Babao\*~glu
1034R. S. Fabry
1035K. Sklower
1036.fi
1037.in 0
1038.sp 2
1039.ne 1i
1040.ce
1041\fIPreface to the Third Berkeley distribution\fP
1042.sp 1
1043This manual reflects the state of the Berkeley system, December 1979.
1044We would like to thank all the people at Berkeley who have contributed to
1045the system, and particularly thank
1046Prof. Richard Fateman for creating and administrating a hospitable environment,
1047Mark Horton who helped prepare this manual, and
1048Eric Allman, Bob Kridle, Juan Porcar
1049and Richard Tuck for their contributions to the kernel.
1050.LP
1051The cooperation of Bell Laboratories in providing us with an early version of
1052\s-2UNIX\s0/32V is greatly appreciated. We would especially like to thank
1053Dr. Charles Roberts of Bell Laboratories for helping us obtain this release,
1054and acknowledge
1055T. B. London,
1056J. F. Reiser,
1057K. Thompson,
1058D. M. Ritchie,
1059G. Chesson and
1060H. P. Katseff
1061for their advice and support.
1062.sp 1
1063.in 4i
1064W. N. Joy
1065.br
1066\v'-3p'\h'2p'\*:\v'3p'\h'-2p'O. Babao\*~glu
1067.in 0
1068.sp 2
1069.ne 1i
1070.ce
1071\fIPreface to the UNIX/32V distribution\fP
1072.sp 1
1073The
1074.UX
1075operating system for the VAX*-11
1076.FS
1077*VAX and PDP are Trademarks of Digital Equipment Corporation.
1078.FE
1079provides substantially the same facilities as the
1080\s-2UNIX\s0
1081system for the PDP*-11.
1082.LP
1083We acknowledge the work of many who came before us, and particularly thank
1084G. K. Swanson, W. M. Cardoza, D. K. Sharma, and J. F. Jarvis for assistance
1085with the implementation for the VAX-11/780.
1086.sp 1
1087.in 4i
1088T. B. London
1089.br
1090J. F. Reiser
1091.in 0
1092.sp 2
1093.ne 1i
1094.ce
1095\fIPreface to the Seventh Edition\fP
1096.sp 1
1097.LP
1098Although this Seventh Edition no longer bears their byline,
1099Ken Thompson and Dennis Ritchie remain the fathers
1100and preceptors of the
1101\s-2UNIX\s0
1102time-sharing system.
1103Many of the improvements here described bear their mark.
1104Among many, many other people who have contributed to
1105the further flowering of
1106\s-2UNIX\s0,
1107we wish especially to
1108acknowledge the contributions of
1109A. V. Aho,
1110S. R. Bourne,
1111L. L. Cherry,
1112G. L. Chesson,
1113S. I. Feldman,
1114C. B. Haley,
1115R. C. Haight,
1116S. C. Johnson,
1117M. E. Lesk,
1118T. L. Lyon,
1119L. E. McMahon,
1120R. Morris,
1121R. Muha,
1122D. A. Nowitz,
1123L. Wehr,
1124and
1125P. J. Weinberger.
1126We appreciate also
1127the effective advice and criticism of
1128T. A. Dolotta,
1129A. G. Fraser,
1130J. F. Maranzano,
1131and
1132J. R. Mashey;
1133and we remember the important work of
1134the late Joseph F. Ossanna.
1135.sp 1
1136.in 4i
1137B. W. Kernighan
1138.br
1139M. D. McIlroy
1140.in 0
1141.if o .bp
1142\&
1143.bp
1144.de IR
1145\fI\\$1\^\fR\\$2
1146..
1147.de RI
1148\fR\\$1\fI\\$2\^\fR\\$3
1149..
1150.ce
1151\fB\s+4INTRODUCTION\s-4\fP
1152.sp 1
1153.nr PS 10
1154.nr VS 12
1155.LP
1156The documentation for 4.4BSD is in a format similar
1157to the one used for the 4.2BSD and 4.3BSD manuals.
1158It is divided into three sets; each set consists of one or more volumes.
1159The abbreviations for the volume names are listed in square brackets;
1160the abbreviations for the manual sections are listed in parenthesis.
1161.DS
1162I. User's Documents
1163 User's Reference Manual [URM]
1164 Commands (1)
1165 Games (6)
1166 Macro packages and language conventions (7)
1167 User's Supplementary Documents [USD]
1168 Getting Started
1169 Basic Utilities
1170 Communicating with the World
1171 Text Editing
1172 Document Preparation
1173 Amusements
1174
1175II. Programmer's Documents
1176 Programmer's Reference Manual [PRM]
1177 System calls (2)
1178 Subroutines (3)
1179 Special files (4)
1180 File formats and conventions (5)
1181 Programmer's Supplementary Documents [PSD]
1182 Documents of Historic Interest
1183 Languages in common use
1184 Programming Tools
1185 Programming Libraries
1186 General Reference
1187
1188III. System Manager's Manual [SMM]
1189 Maintenance commands (8)
1190 System Installation and Administration
1191.DE
1192.LP
1193References to individual documents are given as ``volume:document'',
1194thus USD:1 refers to the first document in the ``User's Supplementary
1195Documents''.
1196References to manual pages are given as ``\fIname\fP(section)'' thus
1197.IR sh (1)
1198refers to the shell manual entry in section 1.
1199.LP
1200The manual pages give descriptions of the features of the
12014.4BSD system, as developed at the University of California at Berkeley.
1202They do not attempt to provide perspective or tutorial information about the
12034.4BSD operating system, its facilities, or its implementation.
1204Various documents on those topics are contained in the
1205``\s-1UNIX\s+1 User's Supplementary Documents'' (USD), the
1206``\s-1UNIX\s+1 Programmer's Supplementary Documents'' (PSD),
1207and ``\s-1UNIX\s+1 System Manager's Manual'' (SMM).
1208In particular, for an overview see ``The \s-1UNIX\s+1 Time-Sharing System'' (PSD:1)
1209by Ritchie and Thompson; for a tutorial see
1210``\s8\s-1UNIX\s+1\s10 for Beginners'' (USD:1) by Kernighan,
1211and for an guide to the new features of this latest version, see
1212``Berkeley Software Architecture Manual (4.4 Edition)'' (PSD:5).
1213.LP
1214Within the area it surveys, this volume attempts to be timely, complete
1215and concise. Where the latter two objectives conflict,
1216the obvious is often left unsaid in favor of brevity.
1217It is intended that each program be described as it is, not as it should be.
1218Inevitably, this means that various sections will soon be out of date.
1219.LP
1220Commands are programs intended to be invoked directly by
1221the user, in contrast to subroutines, that are
1222intended to be called by the user's programs.
1223User commands are described in URM section 1.
1224Commands generally reside in directory
1225.I /bin
1226(for
1227.IR bin \|ary
1228programs).
1229Some programs also reside in
1230.I
1231/\|usr/\|bin,
1232.R
1233to save space in
1234.I /\|bin.
1235.R
1236These directories are searched automatically by the command interpreters.
1237Additional directories that may be of interest include
1238.I
1239/\|usr/\|contrib/\|bin,
1240.R
1241which has contributed software
1242.I
1243/\|usr/\|old/\|bin,
1244.R
1245which has old but sometimes still useful software and
1246.I
1247/\|usr/\|local/\|bin,
1248.R
1249which contains software local to your site.
1250.LP
1251Games have been relegated to URM section 6 and
1252.I
1253/\|usr/\|games,
1254.R
1255to keep them from contaminating
1256the more staid information of URM section 1.
1257.LP
1258Miscellaneous collection of information necessary for
1259writing in various specialized languages such as character codes,
1260macro packages for typesetting, etc is contained in URM section 7.
1261.LP
1262System calls are entries into the BSD kernel.
1263The system call interface is identical to a C language
1264procedure call; the equivalent C procedures are described in PRM section 2.
1265.LP
1266An assortment of subroutines is available;
1267they are described in PRM section 3.
1268The primary libraries in which they are kept are described in
1269.IR intro (3).
1270The functions are described in terms of C.
1271.LP
1272PRM section 4 discusses the characteristics of
1273each system ``file'' that refers to an I/O device.
1274The names in this section refer to the HP300 device names for the hardware,
1275instead of the names of the special files themselves.
1276.LP
1277The file formats and conventions (PRM section 5)
1278documents the structure of particular kinds of files;
1279for example, the form of the output of the loader and
1280assembler is given. Excluded are files used by only one command,
1281for example the assembler's intermediate files.
1282.LP
1283Commands and procedures intended for use primarily by the
1284system administrator are described in SMM section 8.
1285The files described here are almost all kept in the directory
1286.I /\|etc.
1287The system administration binaries reside in
1288.I
1289/\|sbin,
1290.R
1291and
1292.I
1293/\|usr/\|sbin.
1294.LP
1295Each section consists of independent entries of a page or so each.
1296The name of the entry is in the upper corners of its pages,
1297together with the section number.
1298Entries within each section are alphabetized.
1299The page numbers of each entry start at 1;
1300it is infeasible to number consecutively the pages of
1301a document like this that is republished in many variant forms.
1302.LP
1303All entries are based on a common format;
1304not all subsections always appear.
1305.RS
1306.LP
1307The
1308.I name
1309subsection lists the exact names of the commands and subroutines
1310covered under the entry and gives a short description of their purpose.
1311.LP
1312The
1313.IR synopsis ""
1314summarizes the use of the program being described.
1315A few conventions are used, particularly in the Commands subsection:
1316.LP
1317.RS
1318.B Boldface
1319words are considered literals, and are typed just as they appear.
1320.LP
1321Square brackets [ ] around an argument show that the argument is optional.
1322When an argument is given as ``name'', it always refers to a file name.
1323.LP
1324Ellipses ``.\|.\|.'' are used to show that the previous argument-prototype
1325may be repeated.
1326.LP
1327A final convention is used by the commands themselves.
1328An argument beginning with a minus sign ``\-'' usually means that it is an
1329option-specifying argument, even if it appears in a position where
1330a file name could appear. Therefore, it is unwise to have files whose
1331names begin with ``\-''.
1332.LP
1333.RE
1334The
1335.IR description ""
1336subsection discusses in detail the subject at hand.
1337.LP
1338The
1339.IR files ""
1340subsection gives the names of files that are built into the program.
1341.LP
1342A
1343.I
1344see also
1345.R
1346subsection gives pointers to related information.
1347.LP
1348A
1349.I diagnostics
1350subsection discusses the diagnostic indications that may be produced.
1351Messages that are intended to be self-explanatory are not listed.
1352.LP
1353The
1354.IR bugs ""
1355subsection gives known bugs and sometimes deficiencies.
1356Occasionally the suggested fix is also described.
1357.LP
1358.RE
1359At the beginning of URM is a table of contents,
1360organized by section and alphabetically within each section.
1361There is also a permuted index derived from the table of contents.
1362Within each index entry, the title of the writeup to which
1363it refers is followed by the appropriate section number in parentheses.
1364This fact is important because there is considerable
1365name duplication among the sections, arising principally from commands that
1366exist only to exercise a particular system call.
1367Finally, there is a list of documents on the inside back cover of each volume.
1368.SH
1369HOW TO GET STARTED
1370.LP
1371This section sketches the basic information you need to get started on \s-1UNIX\s+1;
1372how to log in and log out, how to communicate through your terminal,
1373and how to run a program.
1374See ``\s-1UNIX\s+1 for Beginners'' in (USD:1) for a
1375more complete introduction to the system.
1376.LP
1377.I
1378Logging in.\ \
1379.R
1380Almost any ASCII terminal capable of
1381full duplex operation and generating
1382the entire character set can be used.
1383You must have a valid user name,
1384which may be obtained from the system administration.
1385If you will be accessing \s-1UNIX\s+1 remotely, you will also
1386need to obtain the telephone number for the system that you will be using.
1387.LP
1388After a data connection is established,
1389the login procedure depends on what type of terminal you are using
1390and local system conventions.
1391If your terminal is directly connected to the computer,
1392it generally runs at 9600 or 19200 baud.
1393If you are using a modem running over a phone line,
1394the terminal must be set at the speed appropriate for the modem you are using,
1395typically 1200, 2400, or 9600 baud.
1396The half/full duplex switch should always be set at full-duplex.
1397(This switch will often have to be changed
1398since many other systems require half-duplex).
1399.LP
1400When a connection is established, the system types ``login:'';
1401you type your user name, followed by the ``return'' key.
1402If you have a password, the system asks for it
1403and suppresses echo to the terminal so the password will not appear.
1404After you have logged in, the ``return'', ``new line'', or ``linefeed'' keys
1405will give exactly the same results.
1406A message-of-the-day usually greets you before your first prompt.
1407.LP
1408If the system types out a few garbage characters
1409after you have established a data connection
1410(the ``login:'' message at the wrong speed),
1411depress the ``break'' (or ``interrupt'') key.
1412This is a speed-independent signal to \s-1UNIX\s+1
1413that a different speed terminal is in use.
1414The system then will type ``login:,'' this time at another speed.
1415Continue depressing the break key until ``login:'' appears clearly,
1416then respond with your user name.
1417.LP
1418For all these terminals, it is important
1419that you type your name in lower-case if possible; if you type
1420upper-case letters,
1421\s-1UNIX\s+1 will assume that your terminal cannot generate lower-case
1422letters and will translate all subsequent lower-case letters to upper case.
1423.LP
1424The evidence that you have successfully logged in is that a shell program
1425will type a prompt (``$'' or ``%'') to you.
1426(The shells are described below under ``How to run a program.'')
1427.LP
1428For more information, consult
1429.IR tset (1),
1430and
1431.IR stty (1),
1432which tell how to adjust terminal behavior;
1433.IR getty (8)
1434discusses the login sequence in more detail, and
1435.IR tty (4)
1436discusses terminal I/O.
1437.LP
1438.I
1439Logging out.\ \
1440.R
1441There are three ways to log out:
1442.IP
1443By typing ``logout'' or an end-of-file
1444indication (EOT character, control-D) to the shell.
1445The shell will terminate and the ``login:'' message will appear again.
1446.IP
1447You can log in directly as another user by giving a
1448.IR login (1)
1449command.
1450.IP
1451If worse comes to worse,
1452you can simply hang up the phone; but beware \- some machines may
1453lack the necessary hardware to detect that the phone has been hung up.
1454Ask your system administrator if this is a problem on your machine.
1455.LP
1456.I
1457How to communicate through your terminal.\ \
1458.R
1459When you type characters, a gnome deep in the system
1460gathers your characters and saves them in a secret place.
1461The characters will not be given to a program
1462until you type a return (or newline), as described above in
1463.I
1464Logging in.
1465.R
1466.LP
1467\s-1UNIX\s+1 terminal I/O is full-duplex.
1468It has full read-ahead, which means that you can type at any time,
1469even while a program is typing at you.
1470Of course, if you type during output, the printed output will
1471have the input characters interspersed.
1472However, whatever you type will be saved up and interpreted in correct sequence.
1473There is a limit to the amount of read-ahead,
1474but it is generous and not likely to be exceeded unless
1475the system is in trouble.
1476When the read-ahead limit is exceeded, the system
1477throws away all the saved characters (or beeps, if your prompt was a ``%'').
1478.LP
1479The ^U (control-U) character in typed input kills all the
1480preceding characters in the line,
1481so typing mistakes can be repaired on a single line.
1482Also, the delete character (DEL) or sometimes the
1483backspace character (control-H) erases the last character typed.
1484.IR Tset (1)
1485or
1486.IR stty (1)
1487can be used to change these defaults.
1488Successive uses of delete (or backspace) erases characters back to, but
1489not beyond, the beginning of the line.
1490DEL and ^U (control-U) can be transmitted to a program by preceding them with
1491^V (control-V).
1492(So, to erase ^V (control-V), you need two deletes or backspaces).
1493.LP
1494An
1495.I
1496interrupt signal
1497.R
1498is sent to a program by typing ^C (control-C) or the ``break'' key
1499which is not passed to programs.
1500This signal generally causes whatever program you are running to terminate.
1501It is typically used to stop a long printout that you do not want.
1502However, programs can arrange either to ignore this signal altogether,
1503or to be notified when it happens (instead of being terminated).
1504The editor, for example, catches interrupts and stops what it is doing,
1505instead of terminating, so that an interrupt can
1506be used to halt an editor printout without losing the file being edited.
1507The interrupt character can also be changed with
1508.IR tset (1)
1509or
1510.IR stty (1).
1511.LP
1512It is also possible to suspend output temporarily using ^S (control-S)
1513and later resume output with ^Q (control-Q).
1514Output can be thrown away without interrupting
1515the program by typing ^O (control-O); see
1516.IR tty (4).
1517.LP
1518The
1519.IR quit ""
1520signal is generated by typing the \s8ASCII\s10 FS character.
1521(FS appears many places on different terminals, most commonly
1522as control-\e or control-\^|\^.)
1523It not only causes a running program to terminate
1524but also generates a file with the core image of the terminated process.
1525Quit is useful for debugging.
1526.LP
1527Besides adapting to the speed of the terminal,
1528\s-1UNIX\s+1 tries to be intelligent about whether
1529you have a terminal with the newline function
1530or whether it must be simulated with carriage-return and line-feed.
1531In the latter case, all input carriage returns
1532are turned to newline characters (the standard line delimiter)
1533and both a carriage return and a line feed are echoed to the terminal.
1534If you get into the wrong mode, the
1535.IR reset (1)
1536command will rescue you.
1537If the terminal does not appear to be echoing anything that you type,
1538it may be stuck in ``no-echo'' or ``raw'' mode.
1539Try typing ``(control-J)reset(control-J)'' to recover.
1540.LP
1541Tab characters are used freely in \s-1UNIX\s+1 source programs.
1542If your terminal does not have the tab function,
1543you can arrange to have them turned into spaces
1544during output, and echoed as spaces during input.
1545The system assumes that tabs are set every eight columns.
1546Again, the
1547.IR tset (1)
1548or
1549.IR stty (1)
1550command can be used to change these defaults.
1551.IR Tset (1)
1552can be used to set the tab stops automatically when necessary.
1553.LP
1554.I
1555How to run a program; the shells.\ \
1556.R
1557When you have successfully logged in, a program
1558called a shell is listening to your terminal.
1559The shell reads typed-in lines, splits them up
1560into a command name and arguments, and executes the command.
1561A command is simply an executable program.
1562The shell looks in several system directories to find the command.
1563You can also place commands in your own directory and
1564have the shell find them there.
1565There is nothing special about system-provided
1566commands except that they are kept in a directory where the shell can find them.
1567.LP
1568The command name is always the first word on an input line;
1569it and its arguments are separated from one another by spaces.
1570.LP
1571When a program terminates, the shell will ordinarily regain control and type
1572a prompt at you to show that it is ready for another command.
1573.LP
1574The shells have many other capabilities, that are described in detail in
1575sections
1576.IR sh (1)
1577and
1578.IR csh (1).
1579If the shell prompts you with ``$'', then it is an instance of
1580.IR sh (1),
1581the original \s-1UNIX\s+1 shell.
1582If it prompts with ``%'' then it is an instance of
1583.IR csh (1),
1584a shell written at Berkeley.
1585The shells are different for all but the most simple terminal usage.
1586Most users at Berkeley choose
1587.IR csh (1)
1588because of the
1589.I history
1590mechanism and the
1591.I alias
1592feature, that greatly enhance its power when used interactively.
1593.I Csh
1594also supports the job-control facilities;
1595see
1596.IR csh (1)
1597or the Csh introduction in USD:4 for details.
1598.LP
1599You can change from one shell to the other by using the
1600.I chpass (1)
1601command, which takes effect at your next login.
1602.LP
1603.I
1604The current directory.\ \
1605.R
1606\s-1UNIX\s+1 has a file system arranged as a hierarchy of directories.
1607When the system administrator gave you a user name,
1608they also created a directory for you (ordinarily
1609with the same name as your user name).
1610When you log in, any file name you type is by default in this directory.
1611Since you are the owner of this directory, you have
1612full permission to read, write, alter, or destroy its contents.
1613Permissions to have your will with other directories
1614and files will have been granted or denied to you by their owners.
1615As a matter of observed fact, few \s-1UNIX\s+1
1616users protect their files from perusal by other users.
1617.LP
1618To change the current directory (but not the set of permissions you
1619were endowed with at login) use
1620.IR cd (1).
1621.LP
1622.I
1623Path names.\ \
1624.R
1625To refer to files not in the current directory, you must use a path name.
1626Full path names begin with ``/\|'', the name of the root directory of the
1627whole file system.
1628After the slash comes the name of each directory containing the next
1629sub-directory (followed by a ``/\|'') until finally the file name is reached.
1630For example,
1631.I
1632/\^var/\^tmp/\^filex
1633.R
1634refers to the file
1635.I
1636filex
1637.R
1638in the directory
1639.I
1640tmp; tmp
1641.R
1642is itself a subdirectory of
1643.I
1644var; var
1645.R
1646springs directly from the root directory.
1647.LP
1648If your current directory has subdirectories,
1649the path names of files therein begin with
1650the name of the subdirectory with no prefixed ``/\|''.
1651.LP
1652A path name may be used anywhere a file name is required.
1653.LP
1654Important commands that modify the contents of files are
1655.IR cp (1),
1656.IR mv (1),
1657and
1658.IR rm (1),
1659which respectively copy, move (i.e. rename) and remove files.
1660To find out the status of files or directories, use
1661.IR ls (1).
1662See
1663.IR mkdir (1)
1664for making directories and
1665.IR rmdir (1)
1666for destroying them.
1667.LP
1668For a fuller discussion of the file system, see
1669``A Fast File System for \s-1UNIX\s+1'' (SMM:5)
1670by McKusick, Joy, Leffler, and Fabry.
1671It may also be useful to glance through PRM section 2,
1672that discusses system calls, even if you do not intend
1673to deal with the system at that level.
1674.LP
1675.I
1676Writing a program.\ \
1677.R
1678To enter the text of a source program into a \s-1UNIX\s+1 file,
1679use the standard display editor
1680.IR vi (1)
1681or its \s-1WYSIWYG\s+1 counterparts
1682.IR jove (1)
1683and
1684.IR emacs (1).
1685(The old standard editor
1686.IR ed (1)
1687is also available.)
1688The principle language in \s-1UNIX\s+1 is provided by the C compiler
1689.IR cc (1).
1690User contributed software in the latest
1691release of the system supports the programming languages perl and C++.
1692After the program text has been entered through the editor
1693and written to a file, you can give the file
1694to the appropriate language processor as an argument.
1695The output of the language processor
1696will be left on a file in the current directory named ``a.out''.
1697If the output is precious, use
1698.IR mv (1)
1699to move it to a less exposed name after successful compilation.
1700.LP
1701When you have finally gone through this entire process
1702without provoking any diagnostics, the resulting program
1703can be run by giving its name to the shell
1704in response to the shell (``$'' or ``%'') prompt.
1705.LP
1706Your programs can receive arguments from the command line
1707just as system programs do,
1708see ``\s-1UNIX\s+1 Programming - Second Edition'' (PSD:4),
1709or for a more terse description
1710.IR execve (2).
1711.LP
1712.I
1713Text processing.\ \
1714.R
1715Almost all text is entered through an editor such as
1716.IR vi (1),
1717.IR jove (1),
1718or
1719.IR emacs (1).
1720The commands most often used to write text on a terminal are:
1721.IR cat (1),
1722.IR more (1),
1723and
1724.IR nroff (1).
1725.LP
1726The
1727.IR cat (1)
1728command simply dumps \s8ASCII\s10 text
1729on the terminal, with no processing at all.
1730.IR More (1)
1731is useful for preventing the output of a command from
1732scrolling off the top of your screen.
1733It is also well suited to perusing files.
1734.IR Nroff (1)
1735is an elaborate text formatting program.
1736Used naked, it requires careful forethought, but for
1737ordinary documents it has been tamed; see
1738.IR me (7)
1739and
1740.IR ms (7).
1741.LP
1742.IR Groff (1)
1743converts documents to postscript for output to a
1744Laserwriter or Phototypesetter.
1745It is similar to
1746.IR nroff (1),
1747and often works from exactly the same source text.
1748It was used to produce this manual.
1749.LP
1750.IR Script (1)
1751lets you keep a record of your session in a file,
1752which can then be printed, mailed, etc.
1753It provides the advantages of a hard-copy terminal
1754even when using a display terminal.
1755.LP
1756.I
1757Status inquiries.\ \
1758.R
1759Various commands exist to provide you with useful information.
1760.IR w (1)
1761prints a list of users currently logged in, and what they are doing.
1762.IR date (1)
1763prints the current time and date.
1764.IR ls (1)
1765will list the files in your directory or give
1766summary information about particular files.
1767.LP
1768.I
1769Surprises.\ \
1770.R
1771Certain commands provide inter-user communication.
1772Even if you do not plan to use them, it would be
1773well to learn something about them, because someone else may aim them at you.
1774.LP
1775To communicate with another user currently logged in,
1776.IR write (1)
1777or
1778.IR talk (1)
1779is used;
1780.IR mail (1)
1781will leave a message whose presence will be announced
1782to another user when they next log in.
1783The write-ups in the manual also suggest how to respond to
1784the these commands if you are a target.
1785.LP
1786If you use
1787.IR csh (1)
1788the key ^Z (control-Z) will cause jobs to ``stop''.
1789If this happens before you learn about it,
1790you can simply continue by saying ``fg'' (for foreground) to bring
1791the job back.
1792.LP
1793We hope that you will come to enjoy using the BSD system.
1794Although it is very large and contains many commands,
1795you can become very productive using only a small subset of them.
1796As your needs expand to doing new tasks,
1797you will almost always find that the system has the facilities
1798that you need to accomplish them easily and quickly.
1799.LP
1800Most importantly, the source code to the BSD system
1801is cheaply available to anyone that wants it.
1802On many BSD systems, it can be found in the directory
1803.IR /\|usr/\|src .
1804You may simply want to find out how something works
1805or fix some important bug without waiting months for
1806your vendor to respond.
1807It is also particularly useful if you
1808want to grab another piece of code to bootstrap a new project.
1809Provided that you retain the copyrights and acknowledgements
1810at the top of each file, you are free to redistribute your
1811work for fun or profit.
1812Naturally, we hope that you will allow others to also redistribute
1813your code, though you are not required to do so unless you
1814use copyleft code (which is primarily found in the software
1815contributed from the Free Software Foundation and is
1816clearly identified).
1817.LP
1818Good luck and enjoy BSD.
1819.OH '''\s10- % -\s0'
1820.EH '\s10- % -\s0'''
1821.if o .bp
1822\&
1823.bp
1824.EF '\s9\\\\*(Dt''\\\\*(Ed\s0'
1825.OF '\s9\\\\*(Ed''\\\\*(Dt\s0'
1826.ce
1827\s+4\fBLIST \|OF \|MANUAL \|PAGES\fP\s-4
1828.nr x 0.5
1829.in +\nxi
1830.nf
1831.ta \n(.lu-\nxuR
1832.de xx
1833\\$1\f3 \a \fP\\$2
1834..
1835.de t
1836.sp 1v
1837.ne .5i
1838.cs 3
1839.ti -\\nxi
1840.ss 18
1841\f3\s9\\$2. \\$3\s0\fP
1842.ss 12
1843.if t .sp .5v
1844.cs 3 36
1845.ds Ed Section \\$2
1846.ds Dt \\$3
1847.so \\$1
1848..
1849.t toc1 1 "Commands and Application Programs"
1850.t toc2 2 "System Calls"
1851.t toc3 3 "C Library Subroutines"
1852.t toc4 4 "Special Files"
1853.t toc5 5 "File Formats"
1854.t toc6 6 "Games"
1855.t toc7 7 "Miscellaneous"
1856.t toc8 8 "System Maintenance"
1857.in -\nxi
1858.cs 3
1859.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
1860.if o .bp
1861\&
1862.bp
1863\&
1864.OH '\s9\fIPermuted Index\fP''- % -\s0'
1865.EH '\s9- % -''\fIPermuted Index\fP\s0'
1866.ds Ed 4.4BSD
1867.ds Dt June \|1993
1868.ce
1869\s+4\fBPERMUTED \|INDEX\fP\s-4
1870.sp 1
1871.nr PS 8
1872.nr VS 9
1873.LP
1874.\" backup from slotput 1, slot, 2
1875.tr ~
1876.nf
1877.cs 3 36
1878.de xx
1879.ds s1\"
1880.if \w\ 2\\$2\ 2 .ds s1 ~~\"
1881.ds s2 ~~~\"
1882.ds s3\"
1883.if \w\ 2\\$4\ 2 .ds s3 ~~\"
1884.ds s4 ~~\"
1885.ds s5 ~~\"
1886.ds y \\*(s4\f3\ 1\fP\\*(s5
1887.ta 6i-\w\ 2\\*(s5\ 2u
1888\h"3i-\w\ 2\\$1\\*(s1\\$2\\*(s2\ 2u"\\$1\\*(s1\\$2\\*(s2\\$3\\*(s3\\$4\\*y\\$5
1889..
1890.so ptxx
1891.cs 3
1892.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i