1 .\" Copyright (c) 1980, 1986, 1988 The Regents of the University of California.
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
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. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" @(#)4.t 8.1 (Berkeley) 7/29/93
30 .ds LH "Installing/Operating \*(4B
35 This section describes procedures used to set up a \*(4B 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 .Sh 2 "Kernel configuration"
41 This section briefly describes the layout of the kernel code and
42 how files for devices are made.
43 For a full discussion of configuring
44 and building system images, consult the document ``Building
45 4.3BSD UNIX Systems with Config'' (SMM:2).
46 .Sh 3 "Kernel organization"
48 As distributed, the kernel source is in a
49 separate tar image. The source may be physically
50 located anywhere within any filesystem so long as
51 a symbolic link to the location is created for the file
55 are normally symbolic links relative to
57 In further discussions of the system source all path names
58 will be given relative to
61 The kernel is made up of several large generic parts:
64 sys main kernel header files
65 kern kernel functions broken down as follows
66 init system startup, syscall dispatching, entry points
67 kern scheduling, descriptor handling and generic I/O
68 sys process management, signals
69 tty terminal handling and job control
70 vfs filesystem management
71 uipc interprocess communication (sockets)
72 subr miscellaneous support routines
73 vm virtual memory management
74 ufs local filesystems broken down as follows
75 ufs common local filesystem routines
77 lfs log-based filesystem
78 mfs memory based filesystem
79 nfs Sun-compatible network filesystem
80 miscfs miscellaneous filesystems broken down as follows
81 deadfs where rejected vnodes go to die
82 fdesc access to per-process file descriptors
83 fifofs IEEE Std1003.1 FIFOs
84 kernfs filesystem access to kernel data structures
85 lofs loopback filesystem
86 nullfs another loopback filesystem
87 portal associate processes with filesystem locations
88 specfs device special files
89 umapfs provide alternate uid/gid mappings
90 dev generic device drivers (SCSI, vnode, concatenated disk)
93 The networking code is organized by protocol
96 net routing and generic interface drivers
97 netinet Internet protocols (TCP, UDP, IP, etc)
98 netiso ISO protocols (TP-4, CLNP, CLTP, etc)
99 netns Xerox network systems protocols (IDP, SPP, etc)
100 netx25 CCITT X.25 protocols (X.25 Packet Level, HDLC/LAPB)
103 A separate subdirectory is provided for each machine architecture
106 hp300 HP 9000/300 series of Motorola 68000-based machines
107 hp code common to both HP 68k and (non-existent) PA-RISC ports
108 i386 Intel 386/486-based PC machines
109 luna68k Omron 68000-based workstations
110 news3400 Sony News MIPS-based workstations
111 pmax Digital 3100/5000 MIPS-based workstations
112 sparc Sun Microsystems SPARCstation 1, 1+, and 2
113 tahoe (deprecated) CCI Power 6-series machines
114 vax (deprecated) Digital VAX machines
117 Each machine directory is subdivided by function;
118 for example the hp300 directory contains
121 include exported machine-dependent header files
122 hp300 machine-dependent support code and private header files
124 conf configuration files
125 stand machine-dependent standalone code
128 Other kernel related directories
131 compile area to compile kernels
132 conf machine-independent configuration files
133 stand machine-independent standalone code
135 .Sh 3 "Devices and device drivers"
137 Devices supported by UNIX are implemented in the kernel
138 by drivers whose source is kept in
139 .Pn /sys/<architecture>/dev .
140 These drivers are loaded
141 into the system when included in a cpu specific configuration file
142 kept in the conf directory. Devices are accessed through special
143 files in the filesystem, made by the
145 program and normally kept in the
148 For all the devices supported by the distribution system, the
155 Determine the set of devices that you have and create a new
157 directory by running the MAKEDEV script.
158 First create a new directory
160 copy MAKEDEV into it, edit the file MAKEDEV.local
161 to provide an entry for local needs,
162 and run it to generate a
163 .Pn /newdev directory.
167 \fB#\fP \fImkdir newdev\fP
168 \fB#\fP \fIcp dev/MAKEDEV newdev/MAKEDEV\fP
169 \fB#\fP \fIcd newdev\fP
170 \fB#\fP \fIMAKEDEV \*(Dk0 pt0 std LOCAL\fP
172 Note the ``std'' argument causes standard devices such as
174 the machine console, to be created.
179 \fB#\fP \fImv dev olddev ; mv newdev dev\fP
182 to install the new device directory.
183 .Sh 3 "Building new system images"
185 The kernel configuration of each UNIX system is described by
186 a single configuration file, stored in the
187 .Pn /sys/<architecture>/conf
189 To learn about the format of this file and the procedure used
190 to build system images,
191 start by reading ``Building 4.3BSD UNIX Systems with Config'' (SMM:2),
192 look at the manual pages in section 4
193 of the UNIX manual for the devices you have,
194 and look at the sample configuration files in the
195 .Pn /sys/<architecture>/conf
198 The configured system image
200 should be copied to the root, and then booted to try it out.
201 It is best to name it
203 so as not to destroy the working system until you are sure it does work:
205 \fB#\fP \fIcp kernel /newkernel\fP
208 It is also a good idea to keep the previous system around under some other
209 name. In particular, we recommend that you save the generic distribution
210 version of the system permanently as
212 for use in emergencies.
213 To boot the new version of the system you should follow the
214 bootstrap procedures outlined in section 6.1.
215 After having booted and tested the new system, it should be installed as
217 before going into multiuser operation.
218 A systematic scheme for numbering and saving old versions
219 of the system may be useful.
220 .Sh 2 "Configuring terminals"
222 If UNIX is to support simultaneous
223 access from directly-connected terminals other than the console,
230 To add a new terminal device, be sure the device is configured into the system
231 and that the special files for the device have been made by
233 Then, enable the appropriate lines of
235 by setting the ``status''
236 field to \fBon\fP (or add new lines).
239 are one-for-one with entries in the file of current users
242 and therefore it is best to make changes
243 while running in single-user mode
244 and to add all the entries for a new device at once.
248 file is broken into four tab separated
249 fields (comments are shown by a `#' character and extend to
250 the end of the line). For each terminal line the four fields
252 the device (without a leading
256 should startup to service the line
257 (or \fBnone\fP if the line is to be left alone),
258 the terminal type (found in
259 .Pn /usr/share/misc/termcap ),
260 and optional status information describing if the terminal is
261 enabled or not and if it is ``secure'' (i.e. the super user should
262 be allowed to login on the line).
263 If the console is marked as ``insecure'',
264 then the root password is required to bring the machine up single-user.
265 All fields are character strings
266 with entries requiring embedded white space enclosed in double
268 Thus a newly added terminal
272 tty00 "/usr/libexec/getty std.9600" vt100 on secure # mike's office
274 The std.9600 parameter provided to
275 .Pn /usr/libexec/getty
276 is used in searching the file
278 it specifies a terminal's characteristics (such as baud rate).
279 To make custom terminal types, consult
284 Dialup terminals should be wired so that carrier is asserted only when the
285 phone line is dialed up.
286 For non-dialup terminals, from which modem control is not available,
287 you must wire back the signals so that
288 the carrier appears to always be present. For further details,
289 find your terminal driver in section 4 of the manual.
291 For network terminals (i.e. pseudo terminals), no program should
292 be started up on the lines. Thus, the normal entry in
298 (Note, the fourth field is not needed here.)
300 When the system is running multi-user, all terminals that are listed in
302 as \fBon\fP have their line enabled.
303 If, during normal operations, you wish
304 to disable a terminal line, you can edit the file
306 to change the terminal's status to \fBoff\fP and
307 then send a hangup signal to the
311 \fB#\fP \fIkill \-1 1\fP
313 Terminals can similarly be enabled by changing the status field
314 from \fBoff\fP to \fBon\fP and sending a hangup signal to
317 Note that if a special file is inaccessible when
319 tries to create a process for it,
321 will log a message to the
322 system error logging process (see
324 and try to reopen the terminal every minute, reprinting the warning
325 message every 10 minutes. Messages of this sort are normally
326 printed on the console, though other actions may occur depending
327 on the configuration information found in
328 .Pn /etc/syslog.conf .
330 Finally note that you should change the names of any dialup
332 where ? is in [0-9a-zA-Z], as some programs use this property of the
333 names to determine if a terminal is a dialup.
334 Shell commands to do this should be put in the
335 .Pn /dev/MAKEDEV.local
338 While it is possible to use truly arbitrary strings for terminal names,
339 the accounting and noticeably the
341 command make good use of the convention that tty names
342 (by default, and also after dialups are named as suggested above)
343 are distinct in the last 2 characters.
344 Change this and you may be sorry later, as the heuristic
346 uses based on these conventions will then break down and
348 will run MUCH slower.
351 The procedure for adding a new user is described in
353 You should add accounts for the initial user community, giving
354 each a directory and a password, and putting users who will wish
355 to share software in the same groups.
357 Several guest accounts have been provided on the distribution
358 system; these accounts are for people at Berkeley,
359 Bell Laboratories, and others
360 who have done major work on UNIX in the past. You can delete these accounts,
361 or leave them on the system if you expect that these people would have
362 occasion to login as guests on your system.
363 .Sh 2 "Site tailoring"
365 All programs that require the site's name, or some similar
366 characteristic, obtain the information through system calls
367 or from files located in
369 Aside from parts of the
370 system related to the network, to tailor the system to your
371 site you must simply select a site name, then edit the file
377 use a variable to set the hostname,
379 hostname=\fImysitename\fP
380 /bin/hostname $hostname
382 to define the value returned by the
384 system call. If you are running the name server, your site
385 name should be your fully qualified domain name. Programs such as
391 use this system call so that the binary images are site
394 You will also need to edit
396 to do the network interface initialization using
398 If you are not sure how to do this, see sections 5.1, 5.2, and 5.3.
399 If you are not running a routing daemon and have
400 more than one Ethernet in your environment
401 you will need to set up a default route;
402 see section 5.4 for details.
403 Before bringing your system up multiuser,
404 you should ensure that the networking is properly configured.
405 The network is started by running
407 Once started, you should test connectivity using
409 You should first test connectivity to yourself,
410 then another host on your Ethernet,
411 and finally a host on another Ethernet.
414 program can be used to inspect and debug
415 your routes; see section 5.4.
416 .Sh 2 "Setting up the line printer system"
418 The line printer system consists of at least
419 the following files and commands:
423 /usr/bin/lpq spooling queue examination program
424 /usr/bin/lprm program to delete jobs from a queue
425 /usr/bin/lpr program to enter a job in a printer queue
426 /etc/printcap printer configuration and capability database
427 /usr/sbin/lpd line printer daemon, scans spooling queues
428 /usr/sbin/lpc line printer control program
429 /etc/hosts.lpd list of host allowed to use the printers
435 is a master database describing line
436 printers directly attached to a machine and, also, printers
437 accessible across a network. The manual page
439 describes the format of this database and also
440 shows the default values for such things as the directory
441 in which spooling is performed. The line printer system handles
442 multiple printers, multiple spooling queues, local and remote
443 printers, and also printers attached via serial lines that require
444 line initialization such as the baud rate. Raster output devices
445 such as a Varian or Versatec, and laser printers such as an Imagen,
446 are also supported by the line printer system.
448 Remote spooling via the network is handled with two spooling
449 queues, one on the local machine and one on the remote machine.
450 When a remote printer job is started with
452 the job is queued locally and a daemon process created to oversee the
453 transfer of the job to the remote machine. If the destination
454 machine is unreachable, the job will remain queued until it is
455 possible to transfer the files to the spooling queue on the
458 program shows the contents of spool
459 queues on both the local and remote machines.
461 To configure your line printers, consult the printcap manual page
462 and the accompanying document, ``4.3BSD Line Printer Spooler Manual'' (SMM:7).
465 program should be present in
467 .Sh 2 "Setting up the mail system"
469 The mail system consists of the following commands:
473 /usr/bin/mail UCB mail program, described in \fImail\fP\|(1)
474 /usr/sbin/sendmail mail routing program
475 /var/spool/mail mail spooling directory
476 /var/spool/secretmail secure mail directory
477 /usr/bin/xsend secure mail sender
478 /usr/bin/xget secure mail receiver
479 /etc/aliases mail forwarding information
480 /usr/bin/newaliases command to rebuild binary forwarding database
481 /usr/bin/biff mail notification enabler
482 /usr/libexec/comsat mail notification daemon
485 Mail is normally sent and received using the
489 which provides a front-end to edit the messages sent
490 and received, and passes the messages to
493 The routing algorithm uses knowledge of the network name syntax,
494 aliasing and forwarding information, and network topology, as
495 defined in the configuration file
496 .Pn /usr/lib/sendmail.cf ,
497 to process each piece of mail.
498 Local mail is delivered by giving it to the program
499 .Pn /usr/libexec/mail.local
500 that adds it to the mailboxes in the directory
501 .Pn /var/spool/mail/<username> ,
502 using a locking protocol to avoid problems with simultaneous updates.
503 After the mail is delivered, the local mail delivery daemon
504 .Pn /usr/libexec/comsat
505 is notified, which in turn notifies users who have issued a
506 ``\fIbiff\fP y'' command that mail has arrived.
508 Mail queued in the directory
510 is normally readable only by the recipient.
511 To send mail that is secure against perusal
512 (except by a code-breaker) you should use the secret mail facility,
513 which encrypts the mail.
515 To set up the mail facility you should read the instructions in the
516 file READ_ME in the directory
517 .Pn /usr/src/usr.sbin/sendmail
518 and then adjust the necessary configuration files.
519 You should also set up the file
521 for your installation, creating mail groups as appropriate.
522 For more informations see
523 ``Sendmail Installation and Operation Guide'' (SMM:8) and
524 ``Sendmail \- An Internetwork Mail Router'' (SMM:9).
525 .Sh 3 "Setting up a UUCP connection"
529 included in \*(4B has the following features:
531 support for many auto call units and dialers
532 in addition to the DEC DN11,
534 breakup of the spooling area into multiple subdirectories,
538 file to control the set
539 of commands that may be executed by a remote site,
541 enhanced ``expect-send'' sequence capabilities when
542 logging in to a remote site,
544 new commands to be used in polling sites and
545 obtaining snap shots of
549 additional protocols for different communication media.
551 This section gives a brief overview of
553 and points out the most important steps in its installation.
555 To connect two UNIX machines with a
557 network link using modems,
558 one site must have an automatic call unit
559 and the other must have a dialup port.
560 It is better if both sites have both.
562 You should first read the paper in the UNIX System Manager's Manual:
563 ``Uucp Implementation Description'' (SMM:14).
564 It describes in detail the file formats and conventions,
565 and will give you a little context.
567 the document ``setup.tblms'',
568 located in the directory
569 .Pn /usr/src/usr.bin/uucp/UUAIDS ,
570 may be of use in tailoring the software to your needs.
574 support is located in three major directories:
578 .Pn /var/spool/uucp .
579 User commands are kept in
581 operational commands in
585 is used as a spooling area.
592 /usr/bin/uucp file-copy command
593 /usr/bin/uux remote execution command
594 /usr/bin/uusend binary file transfer using mail
595 /usr/bin/uuencode binary file encoder (for \fIuusend\fP)
596 /usr/bin/uudecode binary file decoder (for \fIuusend\fP)
597 /usr/bin/uulog scans session log files
598 /usr/bin/uusnap gives a snap-shot of \fIuucp\fP activity
599 /usr/bin/uupoll polls remote system until an answer is received
600 /usr/bin/uuname prints a list of known uucp hosts
601 /usr/bin/uuq gives information about the queue
604 The important files and commands in
610 /usr/lib/uucp/L-devices list of dialers and hard-wired lines
611 /usr/lib/uucp/L-dialcodes dialcode abbreviations
612 /usr/lib/uucp/L.aliases hostname aliases
613 /usr/lib/uucp/L.cmds commands remote sites may execute
614 /usr/lib/uucp/L.sys systems to communicate with, how to connect, and when
615 /usr/lib/uucp/SEQF sequence numbering control file
616 /usr/lib/uucp/USERFILE remote site pathname access specifications
617 /usr/lib/uucp/uucico \fIuucp\fP protocol daemon
618 /usr/lib/uucp/uuclean cleans up garbage files in spool area
619 /usr/lib/uucp/uuxqt \fIuucp\fP remote execution server
622 while the spooling area contains the following important files and directories:
626 /var/spool/uucp/C. directory for command, ``C.'' files
627 /var/spool/uucp/D. directory for data, ``D.'', files
628 /var/spool/uucp/X. directory for command execution, ``X.'', files
629 /var/spool/uucp/D.\fImachine\fP directory for local ``D.'' files
630 /var/spool/uucp/D.\fImachine\fPX directory for local ``X.'' files
631 /var/spool/uucp/TM. directory for temporary, ``TM.'', files
632 /var/spool/uucp/LOGFILE log file of \fIuucp\fP activity
633 /var/spool/uucp/SYSLOG log file of \fIuucp\fP file transfers
640 start by selecting a site name
641 (shorter than 14 characters).
644 account must be created in the password file and a password set up.
646 create the appropriate spooling directories with mode 755
651 If you have an auto-call unit,
652 the L.sys, L-dialcodes, and L-devices files should be created.
653 The L.sys file should contain
654 the phone numbers and login sequences
655 required to establish a connection with a
657 daemon on another machine.
658 For example, our L.sys file looks something like:
660 adiron Any ACU 1200 out0123456789- ogin-EOT-ogin uucp
661 cbosg Never Slave 300
662 cbosgd Never Slave 300
663 chico Never Slave 1200 out2010123456
665 The first field is the name of a site,
666 the second shows when the machine may be called,
667 the third field specifies how the host is connected
668 (through an ACU, a hard-wired line, etc.),
669 then comes the phone number to use in connecting through an auto-call unit,
670 and finally a login sequence.
672 may contain common abbreviations that are defined in the L-dialcodes file.
673 The device specification should refer to devices
674 specified in the L-devices file.
675 Listing only ACU causes the
679 to search for any available auto-call unit in L-devices.
680 Our L-dialcodes file is of the form:
685 while our L-devices file is:
687 ACU cul0 unused 1200 ventel
689 Refer to the README file in the
691 source directory for more information about installation.
695 operates it creates (and removes) many small
696 files in the directories underneath
697 .Pn /var/spool/uucp .
698 Sometimes files are left undeleted;
699 these are most easily purged with the
702 The log files can grow without bound unless trimmed back;
704 maintains these files.
705 Many useful aids in maintaining your
707 installation are included in a subdirectory UUAIDS beneath
708 .Pn /usr/src/usr.bin/uucp .
709 Peruse this directory and read the ``setup'' instructions also located there.