|
|
1.1 ! root 1: .\" Copyright (c) 1980, 1986, 1988 Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted ! 5: .\" provided that the above copyright notice and this paragraph are ! 6: .\" duplicated in all such forms and that any documentation, ! 7: .\" advertising materials, and other materials related to such ! 8: .\" distribution and use acknowledge that the software was developed ! 9: .\" by the University of California, Berkeley. The name of the ! 10: .\" University may not be used to endorse or promote products derived ! 11: .\" from this software without specific prior written permission. ! 12: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 13: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 14: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 15: .\" ! 16: .\" @(#)4.t 6.5 (Berkeley) 3/7/89 ! 17: .\" ! 18: .de IR ! 19: \fI\\$1\fP\|\\$2 ! 20: .. ! 21: .ds LH "Installing/Operating \*(4B ! 22: .nr H1 4 ! 23: .nr H2 0 ! 24: .ds CF \*(DY ! 25: .ds RH "System setup ! 26: .bp ! 27: .LG ! 28: .B ! 29: .ce ! 30: 4. SYSTEM SETUP ! 31: .sp 2 ! 32: .R ! 33: .NL ! 34: .PP ! 35: This section describes procedures used to set up a \*(Mc UNIX system. ! 36: These procedures are used when a system is first installed ! 37: or when the system configuration changes. Procedures for normal ! 38: system operation are described in the next section. ! 39: .if \n(Vx \{\ ! 40: .NH 2 ! 41: Creating UNIX boot media ! 42: .PP ! 43: The procedures for making the various UNIX boot media are described in this ! 44: section. If you have an 8200 or 11/780, you will need to make a floppy. ! 45: For an 11/730, you will need to make a cassette. For an ! 46: 8600, you will need to make a console RL02 pack. ! 47: .PP ! 48: The boot command files are all set up for booting off of the first ! 49: UNIBUS or MASSBUS. If you are booting off of a different UNIBUS ! 50: or MASSBUS, you will need to modify the boot command files appropriately. ! 51: .NH 3 ! 52: Making a UNIX boot console RL02 pack ! 53: .PP ! 54: If you have an 8600 you will want to create a ! 55: .UX ! 56: boot console RL02 pack by adding some files to your current DEC ! 57: console pack, using ! 58: \fIarff\fP\|(8). ! 59: If you do not want to modify your current DEC console pack, you may ! 60: make a copy of it first using ! 61: \fIdd\fP\|(1). ! 62: This pack will make standalone system operations such as ! 63: bootstrapping much easier. ! 64: .PP ! 65: First change into the directory where the console RL02 ! 66: information is stored: ! 67: .DS ! 68: \fB#\fI cd /sys/consolerl\fR ! 69: .DE ! 70: then set up the default boot device. ! 71: If you have an RK07 as your primary root do: ! 72: .DS ! 73: \fB#\fI cp defboo.hk defboo.com\fR ! 74: .DE ! 75: If you have a drive on a UDA50 (e.g. an RA81) as your ! 76: primary root do: ! 77: .DS ! 78: \fB#\fI cp defboo.ra defboo.com\fR ! 79: .DE ! 80: If you have a second vendor ! 81: UNIBUS storage module as your primary root do: ! 82: .DS ! 83: \fB#\fI cp defboo.up defboo.com\fR ! 84: .DE ! 85: Otherwise: ! 86: .DS ! 87: \fB#\fI cp defboo.hp defboo.com\fR ! 88: .DE ! 89: The final step in updating the console RL02 pack is: ! 90: .DS ! 91: \fB#\fI make update\fR ! 92: .DE ! 93: More copies of this console RL02 pack can be made using ! 94: .IR dd (1). ! 95: .NH 3 ! 96: Making a UNIX boot floppy ! 97: .PP ! 98: If you have an 8200 or 11/780 you will want to create a ! 99: .UX ! 100: boot floppy by adding some files to a copy of your current DEC ! 101: console floppy, using either ! 102: .IR flcopy (8) ! 103: or ! 104: .IR dd \|(1), ! 105: and using ! 106: .IR arff \|(8). ! 107: This floppy will make standalone system operations such as ! 108: bootstrapping much easier. ! 109: .PP ! 110: First change into the directory where the console floppy ! 111: information is stored: ! 112: .DS ! 113: \fB#\fI cd /sys/floppy\fR ! 114: .DE ! 115: then set up the default boot device. ! 116: If you have an RK07 as your primary root do: ! 117: .DS ! 118: \fB#\fI cp defboo.hk defboo.cmd\fR ! 119: .DE ! 120: If you have a drive on a UDA50 (e.g. an RA81) as your ! 121: primary root do: ! 122: .DS ! 123: \fB#\fI cp defboo.ra defboo.cmd\fR ! 124: .DE ! 125: If you have a second vendor ! 126: UNIBUS storage module as your primary root do: ! 127: .DS ! 128: \fB#\fI cp defboo.up defboo.cmd\fR ! 129: .DE ! 130: If you have a drive on a KDB50 as your primary root do: ! 131: .DS ! 132: \fB#\fI cp defboo.kra defboo.cmd\fR ! 133: .DE ! 134: Otherwise: ! 135: .DS ! 136: \fB#\fI cp defboo.hp defboo.cmd\fR ! 137: .DE ! 138: On an 11/780, ! 139: if the local configuration requires any changes in restar.cmd ! 140: or defboo.cmd (e.g., for interleaved old-style memory controllers see ! 141: defboo.MS780C-interleaved), ! 142: these should be made now. ! 143: The following command will then copy your DEC local console floppy, ! 144: updating the copy appropriately. ! 145: .DS ! 146: \fB#\fI make update\fR ! 147: \fBChange Floppy, Hit return when done.\fP ! 148: (waits for you to put clean floppy in console) ! 149: \fBAre you sure you want to clobber the floppy?\fI yes\fR ! 150: .DE ! 151: More copies of this floppy can be made using ! 152: .IR flcopy (8). ! 153: .PP ! 154: On an 8200, copy any of the DEC diagnostic floppies ! 155: by placing the source in console drive 1 and the destination ! 156: in console drive 2, then: ! 157: .DS ! 158: .\" XXX be sure to put /dev/csa? in root fs, or makedev first ! 159: \fB#\fI dd if=/dev/csa1 of=/dev/csa2 bs=400k\fR ! 160: \fB1+0 records in\fP ! 161: \fB1+0 records out\fP ! 162: .DE ! 163: Next remove all but the first few files, leaving only those ! 164: that lead up to ``boot58.exe'' (as well as boot58.exe itself). ! 165: It is a good idea to remove ! 166: the original floppy from drive 1 first. ! 167: .DS ! 168: \fB#\fI arff tmf /dev/csa2\fR ! 169: \&...(should list something like ``fg81.ve0'', followed by ``boot58.exe''; ! 170: then a series of files that may be deleted)...\fP ! 171: \fB#\fI arff dmf /dev/csa2\fR files to delete from previous list ! 172: .DE ! 173: Finally, add UNIX boot files: ! 174: .DS ! 175: \fB#\fI arff rmf /dev/csa2 boot format copy *boo.cmd\fR ! 176: .DE ! 177: Put the new boot floppy in drive 1. To make copies of this floppy, ! 178: use the same ! 179: .I dd ! 180: command shown above. ! 181: .NH 3 ! 182: Making a UNIX boot cassette ! 183: .PP ! 184: If you have an 11/730 you will want to create a ! 185: .UX ! 186: boot cassette by adding some files to a copy of ! 187: your current DEC console cassette, using ! 188: \fIflcopy\fP\|(8) and \fIarff\fP\|(8). ! 189: This cassette will make standalone system operations such as ! 190: bootstrapping much easier. ! 191: .PP ! 192: First change into the directory where the console cassette ! 193: information is stored: ! 194: .DS ! 195: \fB#\fI cd /sys/cassette\fR ! 196: .DE ! 197: then set up the default boot device. ! 198: If you have an IDC storage module as your primary root do: ! 199: .DS ! 200: \fB#\fI cp defboo.rb defboo.cmd\fR ! 201: .DE ! 202: If you have an RK07 as your primary root do: ! 203: .DS ! 204: \fB#\fI cp defboo.hk defboo.cmd\fR ! 205: .DE ! 206: If you have a drive on a UDA50 as your primary root do: ! 207: .DS ! 208: \fB#\fI cp defboo.ra defboo.cmd\fR ! 209: .DE ! 210: Otherwise: ! 211: .DS ! 212: \fB#\fI cp defboo.up defboo.cmd\fR ! 213: .DE ! 214: To complete the procedure place your DEC local ! 215: console cassette in ! 216: drive 0 (the drive at front of the CPU); ! 217: the following command will then copy it, ! 218: updating the copy appropriately. ! 219: .DS ! 220: \fB#\fI make update\fR ! 221: \fBChange Floppy, Hit return when done.\fP ! 222: (waits for you to put clean cassette in console drive 0) ! 223: \fBAre you sure you want to clobber the floppy?\fI yes\fR ! 224: .DE ! 225: More copies of this cassette can best be made using ! 226: .IR dd (1). ! 227: .\} ! 228: .NH 2 ! 229: Kernel configuration ! 230: .PP ! 231: This section briefly describes the layout of the kernel code and ! 232: how files for devices are made. ! 233: For a full discussion of configuring ! 234: and building system images, consult the document ``Building ! 235: 4.3BSD UNIX Systems with Config''. ! 236: .NH 3 ! 237: Kernel organization ! 238: .PP ! 239: As distributed, the kernel source is in a ! 240: separate tar image. The source may be physically ! 241: located anywhere within any file system so long as ! 242: a symbolic link to the location is created for the ! 243: file /sys ! 244: (many files in /usr/include are normally symbolic links ! 245: relative to /sys). In further discussions of the ! 246: system source all path names will be given relative to ! 247: /sys. ! 248: .PP ! 249: The directory /sys/sys ! 250: contains the mainline machine independent ! 251: operating system code. ! 252: Files within this directory are conventionally ! 253: named with the following prefixes: ! 254: .DS ! 255: .TS ! 256: lw(1.0i) l. ! 257: init_ system initialization ! 258: kern_ kernel (authentication, process management, etc.) ! 259: quota_ disk quotas ! 260: sys_ system calls and similar ! 261: tty_ terminal handling ! 262: ufs_ file system ! 263: uipc_ interprocess communication ! 264: vm_ virtual memory ! 265: .TE ! 266: .DE ! 267: .PP ! 268: The remaining directories are organized as follows: ! 269: .DS ! 270: .TS ! 271: lw(1.0i) l. ! 272: /sys/h machine-independent include files ! 273: /sys/conf site configuration files and basic templates ! 274: /sys/kdb machine-independent part of the kernel debugger ! 275: /sys/net protocol-independent, but network-related code ! 276: /sys/netimp IMP support code ! 277: /sys/netinet DARPA Internet code ! 278: /sys/netns Xerox NS code ! 279: /sys/stand machine-independent standalone code ! 280: /sys/tahoe Tahoe-specific mainline code ! 281: /sys/tahoealign Tahoe unaligned-reference emulation code ! 282: /sys/tahoedist Tahoe distribution files ! 283: /sys/tahoeif Tahoe network interface code ! 284: /sys/tahoevba Tahoe VERSAbus device drivers and related code ! 285: /sys/tahoemath Tahoe floating point emulation code ! 286: /sys/tahoestand Tahoe standalone device drivers and related code ! 287: /sys/vax VAX-specific mainline code ! 288: /sys/vaxbi VAX BI device drivers and related code ! 289: /sys/vaxdist VAX distribution files ! 290: /sys/vaxif VAX network interface code ! 291: /sys/vaxmba VAX MASSBUS device drivers and related code ! 292: /sys/vaxstand VAX standalone device drivers and boot code ! 293: /sys/vaxuba VAX UNIBUS device drivers and related code ! 294: .TE ! 295: .DE ! 296: .PP ! 297: Many of these directories are referenced through /usr/include with ! 298: symbolic links. For example, /usr/include/sys is a symbolic ! 299: link to /sys/h. The system code, as distributed, is totally ! 300: independent of the include files in /usr/include. This allows ! 301: the system to be recompiled from scratch without the /usr file ! 302: system mounted. ! 303: .NH 3 ! 304: Devices and device drivers ! 305: .PP ! 306: Devices supported by UNIX are implemented in the kernel ! 307: by drivers whose source is kept in ! 308: .if \n(Vx \{\ ! 309: /sys/vax, /sys/vaxbi, /sys/vaxuba, or /sys/vaxmba. ! 310: .\} ! 311: .if \n(Th \{\ ! 312: /sys/tahoe or /sys/tahoevba. ! 313: .\} ! 314: These drivers are loaded ! 315: into the system when included in a cpu specific configuration file ! 316: kept in the conf directory. Devices are accessed through special ! 317: files in the file system, made by the ! 318: .IR mknod (8) ! 319: program and normally kept in the /dev directory. ! 320: For all the devices supported by the distribution system, the ! 321: files in /dev are created by the /dev/MAKEDEV ! 322: shell script. ! 323: .PP ! 324: Determine the set of devices that you have and create a new /dev ! 325: directory by running the MAKEDEV script. ! 326: First create a new directory ! 327: /newdev, copy MAKEDEV into it, edit the file MAKEDEV.local ! 328: to provide an entry for local needs, ! 329: and run it to generate a /newdev directory. ! 330: .if \n(Vx \{\ ! 331: For instance, if your machine has a single DZ11, a single ! 332: DH11, a single DMF32, an RM03 disk, an EMULEX UNIBUS SMD disk controller, an ! 333: AMPEX 9300 disk, and a TE16 tape drive you would do: ! 334: .\} ! 335: .if \n(Th \{\ ! 336: For instance, if your machine has a single VIOC terminal ! 337: multiplexor, two CDC 340 megabyte Winchester drives, and ! 338: a single Cipher tape drive you would do: ! 339: .\} ! 340: .DS ! 341: \fB#\fP \fIcd /\fP ! 342: \fB#\fP \fImkdir newdev\fP ! 343: \fB#\fP \fIcp dev/MAKEDEV newdev/MAKEDEV\fP ! 344: \fB#\fP \fIcd newdev\fP ! 345: .if \n(Vx \{\ ! 346: \fB#\fP \fIMAKEDEV dz0 dh0 dmf0 hp0 up0 ht0 std LOCAL\fP ! 347: .\} ! 348: .if \n(Th \{\ ! 349: \fB#\fP \fIMAKEDEV vx0 dk0 dk1 cy0 std LOCAL\fP ! 350: .\} ! 351: .DE ! 352: Note the ``std'' argument causes standard devices ! 353: such as \fI/dev/console\fP, the machine console, ! 354: .if \n(Vx \{\ ! 355: \fI/dev/floppy\fP, ! 356: the console floppy disk interface for the 11/780 and 11/785, and ! 357: \fI/dev/tu0\fP and \fI/dev/tu1\fP, the console cassette interfaces ! 358: for the 11/750 and 11/730, ! 359: .\} ! 360: to be created. ! 361: .PP ! 362: You can then do ! 363: .DS ! 364: \fB#\fP \fIcd /\fP ! 365: \fB#\fP \fImv dev olddev ; mv newdev dev\fP ! 366: \fB#\fP \fIsync\fP ! 367: .DE ! 368: to install the new device directory. ! 369: .NH 3 ! 370: Building new system images ! 371: .PP ! 372: The kernel configuration of each UNIX system is described by ! 373: a single configuration file, stored in the \fI/sys/conf\fP directory. ! 374: To learn about the format of this file and the procedure used ! 375: to build system images, ! 376: start by reading ``Building 4.3BSD UNIX Systems with Config'', ! 377: look at the manual pages in section 4 ! 378: of the UNIX manual for the devices you have, ! 379: and look at the sample configuration files in the /sys/conf ! 380: directory. ! 381: .PP ! 382: The configured system image ``vmunix'' should be ! 383: copied to the root, and then booted to try it out. ! 384: It is best to name it /newvmunix so as not to destroy ! 385: the working system until you're sure it does work: ! 386: .DS ! 387: \fB#\fP \fIcp vmunix /newvmunix\fP ! 388: \fB#\fP \fIsync\fP ! 389: .DE ! 390: It is also a good idea to keep the previous system around under some other ! 391: name. In particular, we recommend that you save the generic distribution ! 392: version of the system permanently as \fI/genvmunix\fP for use in emergencies. ! 393: To boot the new version of the system you should follow the ! 394: bootstrap procedures outlined in section 6.1. ! 395: After having booted and tested the new system, it should be installed ! 396: as \fI/vmunix\fP before going into multiuser operation. ! 397: A systematic scheme for numbering and saving old versions ! 398: of the system may be useful. ! 399: .NH 2 ! 400: Disk configuration ! 401: .PP ! 402: This section describes how to layout file systems to make use ! 403: of the available space and to balance disk load for better system ! 404: performance. ! 405: .NH 3 ! 406: Initializing /etc/fstab ! 407: .PP ! 408: .if \n(Vx \{\ ! 409: Change into the directory /etc and copy the appropriate file from: ! 410: .DS ! 411: fstab.rm03 ! 412: fstab.rm05 ! 413: fstab.rm80 ! 414: fstab.ra60 ! 415: fstab.ra80 ! 416: fstab.ra81 ! 417: fstab.rb80 ! 418: fstab.rp06 ! 419: fstab.rp07 ! 420: fstab.rk07 ! 421: fstab.up160m (160MB up drives) ! 422: fstab.hp400m (400MB hp drives) ! 423: fstab.up (other up drives) ! 424: fstab.hp (other hp drives) ! 425: .DE ! 426: to the file /etc/fstab, i.e.: ! 427: .DS ! 428: \fB#\fI cd /etc\fR ! 429: \fB#\fI cp \fIfstab.xxx\fP fstab\fR ! 430: .DE ! 431: .PP ! 432: This will set up the default information about the usage of disk ! 433: partitions, which we see how to update more below. ! 434: .\} ! 435: .if \n(Th \{\ ! 436: The names of the disks on \*(4B all use the basename \fIdk\fP, ! 437: unlike other systems on the Tahoe. ! 438: Unfortunately, the console processor reads the file \fI/etc/fstab\fP ! 439: and expects disk names that indicate the type of disk drive. ! 440: Therefore, the first line in \fI/etc/fstab\fP is a dummy line ! 441: to satisfy the console processor: ! 442: .DS ! 443: /dev/fsd0a:/:xx:1:1 ! 444: .DE ! 445: If your root disk is a type other than \fIfsd\fP, ! 446: edit \fI/etc/fstab\fP to change the first device ! 447: to the appropriate type. ! 448: .\} ! 449: .NH 3 ! 450: Disk naming and divisions ! 451: .PP ! 452: Each physical disk drive can be divided into up to 8 partitions; ! 453: UNIX typically uses only 3 or 4 partitions. ! 454: For instance, on an \*(Dn, ! 455: the first partition, \*(Dk0a, ! 456: is used for a root file system, a backup thereof, ! 457: or a small file system like, /tmp; ! 458: the second partition, \*(Dk0b, ! 459: is used for paging and swapping; and ! 460: the third partition, \*(Dk0\*(Pa, ! 461: holds a user file system. ! 462: .if \n(Vx \{\ ! 463: On an RM05, the first three partitions ! 464: are used as for the \*(Dn, and the fourth partition, \*(Dk0h, ! 465: holds the /usr file system, including source code. ! 466: .\} ! 467: .if !\n(Th \{\ ! 468: .PP ! 469: The disk partition sizes for a drive are based on a ! 470: set of four prototype partition tables; c.f. \fIdiskpart\fP\|(8). ! 471: The particular ! 472: table used is dependent on the size of the drive. ! 473: The ``a'' partition is the same size across all drives, ! 474: 15884 sectors. The ``b'' partition, used for paging and ! 475: swapping, is sized according to the total space on the disk. ! 476: For drives less than about 400 megabytes the partition ! 477: is 33440 sectors, while for larger drives the partition size ! 478: is doubled to 66880 sectors. The ``c'' partition is always ! 479: used to access the entire physical disk, including the space ! 480: at the back of the disk reserved for the bad sector ! 481: forwarding table. If the disk is larger than about 250 megabytes, ! 482: an ``h'' partition is created with size 291346 sectors, and ! 483: no matter whether the ``h'' partition is created or not, the ! 484: remainder of the drive is allocated to the ``g'' partition. ! 485: Sites that want to split up the ``g'' partition into several ! 486: smaller file systems may use the ``d'', ``e'', and ``f'' ! 487: partitions that overlap the ``g'' partition. The default ! 488: sizes for these partitions are 15884, 55936, and the remainder ! 489: of the disk, respectively*. ! 490: .FS ! 491: * These rules are, unfortunately, not evenly applied to all ! 492: disks. \fI/etc/disktab\fP, and the pack label or driver tables, ! 493: give the final word; consult section 4 of the manual, and ! 494: read /etc/disktab, for more information. ! 495: .FE ! 496: .PP ! 497: The disk partition sizes for DEC RA60, RA80, and RA81 have ! 498: changed since 4.2BSD. If upgrading from 4.2BSD, ! 499: you will need to decide if you want ! 500: to use the new partitions or the old partitions. If you ! 501: desire to use the old partitions, you will need to label your packs ! 502: as `racompat', or create your own by updating ! 503: /etc/disktab. Any ! 504: other partition sizes that were modified at your site will ! 505: require the same consideration; ! 506: if the device driver does not support pack labels, you will have to ! 507: update its compiled-in tables as well. ! 508: .\} ! 509: .PP ! 510: The space available on a disk varies per device. The amount of space ! 511: available on the common disk partitions is listed in the following table. ! 512: Not shown in the table are the partitions of each drive devoted ! 513: to the root file system and the paging area. ! 514: Many other partitions are listed in the standard partitions, ! 515: but most of them are not useful. ! 516: Note that the standard partition tables usually list several alternative ! 517: ways to divide a disk, but that only nonoverlapping partitions may be used ! 518: on any one disk. ! 519: .DS ! 520: .TS ! 521: center; ! 522: l l n l n. ! 523: Type Name Size Name Size ! 524: _ ! 525: .if \n(Vx \{\ ! 526: rk07 hk?g 13 Mb ! 527: rm03 hp?g 41 Mb ! 528: rp06 hp?g 145 Mb ! 529: rm05 hp?g 80 Mb hp?h 145 Mb ! 530: rm80 hp?g 96 Mb ! 531: ra60 ra?g 78 Mb ra?h 96 Mb ! 532: ra80 ra?g 96 Mb ! 533: ra81 ra?g 257 Mb ra?h 145 Mb ! 534: rb80 rb?g 41 Mb rb?h 56 Mb ! 535: rp07 hp?g 315 Mb hp?h 145 Mb ! 536: up300 up?g 80 Mb up?h 145 Mb ! 537: up330 up?g 90 Mb up?h 145 Mb ! 538: up400 hp?g 216 Mb hp?h 145 Mb ! 539: up160 up?g 106 Mb ! 540: .\} ! 541: .if \n(Th \{\ ! 542: xfd dk?c 225 Mb dk?g,h 112 Mb ! 543: eagle dk?c 301 Mb ! 544: fsd dk?c 106 Mb ! 545: .\} ! 546: .TE ! 547: .DE ! 548: .if \n(Vx \{\ ! 549: .LP ! 550: Here up300 refers to either an AMPEX or CDC 300 megabyte disk on a ! 551: MASSBUS or UNIBUS disk controller, up330 refers to either an AMPEX ! 552: or FUJITSU 330 megabyte disk on a MASSBUS or UNIBUS controller, ! 553: up160 refers to a FUJITSU 160 megabyte disk ! 554: on the UNIBUS, and up400 refers to a FUJITSU Eagle 400 megabyte ! 555: disk on a MASBUS or UNIBUS disk controller. ``hp'' should be ! 556: substituted for ``up'' above if the disk is on the MASSBUS. ! 557: Consult the manual pages for the specific controllers for other ! 558: supported disks or other partitions. ! 559: .PP ! 560: Each disk also has a paging area, typically 16 megabytes, and ! 561: a root file system of 7.5 megabytes. ! 562: .\} ! 563: .if \n(Th \{\ ! 564: .PP ! 565: Each disk also has a paging area and a root file system of between 10 and 30 ! 566: Megabytes apiece. ! 567: .\} ! 568: .\" XXX check ! 569: The distributed system binaries occupy about 34 megabytes ! 570: .\" XXX check ! 571: while the major sources occupy another 32 megabytes. ! 572: .if \n(Vx \{\ ! 573: This overflows dual RK07, dual RL02 and single RM03 systems, ! 574: but fits easily on most other hardware configurations. ! 575: .\} ! 576: .if \n(Th \{\ ! 577: This is unlikely to ! 578: overflow even the smallest Tahoe configurations. ! 579: .\} ! 580: .PP ! 581: Be aware that the disks have their sizes ! 582: measured in disk sectors (usually 512 bytes), while the UNIX file ! 583: system blocks are variable sized. All user programs report ! 584: disk space in kilobytes and, where needed, disk sizes are always ! 585: specified in units of ! 586: sectors. The /etc/disktab file used in labelling disks and making file systems ! 587: specifies disk partition sizes in sectors; the default sector size ! 588: (DEV_BSIZE as defined in /sys/h/param.h) ! 589: may be overridden with the ``se'' attribute. ! 590: .if \n(Th \{\ ! 591: All SMD disks on Tahoe currently use a sector size of 512 bytes. ! 592: .\} ! 593: .NH 3 ! 594: Layout considerations ! 595: .PP ! 596: There are several considerations in deciding how ! 597: to adjust the arrangement of things on your disks. ! 598: The most important is making sure that there is adequate space ! 599: for what is required; secondarily, throughput should be maximized. ! 600: Paging space is an important parameter. ! 601: The system, as distributed, sizes the configured ! 602: paging areas each time the system is booted. Further, ! 603: multiple paging areas of different size may be interleaved. ! 604: .if \n(Vx \{\ ! 605: Drives smaller than 400 megabytes have swap partitions of 16 megabytes ! 606: while drives larger than 400 megabytes have 32 megabytes. These ! 607: values may be changed to get more paging space by changing ! 608: the label (or, if labels are unsupported, ! 609: the appropriate partition table in the disk driver). ! 610: .\} ! 611: .PP ! 612: Many common system programs (C, the editor, the assembler etc.) ! 613: create intermediate files in the /tmp directory, ! 614: so the file system where this is stored also should be made ! 615: large enough to accommodate ! 616: most high-water marks; if you have several disks, it makes ! 617: sense to mount this in a ``root'' (i.e. first partition) ! 618: file system on another disk. ! 619: All the programs that create files in /tmp take ! 620: care to delete them, but are not immune to rare events ! 621: and can leave dregs. ! 622: The directory should be examined every so often and the old ! 623: files deleted. ! 624: .PP ! 625: The efficiency with which UNIX is able to use the CPU ! 626: is often strongly affected by the configuration of disk controllers. ! 627: For general time-sharing applications, ! 628: the best strategy is to try to split the root file system (/), system binaries ! 629: (/usr), the temporary files (/tmp), ! 630: and the user files among several disk arms, and to interleave ! 631: the paging activity among several arms. ! 632: .PP ! 633: It is critical for good performance to balance disk load. ! 634: There are at least five components of the disk load that you can ! 635: divide between the available disks: ! 636: .DS ! 637: 1. The root file system. ! 638: 2. The /tmp file system. ! 639: 3. The /usr file system. ! 640: 4. The user files. ! 641: 5. The paging activity. ! 642: .DE ! 643: The following possibilities are ones we have used at times ! 644: when we had 2, 3 and 4 disks: ! 645: .TS ! 646: center doublebox; ! 647: l | c s s ! 648: l | lw(5) | lw(5) | lw(5). ! 649: disks ! 650: what 2 3 4 ! 651: _ ! 652: / 0 0 0 ! 653: tmp 1 2 3 ! 654: usr 1 1 1 ! 655: paging 0+1 0+2 0+2+3 ! 656: users 0 0+2 0+2 ! 657: archive x x 3 ! 658: .TE ! 659: .PP ! 660: The most important things to consider are to ! 661: even out the disk load as much as possible, and to do this by ! 662: decoupling file systems (on separate arms) between which heavy copying occurs. ! 663: Note that a long term average balanced load is not important; it is ! 664: much more important to have an instantaneously balanced ! 665: load when the system is busy. ! 666: .PP ! 667: Intelligent experimentation with a few file system arrangements can ! 668: pay off in much improved performance. It is particularly easy to ! 669: move the root, the ! 670: /tmp ! 671: file system and the paging areas. Place the ! 672: user files and the ! 673: /usr ! 674: directory as space needs dictate and experiment ! 675: with the other, more easily moved file systems. ! 676: .NH 3 ! 677: File system parameters ! 678: .PP ! 679: Each file system is parameterized according to its block size, ! 680: fragment size, and the disk geometry characteristics of the ! 681: medium on which it resides. Inaccurate specification of the disk ! 682: characteristics or haphazard choice of the file system parameters ! 683: can result in substantial throughput degradation or significant ! 684: waste of disk space. As distributed, ! 685: file systems are configured according to the following table. ! 686: .DS ! 687: .TS ! 688: center; ! 689: l l l. ! 690: File system Block size Fragment size ! 691: _ ! 692: / 8 kbytes 1 kbytes ! 693: usr 4 kbytes 1 kbytes ! 694: users 4 kbytes 1 kbytes ! 695: .TE ! 696: .DE ! 697: .PP ! 698: The root file system block size is ! 699: made large to optimize bandwidth to the associated ! 700: disk; this is particularly important since the ! 701: /tmp directory is normally part of the root file or a similar filesystem. ! 702: The large block size is also ! 703: important as many of the most heavily used programs ! 704: are demand paged out of the /bin directory. The ! 705: fragment size of 1 kbyte is a ``nominal'' value to use ! 706: with a file system. With a 1 kbyte fragment size ! 707: disk space utilization is about the same ! 708: as with the earlier versions of the file system. ! 709: .PP ! 710: The usr file system would like to use a 4 kbyte block size ! 711: with 512 byte fragment size in an effort to get high performance ! 712: while conserving the amount of space wasted by a large fragment ! 713: size. However, the tahoe disk controllers require a minimum ! 714: block size of 1 Kbyte. Space compaction ! 715: has been deemed important here because the source code ! 716: for the system is normally placed on this file system. ! 717: If the source code is placed on a separate filesystem, ! 718: use of an 8 kbyte block size with 1 kbyte fragments might ! 719: be considered for improved performance when paging from \fI/usr\fP binaries. ! 720: .PP ! 721: The file systems for users have a 4 kbyte block ! 722: size with 1 kbyte fragment size. These parameters ! 723: have been selected based on observations of the ! 724: performance of our user file systems. The 4 kbyte ! 725: block size provides adequate bandwidth while the ! 726: 1 kbyte fragment size provides acceptable space compaction ! 727: and disk fragmentation. ! 728: .PP ! 729: Other parameters may be chosen in constructing file ! 730: systems, but the factors involved in choosing a block ! 731: size and fragment size are many and interact in complex ! 732: ways. Larger block sizes result in better ! 733: throughput to large files in the file system as ! 734: larger I/O requests will then be performed by the ! 735: system. However, ! 736: consideration must be given to the average file sizes ! 737: found in the file system and the performance of the ! 738: internal system buffer cache. The system ! 739: currently provides space in the inode for ! 740: 12 direct block pointers, 1 single indirect block ! 741: pointer, and 1 double indirect block pointer.* ! 742: .FS ! 743: * A triple indirect block pointer is also reserved, but ! 744: not currently supported. ! 745: .FE ! 746: If a file uses only direct blocks, access time to ! 747: it will be optimized by maximizing the block size. ! 748: If a file spills over into an indirect block, ! 749: increasing the block size of the file system may ! 750: decrease the amount of space used ! 751: by eliminating the need to allocate an indirect block. ! 752: However, if the block size is increased and an indirect ! 753: block is still required, then more disk space will be ! 754: used by the file because indirect blocks are allocated ! 755: according to the block size of the file system. ! 756: .PP ! 757: In selecting a fragment size for a file system, at least ! 758: two considerations should be given. The major performance ! 759: tradeoffs observed are between an 8 kbyte block file system ! 760: and a 4 kbyte block file system. Because of implementation ! 761: constraints, the block size / fragment size ratio can not ! 762: be greater than 8. This means that an 8 kbyte file system ! 763: will always have a fragment size of at least 1 kbytes. If ! 764: a file system is created with a 4 kbyte block size and a ! 765: 1 kbyte fragment size, then upgraded to an 8 kbyte block size ! 766: and 1 kbyte fragment size, identical space compaction will be ! 767: observed. However, if a file system has a 4 kbyte block size ! 768: and 512 byte fragment size, converting it to an 8K/1K ! 769: file system will result in significantly more space being ! 770: used. This implies that 4 kbyte block file systems that ! 771: might be upgraded to 8 kbyte blocks for higher performance should ! 772: use fragment sizes of at least 1 kbytes to minimize the amount ! 773: of work required in conversion. ! 774: .PP ! 775: A second, more important, consideration when selecting the ! 776: fragment size for a file system is the level of fragmentation ! 777: on the disk. With an 8:1 fragment to block ratio, storage fragmentation ! 778: occurs much sooner, particularly with a busy file system running ! 779: near full capacity. By comparison, the level of fragmentation in a ! 780: 4:1 fragment to block ratio file system is one tenth as severe. This ! 781: means that on file systems where many files are created and ! 782: deleted, the 512 byte fragment size is more likely to result in apparent ! 783: space exhaustion because of fragmentation. That is, when the file ! 784: system is nearly full, file expansion that requires locating a ! 785: contiguous area of disk space is more likely to fail on a 512 ! 786: byte file system than on a 1 kbyte file system. To minimize ! 787: fragmentation problems of this sort, a parameter in the super ! 788: block specifies a minimum acceptable free space threshold. When ! 789: normal users (i.e. anyone but the super-user) attempt to allocate ! 790: disk space and the free space threshold is exceeded, the user is ! 791: returned an error as if the file system were really full. This ! 792: parameter is nominally set to 10%; it may be changed by supplying ! 793: a parameter to \fInewfs\fP(8), or by updating the super block of an ! 794: existing file system using \fItunefs\fP\|(8). ! 795: .PP ! 796: In general, unless a file system is to be used ! 797: for a special purpose application (for example, storing ! 798: image processing data), we recommend using the ! 799: values supplied above. ! 800: Remember that the current ! 801: implementation limits the block size to at most 8 kbytes ! 802: and the ratio of block size / fragment size must be 1, 2, 4, or 8. ! 803: .PP ! 804: The disk geometry information used by the file system ! 805: affects the block layout policies employed. The file ! 806: /etc/disktab, as supplied, contains the data for most ! 807: all drives supported by the system. Before constructing ! 808: a file system with \fInewfs\fP\|(8) ! 809: you should label the disk (if it has not yet been labeled, ! 810: and the driver supports labels). ! 811: If labels cannot be used, you must instead ! 812: specify the type of disk on which the file system resides; ! 813: \fInewfs\fP then reads /etc/disktab instead of the pack label. ! 814: This file also contains the default ! 815: file system partition ! 816: sizes, and default block and fragment sizes. To ! 817: override any of the default values you can modify the file, ! 818: edit the disk label, ! 819: or use an option to \fInewfs\fP. ! 820: .NH 3 ! 821: Implementing a layout ! 822: .PP ! 823: To put a chosen disk layout into effect, you should use the ! 824: .IR newfs (8) ! 825: command to create each new file system. ! 826: Each file system must also be added to the file ! 827: /etc/fstab ! 828: so that it will be checked and mounted when the system is bootstrapped. ! 829: .PP ! 830: As an example, consider a system with \*(Dn's. On the first \*(Dn, \*(Dk0, ! 831: we will put the root file system in \*(Dk0a, and the /usr ! 832: file system in \*(Dk0\*(pa, which has enough space to hold it and then some. ! 833: The /tmp directory will be part of the root file system, ! 834: as no file system will be mounted on /tmp. ! 835: If we had only one \*(Dn, we would put user files ! 836: in the \*(Dk0\*(pa partition with the system source and binaries. ! 837: .PP ! 838: If we had a second \*(Dn, we would place \fI/usr\fP in \*(Dk1\*(Pa. ! 839: We would put user files in \*(Dk0g, calling the file system /a. ! 840: We would also interleave the paging ! 841: between the 2 \*(Dn's. To do this we would build a system configuration ! 842: that specified: ! 843: .DS ! 844: config vmunix root on \*(Dk0 swap on \*(Dk0 and \*(Dk1 ! 845: .DE ! 846: to get the swap interleaved, and \fI/etc/fstab\fP would then contain ! 847: .DS ! 848: /dev/\*(Dk0a:/:rw:1:1 ! 849: /dev/\*(Dk0b::sw:: ! 850: /dev/\*(Dk0g:/a:rw:1:2 ! 851: /dev/\*(Dk1b::sw:: ! 852: /dev/\*(Dk1g:/usr:rw:1:2 ! 853: .DE ! 854: We would keep a backup copy of the root ! 855: file system in the \fB\*(Dk1a\fP disk partition. ! 856: Alternatively, that partition could be used for \fI/tmp\fP. ! 857: .PP ! 858: To make the /a file system we would do: ! 859: .if \n(Th \{\ ! 860: .ds Dn eagle ! 861: .\} ! 862: .DS ! 863: \fB#\fP \fIcd /dev\fP ! 864: \fB#\fP \fIMAKEDEV \*(Dk1\fP ! 865: \fB#\fP \fIdisklabel -wr \*(Dk1 \*(Dn "disk name"\fP ! 866: \fB#\fP \fInewfs \*(Dk1\*(Pa\fP ! 867: (information about file system prints out) ! 868: \fB#\fP \fImkdir /a\fP ! 869: \fB#\fP \fImount /dev/\*(Dk1\*(Pa /a\fP ! 870: .DE ! 871: .NH 2 ! 872: Configuring terminals ! 873: .PP ! 874: If UNIX is to support simultaneous ! 875: access from directly-connected terminals other than the console, ! 876: the file \fI/etc/ttys\fP (\fIttys\fP\|(5)) must be edited. ! 877: .if \n(Vx \{\ ! 878: .PP ! 879: Terminals connected via DZ11 interfaces are conventionally named \fBttyDD\fP ! 880: where DD is a decimal number, the ``minor device'' number. ! 881: The lines on dz0 are named /dev/tty00, /dev/tty01, ... /dev/tty07. ! 882: By convention, all other terminal names are of the form \fBtty\fPCX, where ! 883: C is an alphabetic character according to the type of terminal multiplexor ! 884: and its unit number, ! 885: and X is a digit for the first ten lines on the interface ! 886: and an increasing lower case letter for the rest of the lines. ! 887: C is defined for the number of interfaces of each type listed below. ! 888: .DS ! 889: .TS ! 890: center box; ! 891: c c c c ! 892: c c c c ! 893: l c n n. ! 894: Interface Number of lines Number of ! 895: Type Characters per board Interfaces ! 896: _ ! 897: DZ11 see above 8 10 ! 898: DMF32 A-C,E-I 8 8 ! 899: DMZ32 a-c,e-g 24 6 ! 900: DH11 h-o 16 8 ! 901: DHU11 S-Z 16 8 ! 902: pty p-u 16 6 ! 903: .TE ! 904: .DE ! 905: .\} ! 906: .if \n(Th \{\ ! 907: .PP ! 908: Terminals connected via VIOC-X interfaces are conventionally named tty\fIDD\fP ! 909: where \fIDD\fP is a hexadecimal number, the ``minor device'' number. ! 910: The first digit is the multiplexor unit number, and the second digit ! 911: is the line number. ! 912: For VIOC's with fewer than 16 connectors, the missing unit numbers are unused. ! 913: .PP ! 914: Terminals connected using 16 port MPCC interfaces are conventionally named ! 915: tty\fICD\fP where \fIC\fP is a single upper-case letter and \fID\fP is a ! 916: single hexidecimal digit. The upper-case letter is the multiplexor unit ! 917: number (with \fIA\fP being mpcc 0) and the hexidecimal digit is the port ! 918: number on that unit. ! 919: .\} ! 920: .PP ! 921: To add a new terminal device, be sure the device is configured into the system ! 922: and that the special files for the device have been made by /dev/MAKEDEV. ! 923: .if \n(Vx \{\ ! 924: (For example, use ``cd /dev; MAKEDEV dz1'' to make the special files ! 925: for the second DZ11.) ! 926: .\} ! 927: .if \n(Th \{\ ! 928: (For example, use ``cd /dev; MAKEDEV vx1'' to make the special files ! 929: for the second VIOC.) ! 930: .\} ! 931: Then, enable the appropriate lines of /etc/ttys by setting the ``status'' ! 932: field to \fBon\fP (or add new lines). ! 933: Note that lines in \fI/etc/ttys\fP are one-for-one with entries ! 934: in the file of current users (\fI/etc/utmp\fP), ! 935: and therefore it is best to make changes ! 936: while running in single-user mode ! 937: and to add all of the entries for a new device at once. ! 938: .if \n(Th \{\ ! 939: .PP ! 940: To add mpcc controllers, and additional step is required. At boot time, ! 941: the firmware for each mpcc controller must be downloaded. The program ! 942: \fI/etc/dlmpcc\fP must therefore be invoked from \fI/etc/rc.local\fP. ! 943: The file \fI/etc/mpcctab\fP describes each mpcc controller and is used ! 944: by \fI/etc/dlmpcc\fP to determine how many mpcc's are on the system. ! 945: See \fImpcc\fP(4) and \fIdlmpcc\fP(8) for more information. ! 946: .\} ! 947: .PP ! 948: The format of the /etc/ttys file is completely new in 4.3BSD. ! 949: Each line in the file is broken into four tab separated ! 950: fields (comments are shown by a `#' character and extend to ! 951: the end of the line). For each terminal line the four fields ! 952: are: ! 953: the device (without a leading /dev), ! 954: the program /etc/init should startup to service the line ! 955: (or \fBnone\fP if the line is to be left alone), ! 956: the terminal type (found in /etc/termcap), ! 957: and optional status information describing if the terminal is ! 958: enabled or not and if it is ``secure'' (i.e. the super user should ! 959: be allowed to login on the line). All fields are character strings ! 960: with entries requiring embedded white space enclosed in double ! 961: quotes. ! 962: Thus a newly added terminal /dev/tty00 could be added as ! 963: .DS ! 964: tty00 "/etc/getty std.9600" vt100 on secure # mike's office ! 965: .DE ! 966: The std.9600 parameter provided ! 967: to /etc/getty is used in searching the file /etc/gettytab; it specifies ! 968: a terminal's characteristics (such as baud rate). ! 969: To make custom terminal types, consult ! 970: .IR gettytab (5) ! 971: before modifying /etc/gettytab. ! 972: .PP ! 973: Dialup terminals should be wired so that carrier is asserted only when the ! 974: phone line is dialed up. ! 975: For non-dialup terminals, from which modem control is not available, ! 976: .if \n(Vx \{\ ! 977: you must either wire back the signals so that ! 978: the carrier appears to always be present, or show in the system ! 979: configuration that carrier is to be assumed to be present ! 980: with \fIflags\fP for each terminal device. See ! 981: .IR dh (4), ! 982: .IR dhu (4), ! 983: .IR dz (4), ! 984: .IR dmz (4), ! 985: and ! 986: .IR dmf (4) ! 987: for details. ! 988: .\} ! 989: .if \n(Th \{\ ! 990: you must wire back the signals so that ! 991: the carrier appears to always be present. For further details, see ! 992: .IR vx (4), ! 993: .IR mpcc (4), ! 994: and ! 995: .IR dlmpcc (8). ! 996: .\} ! 997: .PP ! 998: For network terminals (i.e. pseudo terminals), no program should ! 999: be started up on the lines. Thus, the normal entry in /etc/ttys ! 1000: would look like ! 1001: .DS ! 1002: ttyp0 none network ! 1003: .DE ! 1004: (Note, the fourth field is not needed here.) ! 1005: .PP ! 1006: When the system is running multi-user, all terminals that are listed ! 1007: in /etc/ttys as \fBon\fP have their line enabled. ! 1008: If, during normal operations, you wish ! 1009: to disable a terminal line, you can edit the file ! 1010: /etc/ttys ! 1011: to change the terminal's status to \fBoff\fP and ! 1012: then send a hangup signal to the \fIinit\fP process, by doing ! 1013: .DS ! 1014: \fB#\fP \fIkill \-1 1\fP ! 1015: .DE ! 1016: Terminals can similarly be enabled by changing the status field ! 1017: from \fBoff\fP to \fBon\fP and sending a hangup signal to \fIinit\fP. ! 1018: .PP ! 1019: Note that if a special file is inaccessible when \fIinit\fP tries ! 1020: to create a process for it, init will log a message to the ! 1021: system error logging process (/etc/syslogd) ! 1022: and try to reopen the terminal every minute, reprinting the warning ! 1023: message every 10 minutes. Messages of this sort are normally ! 1024: printed on the console, though other actions may occur depending ! 1025: on the configuration information found in /etc/syslog.conf. ! 1026: .PP ! 1027: Finally note that you should change the names of any dialup ! 1028: terminals to ttyd? ! 1029: where ? is in [0-9a-zA-Z], as some programs use this property of the ! 1030: names to determine if a terminal is a dialup. ! 1031: Shell commands to do this should be put in the /dev/MAKEDEV.local ! 1032: script. ! 1033: .PP ! 1034: While it is possible to use truly arbitrary strings for terminal names, ! 1035: the accounting and noticeably the ! 1036: \fIps\fP\|(1) ! 1037: command make good use of the convention that tty names ! 1038: (by default, and also after dialups are named as suggested above) ! 1039: are distinct in the last 2 characters. ! 1040: Change this and you may be sorry later, as the heuristic ! 1041: \fIps\fP\|(1) ! 1042: uses based on these conventions will then break down and \fIps\fP will ! 1043: run MUCH slower. ! 1044: .NH 2 ! 1045: Adding users ! 1046: .PP ! 1047: The procedure for adding a new user is described in \fIadduser\fP(8). ! 1048: You should add accounts for the initial user community, giving ! 1049: each a directory and a password, and putting users who will wish ! 1050: to share software in the same groups. ! 1051: .PP ! 1052: Several guest accounts have been provided on the distribution ! 1053: system; these accounts are for people at Berkeley, ! 1054: Bell Laboratories, and others ! 1055: who have done major work on UNIX in the past. You can delete these accounts, ! 1056: or leave them on the system if you expect that these people would have ! 1057: occasion to login as guests on your system. ! 1058: .NH 2 ! 1059: Site tailoring ! 1060: .PP ! 1061: All programs that require the site's name, or some similar ! 1062: characteristic, obtain the information through system calls ! 1063: or from files located in /etc. Aside from parts of the ! 1064: system related to the network, to tailor the system to your ! 1065: site you must simply select a site name, then edit the file ! 1066: .DS ! 1067: /etc/netstart ! 1068: .DE ! 1069: The first lines in /etc/netstart use a variable to set the hostname, ! 1070: .DS ! 1071: hostname=\fImysitename\fP ! 1072: /bin/hostname $hostname ! 1073: .DE ! 1074: to define the value returned by the ! 1075: .IR gethostname (2) ! 1076: system call. If you are running the name server, your site ! 1077: name should be your fully qualified domain name. Programs such as ! 1078: .IR getty (8), ! 1079: .IR mail (1), ! 1080: .IR wall (1), ! 1081: and ! 1082: .IR uucp (1) ! 1083: use this system call so that the binary images are site ! 1084: independent. ! 1085: .NH 2 ! 1086: Setting up the line printer system ! 1087: .PP ! 1088: The line printer system consists of at least ! 1089: the following files and commands: ! 1090: .DS ! 1091: .TS ! 1092: l l. ! 1093: /usr/ucb/lpq spooling queue examination program ! 1094: /usr/ucb/lprm program to delete jobs from a queue ! 1095: /usr/ucb/lpr program to enter a job in a printer queue ! 1096: /etc/printcap printer configuration and capability data base ! 1097: /usr/lib/lpd line printer daemon, scans spooling queues ! 1098: /etc/lpc line printer control program ! 1099: /etc/hosts.lpd list of host allowed to use the printers ! 1100: .TE ! 1101: .DE ! 1102: .PP ! 1103: The file /etc/printcap is a master data base describing line ! 1104: printers directly attached to a machine and, also, printers ! 1105: accessible across a network. The manual page ! 1106: .IR printcap (5) ! 1107: describes the format of this data base and also ! 1108: shows the default values for such things as the directory ! 1109: in which spooling is performed. The line printer system handles ! 1110: multiple printers, multiple spooling queues, local and remote ! 1111: printers, and also printers attached via serial lines that require ! 1112: line initialization such as the baud rate. Raster output devices ! 1113: such as a Varian or Versatec, and laser printers such as an Imagen, ! 1114: are also supported by the line printer system. ! 1115: .PP ! 1116: Remote spooling via the network is handled with two spooling ! 1117: queues, one on the local machine and one on the remote machine. ! 1118: When a remote printer job is started with ! 1119: .IR lpr , ! 1120: the job is ! 1121: queued locally and a daemon process created to oversee the ! 1122: transfer of the job to the remote machine. If the destination ! 1123: machine is unreachable, the job will remain queued until it is ! 1124: possible to transfer the files to the spooling queue on the ! 1125: remote machine. The ! 1126: .I lpq ! 1127: program shows the contents of spool ! 1128: queues on both the local and remote machines. ! 1129: .PP ! 1130: To configure your line printers, consult the printcap manual page ! 1131: and the accompanying document, ``4.3BSD Line Printer Spooler Manual''. ! 1132: A call to the ! 1133: .I lpd ! 1134: program should be present in /etc/rc. ! 1135: .NH 2 ! 1136: Setting up the mail system ! 1137: .PP ! 1138: The mail system consists of the following commands: ! 1139: .DS ! 1140: .TS ! 1141: l l. ! 1142: /bin/mail old standard mail program, described in \fIbinmail\fP\|(1) ! 1143: /usr/ucb/mail UCB mail program, described in \fImail\fP\|(1) ! 1144: /usr/lib/sendmail mail routing program ! 1145: /usr/spool/mail mail spooling directory ! 1146: /usr/spool/secretmail secure mail directory ! 1147: /usr/bin/xsend secure mail sender ! 1148: /usr/bin/xget secure mail receiver ! 1149: /usr/lib/aliases mail forwarding information ! 1150: /usr/ucb/newaliases command to rebuild binary forwarding database ! 1151: /usr/ucb/biff mail notification enabler ! 1152: /etc/comsat mail notification daemon ! 1153: .TE ! 1154: .DE ! 1155: Mail is normally sent and received using the ! 1156: .IR mail (1) ! 1157: command (found in /usr/ucb/mail), ! 1158: which provides a front-end to edit the messages sent ! 1159: and received, and passes the messages to ! 1160: .IR sendmail (8) ! 1161: for routing. ! 1162: The routing algorithm uses knowledge of the network name syntax, ! 1163: aliasing and forwarding information, and network topology, as ! 1164: defined in the configuration file /usr/lib/sendmail.cf, to ! 1165: process each piece of mail. ! 1166: Local mail is delivered by giving it to the program /bin/mail ! 1167: that adds it to the mailboxes in the directory /usr/spool/mail/\fIusername\fP, ! 1168: using a locking protocol to avoid problems with simultaneous updates. ! 1169: After the mail is delivered, the local mail delivery daemon /etc/comsat ! 1170: is notified, which in turn notifies ! 1171: users who have issued a ``\fIbiff\fP y'' command that mail has arrived. ! 1172: .PP ! 1173: Mail queued in the directory /usr/spool/mail is normally readable ! 1174: only by the recipient. To send mail that is secure against perusal ! 1175: (except by a code-breaker) you should use the secret mail facility, ! 1176: which encrypts the mail. ! 1177: .PP ! 1178: To set up the mail facility you should read the instructions in the ! 1179: file READ_ME in the directory /usr/src/usr.lib/sendmail and then adjust ! 1180: the necessary configuration files. ! 1181: You should also set up the file /usr/lib/aliases for your installation, ! 1182: creating mail groups as appropriate. Documents describing ! 1183: .IR sendmail 's ! 1184: operation and installation are also included in the distribution. ! 1185: .NH 3 ! 1186: Setting up a UUCP connection ! 1187: .PP ! 1188: The version of \fIuucp\fP included in \*(4B is a greatly ! 1189: enhanced version of the one originally distributed with 32/V*. ! 1190: .FS ! 1191: * The \fIuucp\fP included in this distribution is the result ! 1192: of work by many people; we gratefully acknowledge their ! 1193: contributions, but refrain from mentioning names in the ! 1194: interest of keeping this document current. ! 1195: .FE ! 1196: The enhancements include: ! 1197: .IP \(bu 3 ! 1198: support for many auto call units and dialers ! 1199: in addition to the DEC DN11, ! 1200: .IP \(bu 3 ! 1201: breakup of the spooling area into multiple subdirectories, ! 1202: .IP \(bu 3 ! 1203: addition of an \fIL.cmds\fP file to control the set ! 1204: of commands that may be executed by a remote site, ! 1205: .IP \(bu 3 ! 1206: enhanced ``expect-send'' sequence capabilities when ! 1207: logging in to a remote site, ! 1208: .IP \(bu 3 ! 1209: new commands to be used in polling sites and ! 1210: obtaining snap shots of \fIuucp\fP activity, ! 1211: .IP \(bu 3 ! 1212: additional protocols for different communication media. ! 1213: .LP ! 1214: This section gives a brief overview of \fIuucp\fP ! 1215: and points out the most important steps in its installation. ! 1216: .PP ! 1217: To connect two UNIX machines with a \fIuucp\fP network link using modems, ! 1218: one site must have an automatic call unit ! 1219: and the other must have a dialup port. ! 1220: It is better if both sites have both. ! 1221: .PP ! 1222: You should first read the paper in the UNIX System Manager's Manual: ! 1223: ``Uucp Implementation Description''. ! 1224: It describes in detail the file formats and conventions, ! 1225: and will give you a little context. ! 1226: In addition, ! 1227: the document ``setup.tblms'', ! 1228: located in the directory /usr/src/usr.bin/uucp/UUAIDS, ! 1229: may be of use in tailoring the software to your needs. ! 1230: .PP ! 1231: The \fIuucp\fP support is located in three major directories: ! 1232: /usr/bin, ! 1233: /usr/lib/uucp, ! 1234: and /usr/spool/uucp. ! 1235: User commands are kept in /usr/bin, ! 1236: operational commands in /usr/lib/uucp, ! 1237: and /usr/spool/uucp is used as a spooling area. ! 1238: The commands in /usr/bin are: ! 1239: .DS ! 1240: .TS ! 1241: l l. ! 1242: /usr/bin/uucp file-copy command ! 1243: /usr/bin/uux remote execution command ! 1244: /usr/bin/uusend binary file transfer using mail ! 1245: /usr/bin/uuencode binary file encoder (for \fIuusend\fP) ! 1246: /usr/bin/uudecode binary file decoder (for \fIuusend\fP) ! 1247: /usr/bin/uulog scans session log files ! 1248: /usr/bin/uusnap gives a snap-shot of \fIuucp\fP activity ! 1249: /usr/bin/uupoll polls remote system until an answer is received ! 1250: /usr/bin/uuname prints a list of known uucp hosts ! 1251: /usr/bin/uuq gives information about the queue ! 1252: .TE ! 1253: .DE ! 1254: The important files and commands in /usr/lib/uucp are: ! 1255: .DS ! 1256: .TS ! 1257: l l. ! 1258: /usr/lib/uucp/L-devices list of dialers and hard-wired lines ! 1259: /usr/lib/uucp/L-dialcodes dialcode abbreviations ! 1260: /usr/lib/uucp/L.aliases hostname aliases ! 1261: /usr/lib/uucp/L.cmds commands remote sites may execute ! 1262: /usr/lib/uucp/L.sys systems to communicate with, how to connect, and when ! 1263: /usr/lib/uucp/SEQF sequence numbering control file ! 1264: /usr/lib/uucp/USERFILE remote site pathname access specifications ! 1265: /usr/lib/uucp/uucico \fIuucp\fP protocol daemon ! 1266: /usr/lib/uucp/uuclean cleans up garbage files in spool area ! 1267: /usr/lib/uucp/uuxqt \fIuucp\fP remote execution server ! 1268: .TE ! 1269: .DE ! 1270: while the spooling area contains the following important files and directories: ! 1271: .DS ! 1272: .TS ! 1273: l l. ! 1274: /usr/spool/uucp/C. directory for command, ``C.'' files ! 1275: /usr/spool/uucp/D. directory for data, ``D.'', files ! 1276: /usr/spool/uucp/X. directory for command execution, ``X.'', files ! 1277: /usr/spool/uucp/D.\fImachine\fP directory for local ``D.'' files ! 1278: /usr/spool/uucp/D.\fImachine\fPX directory for local ``X.'' files ! 1279: /usr/spool/uucp/TM. directory for temporary, ``TM.'', files ! 1280: /usr/spool/uucp/LOGFILE log file of \fIuucp\fP activity ! 1281: /usr/spool/uucp/SYSLOG log file of \fIuucp\fP file transfers ! 1282: .TE ! 1283: .DE ! 1284: .PP ! 1285: To install \fIuucp\fP on your system, ! 1286: start by selecting a site name ! 1287: (shorter than 14 characters). ! 1288: A \fIuucp\fP account must be created in the password file and a password set up. ! 1289: Then, ! 1290: create the appropriate spooling directories with mode 755 ! 1291: and owned by user \fIuucp\fP, group \fIdaemon\fP. ! 1292: .PP ! 1293: If you have an auto-call unit, ! 1294: the L.sys, L-dialcodes, and L-devices files should be created. ! 1295: The L.sys file should contain ! 1296: the phone numbers and login sequences ! 1297: required to establish a connection with a \fIuucp\fP daemon on another machine. ! 1298: For example, our L.sys file looks something like: ! 1299: .DS ! 1300: adiron Any ACU 1200 out0123456789- ogin-EOT-ogin uucp ! 1301: cbosg Never Slave 300 ! 1302: cbosgd Never Slave 300 ! 1303: chico Never Slave 1200 out2010123456 ! 1304: .DE ! 1305: The first field is the name of a site, ! 1306: the second shows when the machine may be called, ! 1307: the third field specifies how the host is connected ! 1308: (through an ACU, a hard-wired line, etc.), ! 1309: then comes the phone number to use in connecting through an auto-call unit, ! 1310: and finally a login sequence. ! 1311: The phone number ! 1312: may contain common abbreviations that are defined in the L-dialcodes file. ! 1313: The device specification should refer to devices ! 1314: specified in the L-devices file. ! 1315: Listing only ACU causes the \fIuucp\fP daemon, \fIuucico\fP, ! 1316: to search for any available auto-call unit in L-devices. ! 1317: Our L-dialcodes file is of the form: ! 1318: .DS ! 1319: ucb 2 ! 1320: out 9% ! 1321: .DE ! 1322: while our L-devices file is: ! 1323: .DS ! 1324: ACU cul0 unused 1200 ventel ! 1325: .DE ! 1326: Refer to the README file in the \fIuucp\fP source directory ! 1327: for more information about installation. ! 1328: .PP ! 1329: As \fIuucp\fP operates it creates (and removes) many small ! 1330: files in the directories underneath /usr/spool/uucp. ! 1331: Sometimes files are left undeleted; ! 1332: these are most easily purged with the \fIuuclean\fP program. ! 1333: The log files can grow without bound unless trimmed back; ! 1334: \fIuulog\fP maintains these files. ! 1335: Many useful aids in maintaining your \fIuucp\fP installation ! 1336: are included in a subdirectory UUAIDS beneath /usr/src/usr.bin/uucp. ! 1337: Peruse this directory and read the ``setup'' instructions also located there.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.