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