home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / mach / doc / unpublished / vax_release.doc.Z / vax_release.doc
Encoding:
Text File  |  1992-08-19  |  34.2 KB  |  812 lines

  1.                         MACH 2.5 VAX INSTALLATION NOTES
  2.  
  3.                                  Mary Thompson
  4.                                  Jonathan Chew
  5.                           Carnegie Mellon University
  6.                              Pittsburgh, PA 15213
  7.                                21 December 1989
  8.  
  9. 1. Introduction
  10.   The  distribution  of Mach 2.5 for a Vax contains the whole operating system.
  11. It is intended to be loaded onto  an  empty  disk  and  booted.    The  tape(s)
  12. contains  a  Mach  kernel, the CMU-CS 4.3BSD environment, X11, and Mach support
  13. programs/libraries and kernel source. If you were previously running a Mach 2.0
  14. mainframe Vax distrbution that was just add-on code to Berkeley 4.3BSD, you can
  15. use  this  tape  the  same  way.  Just  follow  the  instructions  for   add-on
  16. installation.
  17.  
  18.   This  document  assumes  at least a working knowledge of the installation and
  19. maintenance of a 4.3BSD system. If you are unfamiliar with a 4.3BD  system  you
  20. should  read  the system maintainers documention for 4.3BSD. If you are running
  21. an Ultrix system you need to know how to use it to format a  disk  with  4.3BSD
  22. style partitions.
  23.  
  24. 2. Information About the Tape
  25.  
  26.    - 1/2"  tape:  1  tape,  6250bpi,  device  =  /dev/rmt{16,20}, blocking
  27.      factor=40
  28.  
  29.    - 1/2"  tape:  3  tapes  1600bpi,  device  =  /dev/rmt{8,12},  blocking
  30.      factor=40
  31.  
  32.  
  33.  
  34. 2.1. Contents
  35.  
  36.    1. Programs to help set up the disk and load it (tar)
  37.  
  38.               etc/{disktab,fsck,mkfs,newfs,restore}
  39.               bin/tar
  40.  
  41.    2. /                                 4M (dump)
  42.  
  43.    3. /sys0                              (tar)
  44.               bin                       1694K
  45.               cs                        9091K
  46.               dict                      373K
  47.               etc                       313K
  48.               include                   126K
  49.               lib                       2419K
  50.               pub                       13K
  51.               ucb                       1804K
  52.               vice                      672K
  53.  
  54.    4. /usr0                              (tar)
  55.               adm                       118K
  56.               guest                     0K
  57.               mach                      5339K
  58.               spool                     9K
  59.               tmp                       0K
  60.  
  61.    5. The sources and objects for the Mach support programs, libraries and
  62.       kernel and the sources of some Unix programs.
  63.               usr/build/src             23M (tar)
  64.  
  65.    6. Some useful misc programs: gnu_emacs, X11, rcs, sdm and nfs
  66.               usr/misc                  26M (tar)
  67.  
  68.   The /sys0 and /usr0 files can either be loaded on to separate  partitions  as
  69. they  were  on  the Mach 2.0 release, or can both be loaded onto a single large
  70. /usr partition. In the former case, symbolic links from /usr should be made  to
  71. all the directories in both /sys0 and /usr0.
  72.  
  73. 3. Hardware Requirements
  74.   To install this distribution, you will need a Vax with:
  75.  
  76.    - A minimum of 4 megabytes of memory (>= 8 meg. is preferred)
  77.  
  78.    - A qvss or qdss monitor if you have a MicroVax II or III.
  79.  
  80.    - At least one formatted 70 megabyte disk
  81.  
  82.           NOTE:  A bootable system consisting of items 2-4 in the previous
  83.                section will fit on a 70 megabyte disk.  140  megabtyes  of
  84.                disk space will comfortably accomodate everything.
  85.  
  86.    - A second disk to boot from. ( for complete installations only)
  87.  
  88.   Mach  has  been tried (and is being used) here on the following models of the
  89. Vaxes:
  90.  
  91.             VAX 750, 780, 8600, 8650, 8800, 6200, Microvax II, III.
  92.  
  93.   This release is targeted for either a Vax 750,780 a Vax  multiprocessor  with
  94. BI architecure or Microvax II,III.
  95.  
  96. 4. Disk partitions
  97.   The sizes of partitions used at CMU are slightly different from those used on
  98. a Berkeley 4.3BSD system and from those used by Ultrix.  This  release  of  the
  99. kernel  does not yet use the disk labeling technology so the size of partitions
  100. for specific disks is  still  built  in  to  the  kernel.    Thus  the  kernel,
  101. /etc/disktab and the disk itself must agree as to the partition sizes.
  102.  
  103.   The  kernel  on  this distribution uses the CMU partitions which are given in
  104. /etc/disktab on this tape. You should check that there is  an  entry  here  for
  105. your  target  disk. If you wish to use standard partitions, you can rebuild the
  106. kernel specifying -CMUCS_DISK as part of the configuration. Then you must use a
  107. Berkeley version of /etc/disktab.
  108.  
  109.             -       -
  110.             |     a |
  111.             |       |
  112.             |       -
  113.             |     b |
  114.           c |       -       -       -
  115.             |       |     d |     f |
  116.             |       |       -       |
  117.             |     h |       |       -
  118.             |       |     e |     g |
  119.             |       |       |       |
  120.             -       -       -       -
  121.  
  122.                 Figure 4-1:  Standard CMU disk partition layout
  123.  
  124.   In the CMU scheme, 70 megabyte disks don't have a "b" partition.  With big
  125. disks, d and e split f instead of h.  You can look in /etc/disktab for
  126. examples of partition tables.
  127.  
  128.   Here's  the  contents  of /etc/fstab (for a Fuji RA80) which will give you an
  129. idea of how partitions can map to file systems:
  130.  
  131.     /dev/ra0a:/:rw:1:1
  132.     /dev/ra0d:/sys0:rw:1:2
  133.     /dev/ra0e:/usr0:rw:1:3
  134.     /dev/ra0b:/usr1:rw:1:4
  135.  
  136. 5. Installation Procedure
  137.   Basically, you'll need to boot your machine, read in the programs to help set
  138. up  and  load  the  disk,  partition the disk, make 4.3 file systems on it, and
  139. restore and un-tar the contents of the tape(s). If  you  just  want  an  add-on
  140. installation,  extract  bin/tar  from  the first record on the tape and skip to
  141. step 8.
  142.  
  143.    1. Boot your machine
  144.  
  145.            You can boot Ultrix or 4.3BSD on your  machine  from  a  second
  146.            disk.   If you are booting Ultrix, you will need to know how to
  147.            use it to partition the  target  disk  for  4.3BSD  and  create
  148.            4.3BSD  4K file systems there.  If you are running 4.3BSD steps
  149.            2-5   should   be   followed.      Save   your   versions    of
  150.            /etc/{disktab,fsck,mkfs,newfs,   restore},   and   /bin/tar  by
  151.            renaming them
  152.  
  153.    2. Cd to / and un-tar the first file on the  tape  which  contains  the
  154.       programs to help set up and load the disk i.e.
  155.               etc/{disktab,fsck,mkfs,newfs,restore}
  156.               bin/tar
  157.    3. Patch  your kernel if necessary so that its partition table for your
  158.       particular disk corresponds to the data in /etc/disktab.
  159.  
  160.    4. Make  the  file  systems  for  your  disk(s)  using   /etc/mkfs   or
  161.       /etc/newfs.  See /etc/disktab for a list of disks newfs understands.
  162.  
  163.            NOTE:  You should use 4k file systems on your Vax.
  164.  
  165.    5. Restore the / dump into the "a" partition
  166.  
  167.           restore rvb 40 /dev/rmt20
  168.  
  169.    6. Cd  to  /sys0  or  /usr on your target disk and un-tar the /sys0 tar
  170.       file.
  171.  
  172.           tar xvb 40 /dev/rmt20
  173.  
  174.            NOTE:  The files in the this  tar  file  are  stored  by  names
  175.                 relative  to  sys0.  If the tar gets an error message of 0
  176.                 block size, just try it again.  Sometimes  the  tape  does
  177.                 not  get  positioned  correctly  to  the start of the next
  178.                 file. The tape can always be repositioned to the start  of
  179.                 a file with the mt program.
  180.  
  181.    7. Cd  to  /usr0  or  /usr on your target disk and un-tar the /usr0 tar
  182.       file.
  183.  
  184.            NOTE:  The files in the this  tar  file  are  stored  by  names
  185.                 relative to usr0
  186.  
  187.    8. Cd  to  /usr  on  your target disk and un-tar the /usr/build/src tar
  188.       file.
  189.  
  190.            NOTE:  The files in the this  tar  file  are  stored  by  names
  191.                 relative  to  usr.    This step can be done after you have
  192.                 booted with Mach unless you want a non-default version  of
  193.                 the kernel.
  194.  
  195.    9. Cd to /usr on your target disk and un-tar the /usr/misc tar file.
  196.  
  197.            NOTE:    The  files  in  the  this tar file are stored by names
  198.                 relative to usr.  This step can be  done  after  you  have
  199.                 booted with Mach.
  200.   10. If you are on a micro-vax II or III copy the boot block /BOOTUV onto
  201.       the boot block of the target disk
  202.  
  203.           dd if=BOOTUV of=/dev/<target-disk>a bs=b count=16
  204.  
  205.       If you are on a mainframe vax, continue to use  the  16-sector  boot
  206.       program that came from 4.3BSD.
  207.  
  208.   11. Halt the machine
  209.  
  210.   12. Boot Mach single user
  211.  
  212.            NOTE:  Mach will come up running the default kernel without NFS
  213.                 or AFS support. See the section on Changing  Kernels,  for
  214.                 information on how to get a different kernel.
  215.  
  216.   13. Fsck the root partition
  217.  
  218.   14. Su to root (the root password is "password")
  219.  
  220.   15. Edit /etc/THISHOST to contain your machine name
  221.  
  222.   16. Edit /etc/NETWORKS to contain your IP address
  223.  
  224.   17. Create  /etc/nmbroadcast  with  a  single line containing your local
  225.       broadcast address.
  226.  
  227.   18. Edit /etc/attributes,  changing  "changeme.mach.cs.cmu.edu"  to  the
  228.       name of your machine
  229.  
  230.            This  is  a  control file unique to CMU which contains a single
  231.            line  entry  for  each  machine  in  the  local   CMU   network
  232.            environment  specifying  the particular characteristics of that
  233.            machine.  It  is  mainly  used  by  /usr/cs/etc/nanny,  a   CMU
  234.            developed   utility  for  starting  and  managing  servers,  to
  235.            determine which servers need to be  started  for  a  particular
  236.            machine.
  237.  
  238.   19. Edit  /etc/hosts to contain your machine name and IP address and the
  239.       names and addresses of any machines that you wish to talk to.
  240.  
  241.   20. Edit /etc/neton
  242.  
  243.            /etc/neton sets the host name and address of the  machine,  and
  244.            configures  the  network  interface.  It needs to be changed to
  245.            specify your network broadcast address and add your gateway  to
  246.            the  routing  table.   If your machine won't be on the network,
  247.            then everything except the first few lines which set  the  host
  248.            name and host ID should be commented out.
  249.  
  250.   21. CTRL-d out of your root shell
  251.  
  252.   22. CRTL-d out of the opr shell
  253.  
  254.   23. Hit return when asked 'Do you wish to run a "fsck -p"? [yes] '
  255.  
  256.   24. When it comes up multi-user, login as guest (no password)
  257.  
  258.            The  guest  account was set up to show you how an account might
  259.            be set up.  It execs X when you login.
  260.  
  261. 6. Post-Installation Considerations
  262.  
  263.  
  264.  
  265. 6.1. How to Make Accounts
  266.  
  267.    1. Edit /etc/{passwd,group}
  268.  
  269.              If you don't know what the passwd and group  files  are,  you
  270.            should  look  at  their  manual pages in the "Unix Programmer's
  271.            Manual".
  272.  
  273.    2. Edit /etc/account
  274.  
  275.              /etc/account is a CMU-CS specific file that tells  when  your
  276.            account  starts and expires for each group that you are in.  As
  277.            an example, here are a few lines from it:
  278.  
  279.                jjc::477:3:01-Dec-86:01-Jan-89:root:
  280.                jjc::477:7:03-May-86:01-Jan-89:root:
  281.                jjc::477:377:17-May-87:01-Jan-89:root:
  282.                jjc::477:408:01-Sep-87:01-Jan-89:root:
  283.  
  284.    3. Make a home directory for the account
  285.  
  286.    4. Make a symbolic link from /usr to the home directory
  287.  
  288.    5. Change the ownership of the home directory to the user  and  his/her
  289.       group.
  290.  
  291.   Each  line  of  /etc/account  contains  the  account name, user ID, group ID,
  292. starting date, expiration date, and sponsor.
  293.  
  294.  
  295.  
  296. 6.2. Nanny
  297.   /usr/cs/etc/nanny is a server started in /etc/rc  that  starts  and  babysits
  298. other  servers.    It  will restart any of the servers that it babysits if they
  299. die.  The servers that it babysits are listed in /usr/cs/etc/nanny.config.  The
  300. description  of  each server in nanny's configuration file consists of the full
  301. path name of the server, what user and group IDs to run it  as,  the  value  to
  302. nice  it  at, and the attribute that the machine must have for nanny to run it.
  303. Nanny looks for the machine's attributes in /etc/attributes.
  304.  
  305.   To add or delete a server from nanny's babysitting service, add or delete the
  306. server  description  to or from /usr/cs/etc/nanny.config.  If you add a server,
  307. check to make sure that your machine has the attribute needed to run the server
  308. in /etc/attributes.  If you don't want to run nanny, comment out the invokation
  309. of it in /etc/rc and start the servers in /etc/rc or /etc/rc.local instead.
  310.  
  311.   See nanny(8) for more information.
  312.  
  313.  
  314.  
  315. 6.3. Netmsgserver
  316.   /etc/nmbroadcast needs to be edited to contain  one  line  containing  an  IP
  317. address  to  be  used  as  the IP broadcast address. Omission of this file will
  318. cause Mach's netmsgserver to use CMU's IP broadcast address as a default.
  319.  
  320.  
  321.  
  322. 6.4. Root, Super-Root and RFS
  323.   To clarify upfront what may be the cause  of  some  confusion  regarding  the
  324. software  system you have just installed, as distributed your system includes 3
  325. root directories.  First, there is the physical root which  is  /../../.    The
  326. second  is  the remote root which is /../ and the third is the local root which
  327. is / and appears as a typical Unix root.
  328.  
  329.   The reason for this is that the kernel as distributed supports a remote  file
  330. system  (i.e.  RFS)  first  developed  at  CMU in 1982. Mach systems at CMU are
  331. usually "rooted" at /RFS/.LOCALROOT, allowing for a /../hostname syntax  and  a
  332. /../../ super-root.
  333.  
  334.   RFS  is  easy to use.  The syntax is /../hostname or alias.  For example, the
  335. following command would list the contents of /tmp on wb1:
  336.  
  337.     ls /../wb1/tmp
  338.  
  339.   The local machine must have an RFS link to the  remote  machine  for  you  to
  340. access  the remote machine through RFS.  To make a link in /.. for a particular
  341. machine:
  342.  
  343.    1. Cd to /..
  344.  
  345.    2. Run /usr/cs/etc/remhost giving it the alias of the machine.
  346.  
  347.            NOTE:  The host name and alias must appear in  /etc/hosts  with
  348.                 its corresponding IP address for this to work.
  349.  
  350.   The  above  procedure  will  create two binary files, /../alias and /../.host
  351. name, which contain the IP address of the machine.  To  refer  to  these  files
  352. without  going  across RFS, you must quote the file by using the syntax /..///.
  353. For example, the following command would show  the  contents  of  /../alias  in
  354. hexadecimal:
  355.  
  356.     od -x /..///alias
  357.  
  358.   For  RFS  to  work,  the  remote  machine  must  be  running  the RFS daemon,
  359. /usr/cs/etc/rfsd, which is started by nanny. The remote machine must also  list
  360. the  IP  address  of  any  machines  which are allowed to access it in the file
  361. /usr/cs/lib/hosts/local-hosts.
  362.  
  363.   By default, RFS accesses files as if you had the user  and  group,  rfsd  and
  364. system.    To authenticate yourself to RFS as someone different, you should use
  365. the program /usr/cs/etc/rfs.  It will prompt  you  for  a  user,  group,  group
  366. account,  and  password.    Give  the  default answer when it asks "Identify?".
  367. After running /usr/cs/etc/rfs, you will have a shell that  will  allow  you  to
  368. access  files  on  remote RFS hosts that you have a corresponding user account,
  369. group, and password for.
  370.  
  371.  
  372.  
  373. 6.5. Paging
  374.   The kernel pages out to inodes.  There  is  no  need  for  special  dedicated
  375. paging  area,  but  there  must  be  free space on the disk to page out to. The
  376. program /usr/mach/etc/swapon can be run at boot time to specify  partitions  to
  377. perfer to swap to and those to never swap to.  (see mach_swapon.8)
  378.  
  379.  
  380.  
  381. 6.6. System Log Files
  382.   System  log  files  are  located  under  /usr/adm.  Should any unusual system
  383. behavior be noticed, looking at the log files located here is a good  place  to
  384. start  looking  for  clues  as to what the cause may be. An unusually large log
  385. file can be an indication that system errors are occurring. It's a good idea to
  386. occassionally  check  the size of this directory by simply doing a du /usr/adm.
  387. Also, these log files should be periodically checked as some have a tendency to
  388. become  excessively  large  over  time.    Most are regularly removed when they
  389. exceed a specified age, see /usr/lib/crontab.
  390.  
  391.  
  392.  
  393. 6.7. Changing Time Zones
  394.   As distributed the time zone is set to eastern standard time,  i.e.  EST5EDT.
  395. If you need to change time zones you will need to perform two tasks. First, you
  396. will need to re-link /etc/zoneinfo/localtime as follows:
  397.         login as root
  398.         cd  /etc/zoneinfo
  399.         rm  localtime
  400.         ln  xxx  localtime   (substitute appropriate timezone file for xxx)
  401.  
  402.   Second, you will need to patch time zone variable (i.e. _tz) in  the  kernel.
  403. Prior  to  doing this you will need to calculate the appropriate patch value in
  404. hex of the  difference  in  minutes  between  your  local  zone  time  and  GMT
  405. (universal  time).  The  value  of this constant for eastern standard time, for
  406. example is x12c hex (i.e. 300  decimal).  This  is  the  value  that  you  will
  407. initially  see  for _tz. To change to Pacific Daylight Time, as an example, _tz
  408. should be patched to  x1e0  hex  (i.e.  480  decimal).  The  following  example
  409. illustrates patching the vmunix kernel to PDT.
  410.         login as root
  411.         /bin/adb  -w /vmunix
  412.            tz?W  1e0
  413.            $q
  414.         /etc/reboot
  415.  
  416.   An  alternative  to patching the kernel is to configure a new kernel with the
  417. right timezone, recompile it, and install it.
  418.  
  419. 7. How to make changes and upgrades
  420.  
  421.  
  422.  
  423. 7.1. Compilation Environment
  424.   Building Mach software (including the kernel) requires a modified compilation
  425. environment.    This  environment  includes  a  path searching version of the C
  426. compiler.  The C compiler resides in /usr/cs/bin/cc and requires the  following
  427. paths (which are environment variables):
  428.  
  429.      CPATH           Path to search for include files.
  430.  
  431.      LPATH           Path to search for library files.
  432.  
  433.   These paths usually contain at least:
  434.  
  435.      CPATH           :/usr/mach/include:/usr/cs/include:/usr/include:
  436.  
  437.      LPATH           :/usr/mach/lib:/usr/cs/lib:/lib:/usr/lib:
  438.  
  439.   A  script  that  sets  these environment variables to reasonable values is in
  440. /usr/mach/lib/machpaths.
  441.  
  442.   The Makefiles that are supplied with the  sources  in  /usr/build/src  assume
  443. that  the  program  /usr/misc/.sdm/bin/build  is being used to execute them and
  444. need the CMU-modified version of make found in  /usr/cs/bin/make.    The  files
  445. Makefile-common,  mach/Make.inc  and {.,mach,kernel}/Makeconf are also required
  446. parts of the make process.  Makefile-common is a set of generalized make  rules
  447. that  is  included  by  the  Makefiles  in the bin, etc and usr subdirectories.
  448. Mach/Make.inc is the set of general rules included by most of the Makefiles  in
  449. the  mach subdirectory. The respective Makeconf files are also read by make and
  450. specify an object base directory into which the .o files will  be  placed.  The
  451. mach/Makeconf and kernel/Makeconf files also define a few other parameters that
  452. the make process depends on.
  453.  
  454.  
  455.  
  456. 7.2. Rebuilding from the sources
  457.   The  build  program  (see   /usr/misc/man/man8/build.8)   reads   a   project
  458. description  file  from which it gets information about switches to make, where
  459. to put the executables, and lists of directories to be used for the  CPATH  and
  460. LPATH  variables.  It will set the correct switches, paths and targets and then
  461. call the make program. If you wish to be sure that you are getting the  correct
  462. make  program,  set the environment variable MAKE to the complete pathname. The
  463. project description files are in /usr/build/lib/project.
  464.  
  465.   To build programs in bin,etc, or usr
  466.  
  467.     setpath LPATH -i99 /usr/build/lib
  468.     setenv PROJECT sys.2.5
  469.     cd /usr/build/src
  470.     #build <program> but do not install it
  471.     build /usr/cs/bin/<program>
  472.  
  473.     #build ps and install it in /usr/bin
  474.     build -fromsource -todefault /bin/ps
  475.  
  476.     #build and install all the programs in bin and its subdirectories.
  477.     build -fromsource -todefault -here /bin
  478.  
  479.  
  480.   To build programs in mach
  481.  
  482.     setpath LPATH -i99 /usr/build/lib
  483.     setenv PROJECT sys.2.5
  484.     cd /usr/build/src/mach
  485.     #build md but do not install it
  486.     build /bin/md
  487.  
  488.     #build md and install it in /usr/mach/bin
  489.     build /bin/md.install
  490.  
  491.     #build and install all the programs in /lib and it
  492.     #subdirectories libthreads and libmach
  493.     build /lib/install
  494.  
  495.  
  496. In the mach area, build is only used to set the path values correctly.  If  you
  497. have CPATH and LPATH correctly set you can use make instead of build.
  498.  
  499.   To build a kernel
  500.  
  501.     cd /usr/build/src/kernel
  502.     make   - builds the kernel specified by CONFIG in kernel/Makeconf
  503.     make CONFIG=STD+MP-afs - builds the specified configuration.
  504.  
  505. Build  is only useful with the kernel sources if you wish to make a shadow area
  506. in which you place a few modified sources and get the rest of the sources  from
  507. the  standard  source area. Build can deal with sources in multiple directories
  508. where make cannot. See /usr/misc/man8/build.8 for details on how to do this.
  509.  
  510.  
  511.  
  512. 7.3. Changing Kernels
  513.   If your license allows it, you will  have  received  extra  versions  of  the
  514. kernel  in  the  /usr/build/obj/kernel  directory.  These  kernels  are  in the
  515. subdirectories STD+WS and STD+ANY. The versions STD+ANY or STD+WS have both NFS
  516. and  AFS support. The versions STD+ANY-afs and STD+WS-afs have NFS support. The
  517. versions -afs-nfs have neither. The ANY configurations  support  more  drivers.
  518. The  vax  MP  configurations  are for multi-processors vaxes with BI buses. The
  519. conf/MASTER.* files in the kernel  source  area  define  the  contents  of  the
  520. various configurations.
  521.  
  522.   The  kernel  must  be in two roots, the physical root (/../..) where the boot
  523. program is expecting to find it and the local root  (/)  where  the  kernel  is
  524. found  when the system is up.  To make the kernel be in both roots, a hard link
  525. is made between /vmunix and /../../vmunix.  Even though this  link  has  to  be
  526. made, booting a new kernel is very straightforward:
  527.  
  528.    1. Su to root
  529.  
  530.    2. Copy your new kernel into /vmunix.reboot
  531.  
  532.    3. Change its protection to 640
  533.  
  534.    4. Change its user and group ownership to sys and kmem
  535.  
  536.    5. Reboot
  537.  
  538.   There   are   lines  in  /etc/rc  that  save  /vmunix  in  /vmunix.old,  move
  539. /vmunix.reboot to /vmunix, make the necessary  links  from  the  local  to  the
  540. physical root, and then reboot.
  541.  
  542.   Two shell scripts, /etc/oldvmunix and /etc/newvmunix, are useful for changing
  543. kernels.  /etc/oldvmunix will save /vmunix in /vmunix.new, move /vmunix.old  to
  544. /vmunix,  and  change  the  links.  /etc/newvmunix will do the opposite, moving
  545. /vmunix to /vmunix.old and /vmunix.new to /vmunix.
  546.  
  547.  
  548.  
  549. 7.4. Supping updates from CMU
  550.   Both the sources and the  binary  for  sup  (Software  Update  Protocal)  are
  551. included  in  this distribution. With the installation of some control files at
  552. your site and at CMU, this program can be used to get updated versions  of  the
  553. kernel  or mach sources, and the BSD binaries and selected sources. It can also
  554. be used at your site to automatically keep software consistent on all your Mach
  555. workstations.
  556.  
  557.   The   sup   program   is  documented  both  in  /usr/mach/doc/sup.ps  and  in
  558. /usr/cs/man/man8/sup.8.  Send  mail  to   mach@cs.cmu.edu   to   request   more
  559. information  about  setting  your site up to sup upgrades from CMU. The machine
  560. that you wish to sup files to must be on the INTERNET.
  561.  
  562. 8. Differences between Mach 2.0 and Mach 2.5
  563.  
  564.  
  565.  
  566. 8.1. NFS and in-kernel AFS support
  567.   If you have the appropriate NFS and AFS licenses, your distribution  includes
  568. kernel  support  for  Sun's  NFS  and possibily the Andrew File System (AFS) as
  569. well. The few user level programs  need  to  run  NFS  and  AFS  are  found  in
  570. /usr/misc/.nfs.  The programs to set up an AFS server or to maintain a complete
  571. NFS are not provided. It is assumed that you can get them from Sun and Transarc
  572. respectively.  The necessary daemons are started by /etc/rc.
  573.  
  574.  
  575.  
  576. 8.2. Mach IPC changes
  577.   The   Mach   2.5  kernel  has  two  compile-time  options  (MACH_IPC_SIGHACK,
  578. MACH_IPC_XXXHACK) that can be used to enable backwards-compatibility code.  The
  579. kernel  sources  currently  have these options enabled but once you change your
  580. sources, you may want to turn them off.
  581.  
  582.   In general, Mach 2.5 is not binary compatible with Mach  2.0,  because  traps
  583. and kernel calls have changed, but with some help from libmach it is reasonably
  584. source compatible.
  585.  
  586.    1. Ownership rights are no longer supported.    MSG_TYPE_PORT_OWNERSHIP
  587.       and   MSG_TYPE_PORT_RECEIVE   are  invalid.    ownership-rights  and
  588.       receive-rights notifications are never generated.  (MACH_IPC_XXXHACK
  589.       enables ownership rights.)
  590.  
  591.    2. Emergency  messages  are  no  longer supported.  A port has only one
  592.       queue of messages.
  593.  
  594.    3. PORT_ENABLED is no longer supported.   Instead,  Mach  2.5  provides
  595.       "port   sets",   which   generalize  the  enabled/disabled  concept.
  596.       (MACH_IPC_XXXHACK enables  support  for  PORT_ENABLED.    Note  that
  597.       libmach   also   has   some   backward-compatibility   support   for
  598.       PORT_ENABLED, port_enable, and port_disable.)
  599.  
  600.    4. Mach 2.0 allowed a task to receive messages directly from an enabled
  601.       port, in addition to receiving messages directed to enabled ports by
  602.       using PORT_ENABLED.  Mach 2.5 does not allow messages to be received
  603.       directly from ports that are members of a port set.
  604.  
  605.    5. SIGMSG  and SIGEMSG are no longer supported.  Mach 2.0 signalled the
  606.       receiver when a message was sent to an enabled port.  Mach  2.5  IPC
  607.       never  generates  signals.  (MACH_IPC_SIGHACK enables SIGMSG/SIGEMSG
  608.       support.  CMU Common Lisp relies on these signals.)
  609.  
  610.    6. The IPC traps (msg_send/msg_receive/msg_rpc) have different  numbers
  611.       and  arguments  in  Mach  2.5.    (However,  note  that  the wrapper
  612.       functions in libmach continue to have the same arguments as in  Mach
  613.       2.0,  so  this  change  is transparent to user code and only impacts
  614.       binary compatibility.)  (MACH_IPC_XXXHACK enables the old traps.)
  615.  
  616.    7. Mach 2.5 has a completely different set of port-manipulating  kernel
  617.       calls.      The  old  port_allocate,  port_deallocate,  port_enable,
  618.       port_disable_select, port_select, port_set_backlog, and  port_status
  619.       are  gone.    task_ports  is gone, but it wasn't implemented in Mach
  620.       2.0.  (MACH_IPC_XXXHACK enables these old kernel calls,  except  for
  621.       port_select and task_ports.)
  622.  
  623.    8. Mach   2.5  has  new  versions  of  port_allocate,  port_deallocate,
  624.       port_set_backlog, and  port_status  that  have  basically  the  same
  625.       arguments.    The  subtle  difference is that they refer to ports by
  626.       name instead of passing send rights.   port_status  also  returns  a
  627.       port-set-membership  indication  in  place  of  the enabled/disabled
  628.       indication.  It  still  returns  separate  ownership/receive  rights
  629.       indications,  also  they  will  never  have different values (unless
  630.       MACH_IPC_XXXHACK).
  631.  
  632.    9. Mach 2.5 has new kernel calls: port_names,  port_type,  port_rename,
  633.       port_set_allocate,         port_set_deallocate,        port_set_add,
  634.       port_set_remove,         port_set_status,          port_insert_send,
  635.       port_extract_send,     port_insert_receive,    port_extract_receive,
  636.       port_set_backup.
  637.  
  638.   10. Mach   2.5   supports   the    use    of    TASK_KERNEL_PORT    with
  639.       task_{get,set}_special_port,     and     THREAD_KERNEL_PORT     with
  640.       thread_{get,set}_special_port.
  641.  
  642.   11. Mach 2.5 has a "backup port" concept to replace the most common  use
  643.       of  ownership  rights.   Using port_set_backup, a task can specify a
  644.       backup port for a port that it owns.  Normally when  receive  rights
  645.       for  a port are deallocated, the port is destroyed.  If the port has
  646.       a backup, instead they are sent in a port-destroyed notification  to
  647.       the backup port.
  648.  
  649.   12. All  notifications  in  Mach  2.5  have  a PORT_NULL msg_remote_port
  650.       field.  Notifications in Mach 2.0 carried send rights for the task's
  651.       kernel port in the msg_remote_port (reply port) field.
  652.  
  653.  
  654.  
  655. 8.3. External Pager interface changes
  656.   In  Mach  2.0  the External Pager was only provided in +EXP configurations of
  657. the kernel. It is now standard and cannot be disabled. The names and parameters
  658. of  most  of  the  calls  have  changed.  The  old  names began with pager_ the
  659. corresponding new ones begin with memory_object. For example,
  660.  
  661.     pager_data_provided(pageing_object_request,
  662.             offset,data,data_count,lock_value)
  663.  
  664. has been replaced with
  665.  
  666.     memory_object_data_provided(memory_control,
  667.             offset,data,data_count,lock_value)
  668.  
  669. and   the   type   of   the   first   parameter   changed   from   port_t    to
  670. memory_object_control_t.
  671.  
  672.   The  new  calls  are  documented in the Kernel Reference Manual included with
  673. this distribution.
  674.  
  675.  
  676.  
  677. 8.4. Kernel include files reorganized
  678.   The kernel include files were reorganized in the following ways:
  679.  
  680.    - sys now includes only files from Berkeley. Mach files were moved from
  681.      here to mach, kernel and vm directories.
  682.  
  683.    - mach  and  mach/<machine> contain all the Mach specific include files
  684.      that are to be exported to /usr/cs/include.  Files  were  moved  here
  685.      from sys, kern and vm.
  686.  
  687.    - mach_debug  and  mach_debug/<machine> contain the debugging interface
  688.      to  the  kernel.  This   interface   is   only   included   in   +EXP
  689.      configurations.
  690.  
  691.    - include  files  in  kern and vm directories are no longer exported to
  692.      /usr/cs/include.
  693.  
  694.    - The kernel include files are no longer  placed  in  /usr/mach/include
  695.      but  only  in  /usr/cs/include  with  symbolic  links  to  there from
  696.      /usr/include.
  697.  
  698.   The sed script in /usr/build/src/mach/FIX-INCLUDES.sed can be used to  modify
  699. your source files to include the header files from the new locations.
  700.  
  701. 9. Known Problems/Bugs
  702.  
  703. 10. Mach Feedback
  704.   We expect to get three kinds of feedback:
  705.  
  706.    1. Bug reports/fixes and suggestions for improvements
  707.  
  708.    2. Code
  709.  
  710.    3. General enquiries
  711.  
  712.  
  713.  
  714. 10.1. Reporting bugs/ General enquiries
  715.   The  Mach  Project  may  be  contacted  either  by  US  Mail, Arpanet mail or
  716. telephone.
  717.   US Mail Address
  718. Mach Project
  719. c/o Richard F. Rashid
  720. School of Computer Science
  721. Carnegie Mellon University
  722. Pittsburgh, PA 15213-3890
  723. USA
  724.   Arpanet mail addresses
  725. mach@wb1.cs.cmu.edu
  726. info-mach-request@cs.cmu.edu
  727. info-mach@cs.cmu.edu
  728. mach is read by the Project Manager and the Distribution Coordinator.  Problems
  729. pertaining to distribution problems should be sent here.
  730.  
  731.   info-mach-request  is  used  to  accept requests to be added to the info-mach
  732. mailing list.
  733.  
  734.   info-mach is a mail distribution list consisting of the mach  developers  and
  735. mach users. Bug reports, technical questions and suggestions on how to use mach
  736. should be sent to this list. Also replies to questions raised  here  should  be
  737. cc'ed to this list.
  738.  
  739.   Telephone
  740. 412 268-8166 (Lori Iannamico - Distribution Coordinator)
  741.  
  742.   The  telephone  number should only be used when absolutely necessary and then
  743. only to leave a message.  Please keep in mind that we do  not  have  a  support
  744. staff and so cannot provide more than minimal help with problems.
  745.  
  746.  
  747.  
  748. 10.2. Returning code to CMU
  749.   We  encourage  you  to send back to us any code which may improve the system.
  750. Please follow the conventions we have used in the kernel.  In  particular,  you
  751. should make your changes under specific compilation switches and you should add
  752. the switches to the configuration file.  All changes (even  bug  fixes)  should
  753. leave  the  original  code  intact such that turning off the appropriate option
  754. will return the system to its original state.  By following  these  conventions
  755. we  will  be  able  to  more  quickly  incorporate your modifications.  This is
  756. especially important if you are porting Mach to a new machine and want  CMU  to
  757. include that software in a future release.
  758.  
  759.   Code may be returned in a tape (similar to the kind of tape you received with
  760. this release) or via the Arpanet.  If you have network  access  and  intend  to
  761. work  heavily  with  Mach  it  may be desirable to access Mach software using a
  762. software update program (called SUP) which is supplied with the  release  tape.
  763. This  program  allows network updating of software modifications between sites.
  764. If you feel this is important to you or your group, you should contact the Mach
  765. group as described above to make the necessary arrangements.
  766.  
  767. 11. References
  768.  
  769.    - 4.3BSD Unix Programmer's Manual
  770.  
  771.    - Installing UNIX on the Sun Workstation
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.    - Unix is a trademark of AT&T Bell Laboratories
  780.                                Table of Contents
  781. 1. Introduction                                                               1
  782. 2. Information About the Tape                                                 1
  783.      2.1. Contents                                                            1
  784. 3. Hardware Requirements                                                      1
  785. 4. Disk partitions                                                            1
  786. 5. Installation Procedure                                                     1
  787. 6. Post-Installation Considerations                                           2
  788.      6.1. How to Make Accounts                                                2
  789.      6.2. Nanny                                                               2
  790.      6.3. Netmsgserver                                                        2
  791.      6.4. Root, Super-Root and RFS                                            2
  792.      6.5. Paging                                                              2
  793.      6.6. System Log Files                                                    2
  794.      6.7. Changing Time Zones                                                 2
  795. 7. How to make changes and upgrades                                           3
  796.      7.1. Compilation Environment                                             3
  797.      7.2. Rebuilding from the sources                                         3
  798.      7.3. Changing Kernels                                                    3
  799.      7.4. Supping updates from CMU                                            3
  800. 8. Differences between Mach 2.0 and Mach 2.5                                  3
  801.      8.1. NFS and in-kernel AFS support                                       3
  802.      8.2. Mach IPC changes                                                    3
  803.      8.3. External Pager interface changes                                    4
  804.      8.4. Kernel include files reorganized                                    4
  805. 9. Known Problems/Bugs                                                        4
  806. 10. Mach Feedback                                                             4
  807.      10.1. Reporting bugs/ General enquiries                                  4
  808.      10.2. Returning code to CMU                                              4
  809. 11. References                                                                4
  810.                                 List of Figures
  811. Figure 4-1:   Standard CMU disk partition layout                              1
  812.