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