Annotation of 43BSDReno/share/doc/smm/01.setup/common/3.t, revision 1.1.1.1

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: .\"    @(#)3.t 6.7 (Berkeley) 3/7/89
                     17: .\"
                     18: .ds lq ``
                     19: .ds rq ''
                     20: .ds RH "Upgrading a 4.2BSD or \*(Ps System
                     21: .ds CF \*(DY
                     22: .LP
                     23: .nr H1 3
                     24: .nr H2 0
                     25: .bp
                     26: .LG
                     27: .B
                     28: .ce
                     29: 3. UPGRADING A 4.2BSD OR \*(Ps SYSTEM
                     30: .sp 2
                     31: .R
                     32: .NL
                     33: .PP
                     34: This section describes the procedure for upgrading a 4.2 or \*(Ps
                     35: system to \*(4B.  This procedure may vary according to the version of
                     36: the system running before conversion.
                     37: If you are upgrading from 4.2BSD,
                     38: begin by reading the ``Bugs Fixes and Changes in \*(4B'' document to
                     39: see what has changed since the last time you bootstrapped the system.
                     40: If you have local system modifications to the
                     41: kernel to install, look at the document
                     42: ``Changes to the Kernel in \*(4B'' to get an idea of how
                     43: the system changes will affect your local modifications.
                     44: .if \n(Th \{\
                     45: If you are converting from a
                     46: System V system, some of this section will still apply (in particular,
                     47: the filesystem conversion).  However, many of the system configuration
                     48: files are different, and the executable file formats are completely
                     49: incompatible.
                     50: .\}
                     51: .PP
                     52: If you are running 4.2BSD or \*(Ps, upgrading your system
                     53: involves replacing your kernel and system utilities.
                     54: Binaries compiled under \*(Ps will work without recompilation
                     55: under \*(4B, though they may run faster if they are recompiled.
                     56: .if \n(Th \{\
                     57: When converting from 4.2BSD, most local programs will have to be recompiled,
                     58: as there are a number of incompatibilities between 4.3BSD
                     59: and the vendor-supplied 4.2BSD.
                     60: .\}
                     61: .if \n(Vx \{\
                     62: Binaries compiled under 4.2BSD will probably work without recompilation,
                     63: but it is a good idea to recompile and relink because of the many changes
                     64: in header files and libraries since 4.2BSD.
                     65: 4.1BSD binary images can also run unchanged under \*(4B
                     66: but only when the system is configured to include the
                     67: ``4.1BSD compatibility mode.''*
                     68: .FS
                     69: * With ``4.1BSD compatibility mode''
                     70: system calls from 4.1BSD are either emulated or safely ignored.
                     71: There are only two exceptions: programs that read directories or use
                     72: the old jobs library will not operate properly.  However, while 4.1BSD
                     73: binaries will execute under \*(4B
                     74: it is \fBSTRONGLY RECOMMENDED\fP that the programs be recompiled under
                     75: the new system.
                     76: .FE
                     77: .\}
                     78: .PP
                     79: The easiest upgrade path from 4.2BSD or \*(Ps
                     80: (depending on your file system configuration)
                     81: is to build
                     82: new root and \fI/usr\fP file systems on unused partitions,
                     83: then copy or merge site specific files
                     84: into their corresponding files on the new system.
                     85: All user file systems can be retained unmodified,
                     86: except that the new \fIfsck\fP should be run
                     87: before they are mounted (see below).
                     88: .PP
                     89: Section 3.1 lists the files to be saved as part of the conversion process.
                     90: Section 3.2 describes the bootstrap process.
                     91: Section 3.3 discusses the merger of the saved files back into the new system.
                     92: Section 3.4 provides general hints on possible problems to be
                     93: aware of when converting from 4.2BSD to \*(4B.
                     94: .NH 2
                     95: Files to save
                     96: .PP
                     97: The following list enumerates the standard set of files you will want to
                     98: save and suggests directories in which site-specific files should be present.
                     99: This list will likely be augmented with non-standard files you
                    100: have added to your system.
                    101: If you do not have enough space to create parallel
                    102: file systems, you should create a \fItar\fP image of the
                    103: following files before the new file systems are created.
                    104: In addition, it is
                    105: \fBSTRONGLY\fP advised that you do a full dump before rebuilding the file
                    106: system to guard against missing something the first time around.
                    107: .DS
                    108: .TS
                    109: l c l.
                    110: /.cshrc        \(dg    root csh startup script
                    111: /.login        \(dg    root csh login script
                    112: /.profile      \(dg    root sh startup script
                    113: /.rhosts       \(dg    for trusted machines and users
                    114: /dev/MAKEDEV   \(dd    in case you added anything here
                    115: /dev/MAKEDEV.local     *       for making local devices
                    116: /etc/disktab   \(dd    in case you changed disk partition sizes
                    117: /etc/fstab     \(dg    disk configuration data
                    118: /etc/ftpusers  \(dg    for local additions
                    119: /etc/gateways  \(dg    routing daemon database
                    120: /etc/gettytab  \(dd    getty database
                    121: /etc/group     *       group data base
                    122: /etc/hosts     \(dg    for local host information
                    123: /etc/hosts.equiv       \(dg    for local host equivalence information
                    124: /etc/networks  \(dg    for local network information
                    125: /etc/passwd    *       user data base
                    126: /etc/printcap  \(dg    line printer database
                    127: /etc/protocols \(dd    in case you added any local protocols
                    128: /etc/rc        *       for any local additions
                    129: /etc/rc.local  *       site specific system startup commands
                    130: /etc/remote    \(dg    auto-dialer configuration
                    131: /etc/services  \(dd    for local additions
                    132: /etc/syslog.conf       *       system logger configuration
                    133: /etc/securettys        *       for restricted list of ttys where root can log in
                    134: /etc/ttys      *       terminal line configuration data
                    135: /etc/ttytype   *       terminal line to terminal type mapping data
                    136: /etc/termcap   \(dd    for any local entries that may have been added
                    137: /lib   \(dd    for any locally developed language processors
                    138: /usr/dict/*    \(dd    for local additions to words and papers
                    139: /usr/hosts/MAKEHOSTS   *       for local changes
                    140: /usr/include/* \(dd    for local additions
                    141: /usr/lib/aliases       \(dd    mail forwarding data base
                    142: /usr/lib/crontab       *       cron daemon data base
                    143: /usr/lib/font/*        \(dd    for locally developed font libraries
                    144: /usr/lib/lib*.a        \(dg    for locally libraries
                    145: /usr/lib/lint/*        \(dd    for locally developed lint libraries
                    146: /usr/lib/sendmail.cf   *       sendmail configuration
                    147: /usr/lib/tabset/*      \(dd    for locally developed tab setting files
                    148: /usr/lib/term/*        \(dd    for locally developed nroff drive tables
                    149: /usr/lib/tmac/*        \(dd    for locally developed troff/nroff macros
                    150: /usr/lib/uucp/*        \(dg    for local uucp configuration files
                    151: /usr/man/manl  *       for manual pages for locally developed programs
                    152: /usr/msgs      \(dg    for current msgs
                    153: /usr/spool/*   \(dg    for current mail, news, uucp files, etc.
                    154: /usr/src/local \(dg    for source for locally developed programs
                    155: /sys/conf/HOST \(dg    configuration file for your machine
                    156: /sys/conf/files.HOST   \(dg    list of special files in your kernel
                    157: /*/quotas      \(dg    file system quota files
                    158: .TE
                    159: .sp
                    160: \(dg\|Files that can be used from 4.2BSD or \*(Ps without change.
                    161: \(dd\|Files that need local modifications merged into \*(4B files.
                    162: *\|Files that require special work to merge and are discussed
                    163: in section 3.3.
                    164: .DE
                    165: .NH 2
                    166: Installing \*(4B
                    167: .PP
                    168: .if \n(Vx \{\
                    169: \fBNote\fP: The \*(4B release contains only Tahoe filesystems and executable
                    170: images.
                    171: In order to bring up \*(4B on a VAX, it is necessary to extract the sources
                    172: on a VAX, compile and install.
                    173: Most of the files listed above are found in /usr/src/sys/vaxdist
                    174: as well as in their standard locations on the distribution tape
                    175: so that the root and /usr images need not be extracted from the tape.
                    176: The following sections describe the procedure for installing \*(4B
                    177: on the Tahoe.
                    178: For a VAX system, the starting root and /usr filesystems can be created
                    179: by building and installing executables using alternate filesystems.
                    180: .\}
                    181: The next step is to build a working \*(4B system.
                    182: This can be done by following the steps in section 2 of
                    183: this document for extracting the root and /usr file systems
                    184: from the distribution tape onto unused disk partitions.
                    185: If you have a running 4.2BSD or \*(Ps system,
                    186: you can also do this by using
                    187: .IR dd (1)
                    188: to copy the \*(lqmini root\*(rq filesystem onto one disk partition,
                    189: then use it to load the \*(4B root filesystem as in chapter 2.
                    190: The root filesystem dump on the tape could also be extracted directly,
                    191: although this will require an additional file system check after booting \*(4B
                    192: to convert the new root filesystem.
                    193: The exact procedure chosen will depend on the disk configuration
                    194: and the number of suitable disk partitions that may be used.
                    195: If there is insufficient space to load the new root and \fI/usr\fP
                    196: filesystems before reusing the existing partitions,
                    197: it is \fBSTRONGLY\fP advised that you make full dumps of each filesystem
                    198: on magtape before beginning.
                    199: It is also desirable to run file system checks
                    200: of all filesystems to be converted to \*(4B before shutting down.
                    201: If you are running a system older than 4.2BSD, you will have to
                    202: dump and restore your file systems; see section 2.1 for some hints.
                    203: In either case, this is an excellent time to review your disk configuration
                    204: for possible tuning of the layout.
                    205: Section 4.2 and \fIconfig\fP(8) are required reading.
                    206: .PP
                    207: To ease the transition to new kernels,
                    208: the 4.3BSD and \*(4B
                    209: bootstrap routines pass the identity of the boot device
                    210: through to the kernel.
                    211: The kernel then uses that device as its root file system.
                    212: Thus, for example, if you boot from \fI/dev/\*(Dk1a\fP,
                    213: the kernel will use \*(Dk1a as its root file system.
                    214: If \fI/dev/\*(Dk1b\fP is configured as a swap partition, 
                    215: it will be used as the initial swap area,
                    216: otherwise the normal primary swap area (\fI/dev/\*(Dk0b\fP) will be used.
                    217: The \*(4B bootstrap is backward compatible with 4.2BSD and \*(Ps,
                    218: so you can replace your old bootstrap if you use it
                    219: to boot your first \*(4B kernel.
                    220: .PP
                    221: Once you have extracted the \*(4B system and booted from it,
                    222: you will have to build a kernel customized for your configuration.
                    223: If you have any local device drivers,
                    224: they will have to be incorporated into the new kernel.
                    225: See section 4.1.3 and ``Building 4.3BSD UNIX Systems with Config.''
                    226: .PP
                    227: If converting from 4.2BSD, \*(Ps, or the CCI 1.21 release, your old
                    228: file systems must be converted.
                    229: .if \n(Vx \{\
                    230: The standard disk partitions in \*(4B are the same as those
                    231: in 4.2BSD and \*(Ps,
                    232: except for those on the DEC UDA50; see section 4.3.2 for details.
                    233: .\}
                    234: If you've modified the partition
                    235: sizes from the original BSD or CCI ones, and are not already using the
                    236: \*(4B disk labels, you will have to modify the default disk partion
                    237: tables in the kernel.  Make the necessary table changes and boot
                    238: your custom kernel \fBBEFORE\fP trying to access any of your old
                    239: file systems!  After doing this, if necessary, the remaining filesystems
                    240: may be converted in place by running the \*(4B version of
                    241: .IR fsck (8)
                    242: on each filesystem and allowing it to make the necessary corrections.
                    243: The new version of \fIfsck\fP is more
                    244: strict about the size of directories than the version supplied with 4.2BSD.
                    245: Thus the first time that it is run on a 4.2BSD file system,
                    246: it will produce messages of the form:
                    247: .DS
                    248: .if \n(Vx \{\
                    249: \fBDIRECTORY ...: LENGTH\fP xx \fBNOT MULTIPLE OF 512 (ADJUSTED)\fP
                    250: .\}
                    251: .if \n(Th \{\
                    252: \fBDIRECTORY ...: LENGTH\fP xx \fBNOT MULTIPLE OF 1024 (ADJUSTED)\fP
                    253: .\}
                    254: .DE
                    255: Length ``xx'' will be the size of the directory;
                    256: it will be expanded to the next multiple of
                    257: .if \n(Vx \{\
                    258: 512
                    259: .\}
                    260: .if \n(Th \{\
                    261: 1024
                    262: .\}
                    263: bytes.
                    264: The new \fIfsck\fP will also set default \fIinterleave\fP and
                    265: \fInpsect\fP (number of physical sectors per track) values on older
                    266: file systems, in which these fields were unused spares; this correction
                    267: will produce messages of the form:
                    268: .DS
                    269: \fBIMPOSSIBLE INTERLEAVE=0 IN SUPERBLOCK (SET TO DEFAULT)\fP*
                    270: \fBIMPOSSIBLE NPSECT=0 IN SUPERBLOCK (SET TO DEFAULT)\fP
                    271: .DE
                    272: .FS
                    273: * The defaults are to set \fIinterleave\fP to 1 and
                    274: \fInpsect\fP to \fInsect\fP;
                    275: .if \n(Vx \{\
                    276: this is correct on many drives.
                    277: Notable exceptions are the RM80 and RA81,
                    278: where npsect should be set to
                    279: one more than nsect.
                    280: This affects only performance (and in the case
                    281: of the RA81, at least, virtually unmeasurably).
                    282: .\}
                    283: .if \n(Th \{\
                    284: this is correct on all drives supported on the CCI.
                    285: .\}
                    286: .FE
                    287: File systems that have had their interleave and npsect values
                    288: set will be diagnosed by the old \fIfsck\fP as having a bad superblock;
                    289: the old \fIfsck\fP will run only if given an alternate superblock
                    290: .if \n(Vx \{\
                    291: (\fIfsck \-b32\fP),
                    292: .\}
                    293: .if \n(Th \{\
                    294: (\fIfsck \-b16\fP),
                    295: .\}
                    296: in which case it will re-zero these fields.
                    297: The \*(4B kernel will internally set these fields to their defaults
                    298: if fsck has not done so; again, the
                    299: .if \n(Vx \{\
                    300: \fI\-b32\fP
                    301: .\}
                    302: .if \n(Th \{\
                    303: \fI\-b16\fP
                    304: .\}
                    305: option may be
                    306: necessary for running the old \fIfsck\fP.
                    307: .PP
                    308: In addition, \*(4B removes several limits on file system sizes
                    309: that were present in both 4.2BSD and 4.3BSD.
                    310: The limited file systems
                    311: continue to work in \*(4B, but should be converted
                    312: as soon as it is convenient
                    313: by running \fIfsck\fP with the \fI\-c\fP option.
                    314: If no file systems have been so converted,
                    315: the sequence \fIfsck \-p \-c\fP will update all of them,
                    316: fix the interleave and npsect fields,
                    317: and fix any incorrect directory lengths
                    318: all at once.
                    319: The new unlimited file system formats are treated as read-only
                    320: by older systems.
                    321: A second \fIfsck \-c\fP, however, will
                    322: reconvert the new format to the old if none of the static limits
                    323: of the old file system format have been exceeded.
                    324: The new file systems are otherwise
                    325: compatible between 4.2BSD, \*(Ps, and \*(4B,
                    326: though running a \*(4B file system under older systems
                    327: may cause more of the above
                    328: messages to be generated the next time it is \fIfsck\fP'ed on \*(4B.
                    329: .NH 2
                    330: .if \n(Th \{\
                    331: Merging your files from 4.2BSD into \*(4B
                    332: .\}
                    333: .if \n(Vx \{\
                    334: Merging your files from 4.2 or 4.3BSD into \*(4B
                    335: .\}
                    336: .PP
                    337: When your system is booting reliably and you have the \*(4B
                    338: root and /usr file systems fully installed you will be ready
                    339: to continue with the next step in the conversion process,
                    340: merging your old files into the new system.
                    341: .PP
                    342: If you saved the files on a \fItar\fP tape, extract them
                    343: into a scratch directory, say /usr/convert:
                    344: .DS
                    345: \fB#\fP \fImkdir /usr/convert\fP
                    346: \fB#\fP \fIcd /usr/convert\fP
                    347: \fB#\fP \fItar xp\fP
                    348: .DE
                    349: .PP
                    350: The data files marked in the previous table with a dagger (\(dg)
                    351: may be used without change from the previous system.
                    352: Those data files marked with a double dagger (\(dd) have syntax 
                    353: changes or substantial enhancements.
                    354: You should start with the \*(4B version and carefully
                    355: integrate any local changes into the new file.
                    356: Usually these local modifications can be incorporated
                    357: without conflict into the new file;
                    358: some exceptions are noted below.
                    359: The files marked with an asterisk (*) require
                    360: particular attention and are discussed below.
                    361: .PP
                    362: If you have any homegrown device drivers in /dev/MAKEDEV.local
                    363: that use major device numbers reserved by the system you
                    364: will have to modify the commands used to create the devices or alter
                    365: the system device configuration tables in /sys/\*(mC/conf.c.
                    366: Otherwise /dev/MAKEDEV.local can be used without change
                    367: from 4.2 or \*(Ps.
                    368: .PP
                    369: System security changes require adding several new ``well-known'' groups 
                    370: to /etc/group.
                    371: The groups that are needed by the system as distributed are:
                    372: .DS
                    373: .TS
                    374: l c.
                    375: name   number
                    376: _
                    377: wheel  0
                    378: daemon 1
                    379: kmem   2
                    380: sys    3
                    381: tty    4
                    382: operator       5
                    383: bin    10
                    384: .TE
                    385: .DE
                    386: Only users in the ``wheel'' group are permitted to \fIsu\fP to ``root''.
                    387: Most programs that manage directories in /usr/spool
                    388: now run set-group-id to ``daemon'' so that users cannot
                    389: directly access the files in the spool directories.
                    390: The special files that access kernel memory, /dev/kmem
                    391: and /dev/mem, are made readable only by group ``kmem''.
                    392: Standard system programs that require this access are
                    393: made set-group-id to that group.
                    394: The group ``sys'' is intended to control access to kernel sources,
                    395: and other sources belong to group ``bin.''
                    396: Rather than make user's terminals writable by all users,
                    397: they are now placed in group ``tty'' and made only group writable.
                    398: Programs that should legitimately have access to write on user's terminals
                    399: such as \fItalkd\fP and \fIwrite\fP now run set-group-id to ``tty''.
                    400: The ``operator'' group controls access to disks.
                    401: By default, disks are readable by group ``operator'',
                    402: so that programs such as \fIdf\fP can access the file system
                    403: information without being set-user-id to ``root''.
                    404: The
                    405: .IR shutdown (8)
                    406: program is executable only by group operator
                    407: and is setuid to root so that members of group operator may shut down
                    408: the system without root access.
                    409: .PP
                    410: Several new users have also been added to the group of ``well-known'' users 
                    411: in /etc/passwd.
                    412: The current list is:
                    413: .DS
                    414: .TS
                    415: l c.
                    416: name   number
                    417: _
                    418: root   0
                    419: daemon 1
                    420: operator       2
                    421: games  7
                    422: uucp   66
                    423: nobody 32767
                    424: .TE
                    425: .DE
                    426: The ``daemon'' user is used for daemon processes that
                    427: do not need root privileges.
                    428: The ``operator'' user-id is used as an account for dumpers
                    429: so that they can log in without having the root password.
                    430: By placing them in the ``operator'' group, 
                    431: they can get read access to the disks.
                    432: The ``uucp'' login has existed long before \*(4B,
                    433: and is noted here just to provide a common user-id.
                    434: The password entry ``nobody'' has been added to specify
                    435: the user with least privilege.  The ``games'' user is a pseudo-user
                    436: that controls access to game programs.
                    437: .PP
                    438: After installing your updated password file,
                    439: you must run \fImkpasswd\fP\|(8) to create the \fIndbm\fP
                    440: password database.
                    441: Note that \fImkpasswd\fP is run whenever \fIvipw\fP\|(8) is run.
                    442: .PP
                    443: The format of the cron table, /usr/lib/crontab, has been changed
                    444: to specify the user-id that should be used to run a process.
                    445: The userid ``nobody'' is frequently useful for non-privileged programs.
                    446: .PP
                    447: Some of the commands previously in /etc/rc.local have been 
                    448: moved to /etc/rc;
                    449: several new functions are now handled by /etc/rc, /etc/netstart
                    450: and /etc/rc.local.
                    451: You should look closely at the prototype version of these files
                    452: and read the manual pages for the commands contained in it
                    453: before trying to merge your local copy.
                    454: Note in particular that \fIifconfig\fP has had many changes,
                    455: and that host names are now fully specified as domain-style names
                    456: (e.g, monet.Berkeley.EDU) for the benefit of the name server.
                    457: .PP
                    458: The C library and system binaries on the distribution tape
                    459: are compiled with new versions of
                    460: \fIgethostbyname\fP and \fIgethostbyaddr\fP which use
                    461: the name server,
                    462: .IR named (8).
                    463: If you have only a small network and are not connected
                    464: to a large network, you can use the distributed library routines without
                    465: any problems; they use a linear scan of the host table \fI/etc/hosts\fP
                    466: if the name server is not running.
                    467: If you are on the DARPA Internet or have a large local network,
                    468: it is recommend that you set up
                    469: and use the name server.
                    470: For instructions on how to set up the necessary configuration files,
                    471: refer to ``Name Server Operations Guide for BIND''.
                    472: Several programs rely on the host name returned by \fIgethostname\fP
                    473: to determine the local domain name.
                    474: .PP
                    475: If you want to compile your system to use the
                    476: host table lookup routines instead of the name server, you will
                    477: need to modify /usr/src/lib/libc/Makefile according to the instructions there
                    478: and then recompile all of the system and local programs (see section 6.6).
                    479: Next, you must run \fImkhosts\fP\|(8) to create the \fIndbm\fP
                    480: host table database from \fI/etc/hosts\fP.
                    481: .PP
                    482: The format of /etc/ttys has changed, see \fIttys\fP\|(5)
                    483: for details.
                    484: It now includes the terminal type and security options that were previously
                    485: placed in /etc/ttytype and /etc/securettys.
                    486: .PP
                    487: There is a new version of \fIsyslog\fP that uses a more generalized
                    488: facility/priority scheme.
                    489: This has changed the format of the syslog.conf file.
                    490: See \fIsyslogd\fP\|(8) for details.
                    491: \fISyslog\fP now logs kernel errors, 
                    492: allowing events such
                    493: as soft disk errors, filesystem-full messages, and other such error messages
                    494: to be logged without slowing down the system
                    495: while the messages print on the console.
                    496: It is also used by many of the system daemons
                    497: to monitor system problems more closely, for example
                    498: network routing changes.
                    499: .PP
                    500: If you are using the name server, your \fIsendmail\fP configuration
                    501: file will need some minor updates to accommodate it.
                    502: See the ``Sendmail Installation and Operation Guide'' and the sample
                    503: \fIsendmail\fP configuration files in /usr/src/usr.lib/sendmail/cf.
                    504: The sendmail.cf's supplied with this release are alleged to be
                    505: ``generic'', but have only really seen use at Berkeley.  In particular
                    506: there are two points to watch out for.  First, all host names in the
                    507: sendmail.cf itself must be fully qualified names.  Second, the
                    508: sendmail.cf's assume you have a /usr/lib/sendmail that was compiled
                    509: with the resolver library (i.e., not hosttables). This is necessary
                    510: to canonicalize unqualified names into fully-qualified names (e.g.,
                    511: foo -> foo.bar.com).  Using these .cf files with a host table can
                    512: probably be done, but it will be difficult.
                    513: Be sure to regenerate your sendmail frozen configuration file after
                    514: installation of your updated configuration file with the command
                    515: \fI/usr/lib/sendmail -bz\fP.
                    516: The aliases file,
                    517: /usr/lib/aliases has also been changed to add certain well-known addresses.
                    518: .PP
                    519: The spooling directories saved on tape may be restored in their
                    520: eventual resting places without too much concern.  Be sure to
                    521: use the `p' option to \fItar\fP so that files are recreated with the
                    522: same file modes:
                    523: .DS
                    524: \fB#\fP \fIcd /usr\fP
                    525: \fB#\fP \fItar xp msgs spool/mail spool/uucp spool/uucppublic spool/news\fP
                    526: .DE
                    527: .PP
                    528: The following two sections contain additional notes concerning
                    529: changes in \*(4B that affect the installation of local files;
                    530: be sure to read them as well.
                    531: .NH 2
                    532: Hints on converting from 4.2BSD to \*(4B
                    533: .PP
                    534: This section summarizes the most significant changes between
                    535: 4.2BSD and 4.3BSD, particularly those that are likely to 
                    536: cause difficulty in doing the conversion.
                    537: It does not include changes in the network;
                    538: see chapter 5 for information on setting up the network.
                    539: .PP
                    540: The mailbox locking protocol has changed;
                    541: it now uses the advisory locking facility to avoid concurrent
                    542: update of users' mail boxes.
                    543: If you have your own mail interface, be sure to update its locking protocol.
                    544: .PP
                    545: The kernel's limit on the number of open files has been
                    546: increased from 20 to 64.  It is now possible to change this limit almost
                    547: arbitrarily (there used to be a hard limit of 30).  The standard I/O library
                    548: autoconfigures to the kernel limit.
                    549: Note that file (``_iob'') entries may be allocated
                    550: by \fImalloc\fP from \fIfopen\fP;
                    551: this allocation has been known to cause problems with programs
                    552: that use their own memory allocators.
                    553: This does not occur until after 20 files have been opened
                    554: by the standard I/O library.
                    555: .PP
                    556: \fISelect\fP can be used with more than 32 descriptors
                    557: by using arrays of \fBint\fPs for the bit fields rather than single \fBint\fPs.
                    558: Programs that used \fIgetdtablesize\fP as their first argument to \fIselect\fP
                    559: will no longer work correctly.
                    560: Usually the program can be modified to correctly specify the number
                    561: of bits in an \fBint\fP.
                    562: Alternatively the program can be modified to use an array of \fBint\fPs.
                    563: There are a set of macros available in \fI<sys/types.h>\fP to simplify this.
                    564: See
                    565: .IR select (2).
                    566: .PP
                    567: Old core files will not be intelligible by the current debuggers
                    568: because of numerous changes to the user structure
                    569: and because the kernel stack has been enlarged.
                    570: The \fIa.out\fP header that was in the user structure is no longer present.
                    571: Locally-written debuggers that try to check the magic number
                    572: will need modification.
                    573: .PP
                    574: \fIFind\fP now has a database of file names,
                    575: constructed once a week from \fIcron\fP.
                    576: To find a file by name only,
                    577: the command \fIfind name\fP will look in the database for
                    578: files that match the name.  This is much faster than
                    579: \fIfind / \-name name \-print\fP.
                    580: .PP
                    581: Files may not be deleted from directories having the ``sticky'' (ISVTX) bit
                    582: set in their modes
                    583: except by the owner of the file or of the directory, or by the superuser.
                    584: This is primarily to protect users' files in publicly-writable directories
                    585: such as \fI/tmp\fP and \fI/usr/tmp\fP.
                    586: All publicly-writable directories should have their ``sticky'' bits set
                    587: with ``chmod +t.''
                    588: .PP
                    589: The include file \fI<time.h>\fP has returned to \fI/usr/include\fP,
                    590: and again contains the definitions for the C library time routines of
                    591: \fIctime\fP\|(3).
                    592: .PP
                    593: The \fIcompact\fP and \fIuncompact\fP programs have been supplanted
                    594: by the faster \fIcompress\fP.
                    595: If your user population has \fIcompact\fPed files, you will want
                    596: to install \fIuncompact\fP from /usr/src/old/compact.
                    597: .PP
                    598: The configuration of the virtual memory limits has been simplified.
                    599: A MAXDSIZ option, specified in bytes in the machine configuration file,
                    600: may be used to raise the maximum process region size from
                    601: the default of 17Mb to 32Mb or 64Mb.
                    602: The initial per-process limit is still 6Mb,
                    603: but can be raised up to MAXDSIZ with the \fIcsh limit\fP command.
                    604: .PP
                    605: Some \*(4B binaries will not run with a 4.2BSD kernel because
                    606: they take advantage of new functionality in \*(4B.
                    607: One noticeable example of this problem is \fIcsh\fP.
                    608: .if \n(Th \{\
                    609: Also, most terminal \fIioctl\fP operations are incompatible
                    610: between \*(4B and the vendor-supplied versions of 4.2BSD.
                    611: .\}
                    612: .PP
                    613: If you want to use \fIps\fP after booting a new kernel,
                    614: and before going multiuser, you must initialize its name list
                    615: database by running \fIps \-U\fP.
                    616: .NH 2
                    617: Hints on converting from 4.3BSD to \*(4B
                    618: .PP
                    619: The largest visible change between 4.3BSD to \*(4B
                    620: (other than the addition of support for the Tahoe processor)
                    621: is the addition of support for disk labels.
                    622: This facility allows each disk or disk pack to contain all geometry
                    623: information about the disk and the partition layout for the disk.
                    624: Disk labels are supported on all disk types on the Tahoe machines,
                    625: and on hp and ra/rd disks on the VAX.
                    626: See section 2.1.6 as well as
                    627: .IR disklabel (8)
                    628: and
                    629: .IR disklabel (5).
                    630: Installation of this facility requires use of the new kernel and device
                    631: drivers, bootstraps and other standalone programs,
                    632: /etc/disktab,
                    633: .if \n(Vx \{\
                    634: .IR bad144 (8V),
                    635: .\}
                    636: .IR newfs (8),
                    637: and probably other programs.
                    638: .PP
                    639: The bootstrap programs have been fixed to work on MicroVAX IIs
                    640: and VAXstation II's with QVSS (VS II) or QDSS (GPX) displays;
                    641: the kernel includes support for these displays, courtesy of Digital
                    642: Equipment Corp.
                    643: In order to install the bootstrap on RD52/53/54 disks with
                    644: .IR disklabel (8),
                    645: the new /etc/disktab must be used,
                    646: or the block 0 bootstrap must be explictly listed as /usr/mdec/rdboot
                    647: (\fInot\fP raboot).
                    648: .\}
                    649: .PP
                    650: The order in which daemons are started by /etc/rc and /etc/rc.local
                    651: has changed, and network initialization has been split into /etc/netstart.
                    652: Look at the prototype files, and modify /etc/rc.local as necessary;
                    653: c.f. section 5.6.1.
                    654: .PP
                    655: \*(4B includes the Olson
                    656: timezone implementation, which uses timezone and daylight-savings-time
                    657: rules loaded from files in /etc/zoneinfo; see
                    658: .IR ctime (3)
                    659: and
                    660: .IR tzfile (5).
                    661: .PP
                    662: The type of the
                    663: .IR sprintf (3S)
                    664: function has been changed from \fIchar *\fP in 4.2BSD and 4.3BSD
                    665: to \fIint\fP as in the proposed ANSI C standard and in System V.
                    666: Programers are discouraged from using the return value from
                    667: .I sprintf
                    668: until this change is ubiquitous.
                    669: Fortunately, the previous return value from
                    670: .I sprintf
                    671: was essentially useless.
                    672: .PP
                    673: The ownership and modes of some directories have changed.
                    674: The \fIat\fP programs now run set-user-id ``root'' instead of ``daemon.''
                    675: Also, the uucp directory no longer needs to be publicly writable,
                    676: as \fItip\fP reverts to privileged status to remove its lock files.
                    677: After copying your version of /usr/spool, you should do:
                    678: .DS
                    679: \fB#\fP \fIchown \-R root /usr/spool/at\fP
                    680: \fB#\fP \fIchown \-R uucp.daemon /usr/spool/uucp\fP
                    681: \fB#\fP \fIchmod \-R o\-w /usr/spool/uucp\fP
                    682: .DE
                    683: .PP
                    684: The MAKEHOSTS file has moved from /usr/hosts to /usr.
                    685: .PP
                    686: The source versions of the manual pages have been moved from
                    687: /usr/man/man[1-8] to /usr/src/man, /usr/src/new/man, and /usr/src/local/man.
                    688: Local manual pages should be moved into their respective source code
                    689: directories, or into /usr/src/local/man/man[1-8], and Makefiles changed to
                    690: install the formatted manual pages into /usr/local/man/cat[1-8].  The shell
                    691: script /usr/man/manroff calls nroff with the standard manual arguments.  An 
                    692: example of installing a manual page might be:
                    693: .DS
                    694: \fB#\fP \fI/usr/man/manroff example.2 > example.0\fP
                    695: \fB#\fP \fIinstall -o bin -g bin -m 444 example.0 /usr/local/man/cat2\fP
                    696: .DE
                    697: .PP
                    698: Whatever else is left is likely to be site specific or require
                    699: careful scrutiny before placing in its eventual resting place.
                    700: Refer to the documentation and source code 
                    701: before arbitrarily overwriting a file.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.