|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.