usage(8)


NAME
     usage - installing and using MINIX

DESCRIPTION
     This manual page describes the installation  and  use  of  MINIX  from  a
     System  Administrators point of view.  It contains an installation guide,
     instructions on how to do the initial configuration and some other  info.
     Please  read  this  document entirely before attempting to install MINIX.
     The installation  steps  are  in  the  proper  order,  but  not  all  the
     information  you  may  need  is  presented  at  the  right moment.  Other
     detailed information that may be useful can be found in boot(8), hier(7),
     and in dosminix(8) if you run MINIX under DOS.

  1. MINIX UNDER DOS
     Installation of MINIX to run under DOS is a nonevent.  Chances  are,  you
     are reading this manual page from an already running MINIX system, but if
     not then the setup goes like this:

     Unpack the DOSMINIX.ZIP file using one of the popular ZIP utilities, such
     as PKZIP or WinZIP.  Next reboot Windows and hit F8 just when you see the
     "Booting Windows" message.  From the menu that  appears  choose  "Command
     prompt  only",  or  if that doesn't work "Safe mode command prompt only".
     Move to the directory containing the MINIX files and type:

          boot minix.mnx

     Type '=' and presto, you are running MINIX.  Most of  the  rest  of  this
     manual,  which  deals  mainly  with  running  MINIX  in  a true hard disk
     partition, does not apply to  you.   Your  system  is  already  installed
     completely,  with all binaries and sources present, so all the talk about
     getting MINIX on your disk can be skimmed over.  Pay attention again when
     the  focus shifts to the configuration of the system.  Section 9 is where
     this happens first.  (The main challange to  a  DOS  installation  is  to
     figure out which parts of the installation manual do not apply.)

  2. REQUIREMENTS
     The minimum system MINIX can be installed on comfortably is an IBM  PC/AT
     or  PS/2  with a 286 processor, 2 MB memory, a 720 kb diskette drive, and
     30 MB free space on an AT, ESDI, or SCSI hard disk (the latter controlled
     by  an  Adaptec  1540.)   MINIX  for the 386 (MINIX-386 for short) can be
     installed on a machine with at least a 386sx processor, 3 MB  memory  and
     at least 30 MB of disk space.

     The minimum system MINIX can be installed  on  uncomfortably  is  an  IBM
     PC/XT with 640 kb memory.  MINIX-386 can more or less run in 2 MB memory.
     See sections 16 and 17 on "low memory" issues.




  3. MINIX INSTALLATION BACKGROUND
     The objective of the installation is to create a partition on  your  disk
     and  to put MINIX into it.  MINIX really requires two partitions however,
     so the single "primary" partition is split into two subpartitions.  The a
     subpartition  will  contain  the root file system, and the c subpartition
     will contain the /usr file system.  What MS-DOS calls "drives",  i.e  C:,
     D:,  E:,  MINIX  calls "file systems".  MINIX does not use drive letters,
     but requires that one file system is made a part of another  file  system
     by "mounting" one on the other.  The "root" file system is always present
     and starts with the directory "/", the root of the directory  tree.   The
     root  file  system contains a few programs in /bin, device files in /dev,
     and configuration files in /etc.  This is just enough to get  the  system
     started.   MINIX  will  soon extend its directory tree by mounting a file
     system on the /usr directory.  What is henceforth known as the /usr  file
     system  contains  all  MINIX programs in /usr/bin, file system sources in
     /usr/src, etc, etc.  The ROOT.MNX image contains the complete MINIX  root
     file  system,  but  USR  contains  just  a  small subset of the /usr file
     system, with just enough utilities to install MINIX.  The  complete  /usr
     file  system  is  split up into the USR.TAZ, SYS.TAZ and CMD.TAZ archives
     that are installed later to fill /usr.

     Let's suppose your first hard disk, which has device name  /dev/hd0,  has
     MS-DOS  already  present  in  the first primary partition (/dev/hd1), and
     some free space left after that.  After MINIX is installed in  that  free
     space the disk will look like this:

         /dev/hd0    Whole hard disk #0
           /dev/hd1    MS-DOS C: drive
           /dev/hd2    MINIX primary partition
             /dev/hd2a   MINIX root partition
             /dev/hd2c   MINIX /usr partition

     /dev/hd0 is  the  sum  of  a  partition  table,  /dev/hd1  and  /dev/hd2.
     Likewise  is  /dev/hd2  the  sum  of  a subpartition table, /dev/hd2a and
     /dev/hd2c.  Read the "DEVICES" sections for  more  information  on  MINIX
     devices.

  4. INSTALLATION
     If you have not already copied MINIX to floppy  disks,  please  read  the
     README.TXT  file  in  the  MINIX directory now.  It tells how to do this.
     You should also print out EXAMPLE.TXT and read it in parallel  with  this
     document.   This  one  tells  you what to do; that one shows you what the
     screen is supposed to  look  like  at  each  step,  so  you  can  see  if
     everything is OK.

     You can install MINIX automatically or manually as described the sections
     below.  The end result is the same, but manual installation allows one to
     deviate from the preconfigured choices.  You may wish to read the  manual
     pages  of  the  programs used below before you start.  You may especially
     want to read boot(8) if your machine is different from what the  majority
     buys, because you may need to set a  few  boot  parameters  to  configure
     drivers.   To do this type ESC to get to the Boot Monitor prompt, set the
     appropriate variables, use  save  to  store  the  settings  and  menu  to
     continue where you left off.

     To install the system you need two diskettes: a  bootable  root  diskette
     and  a  diskette  full  of  binaries to use as /usr.  These diskettes are
     named ROOT and USR.  These two diskettes may also be combined on a single
     high density diskette.  In that case the USR part is on the c partition.

     Insert the ROOT diskette, boot the machine and type '=' to the menu.  The
     MINIX  kernel  is  loaded  and  takes  control when you see the copyright
     banner.  After loading the root diskette into the RAM disk  you  will  be
     asked to finish the name of the device to mount on /usr.  Type fd0c for a
     diskette that contains both ROOT and USR, otherwise replace ROOT  by  USR
     and type fd0.  Login as root.

  5. AUTOMATIC INSTALLATION
     Before starting the installation, you must either have a  free  partition
     available or have at least 30 MB not in any partition so you can create a
     MINIX partition.  Splitting an MS-DOS partition can be done  using  fips,
     and is discussed in the main README.TXT file.

     Type setup to start the installation script.  First it offers to  install
     a  national keyboard map.  The names should be clear, except for us-swap,
     which swaps the CTRL and CAPS LOCK keys of a standard US  style  keyboard
     for  people who believe that the natural place of CTRL is next to A.  The
     default suggested between [ and ] is the US standard keyboard.

     The next thing to do is to make a partition, for this you are placed in a
     partition  table  editor named part.  This partition table editor is very
     easy to use (in the author's opinion), but you  will  probably  hate  it.
     You  can  move all over the place with the arrow keys, change values, and
     make a mess of your partition table real  quick.   So  if  you  get  into
     trouble,  type  'q'  to  quit,  'n' to not write the table, and RETURN to
     start over.  Use the '?' key to get help.

     With the '+' and '-' keys you can select the disk device to  install  on,
     probably  /dev/hd0,  the first hard disk.  Type 'r' to load the partition
     table of the selected disk.  Either create one new partition by modifying
     a partition marked "None", or reuse an existing partition by changing its
     type to "MINIX" (hex code 81).  The FIPS program can be used under MS-DOS
     to  shrink an MS-DOS partition.  FIPS splits the MS-DOS partition in two,
     so one of the two can be used for MINIX.  You have to be absolutely  sure
     which  one.   When  in doubt, first use the FDISK program under MS-DOS to
     delete the extra partition, and let MINIX part create a new one.  DO  NOT
     use  part to shrink an existing partition!  MINIX needs a partition of at
     least 20 MB, but not larger than 128 MB (MINIX-86) or 1  GB  (MINIX-386).
     The system needs 30 MB in compiled state.

     The script then wants to know the name of the partition  you've  created,
     this  name  is  probably still visible on the screen (hd2, hd6, something
     like that.)  The new partition table is reloaded into  the  disk  driver,
     and  the  new MINIX partition is carved up into two subpartitions, a 1440
     kb root and the rest for /usr.

     After  making  /usr,  it  is  immediately  put  to  use  to  replace  the
     installation /usr file system so that you can remove the USR diskette and
     insert the ROOT diskette (unless they are one and the  same).   The  root
     file system is filled with the contents of the ROOT diskette and slightly
     patched up to work on the hard disk (/etc/fstab.)

     To compute the size of the so-called "second level block cache"  you  are
     asked to specify the RAM size of your machine.  If you have plenty, i.e 4
     MB or more then simply hit RETURN,  otherwise  enter  the  size  of  your
     system RAM in kilobytes.

     You can now skip the next section and move to "TESTING", but  it  may  be
     instructive to read it anyway.

  6. MANUAL INSTALLATION
     The instructions that follow are at a very low level and require  you  to
     be very careful.  The big advantage is that you know precisely what tools
     have been used and how everything works.  The disadvantage  is  that  you
     may easily make a mistake that either forces you to start over if you are
     lucky, or wipes out the contents of your hard disk if you are not.   Only
     if  you  really  want  to  do something different should you use a manual
     installation.  Slavishly following the steps shown below will  only  make
     you end up with the same result as an automatic installation.

     Run part to make partitions to load the system into.  The best  thing  to
     do  is  to  make one large primary partition of type "MINIX" and to carve
     this partition up into  three  subpartitions  for  root  and  /usr.   The
     assumption  is  that  you will use the second partition on the first hard
     disk, /dev/hd2, and that hd2a is the root subpartition and hd2c is  /usr.
     If  you  want  to  use  the  first  partition on the second hard disk for
     instance, then substitute hd6 and hd6[ac] for the above.  On a SCSI  disk
     it  will  be  /dev/sd2  for the second partition on the disk at target 0.
     See the section on devices below, and the manual pages of part(8), hd(4),
     and  sd(4).   Start  part  and  select  the  whole  hard disk device (the
     "multiple of 5" device) that you want to  install  MINIX  onto.   In  our
     example it will be /dev/hd0.

     Use part to make a single partition in the  primary  partition  table  of
     type  "MINIX",  then hit '>' on this new partition to make a subpartition
     table.

     For the root subpartition you are advised to use 1440  kb  exactly.   You
     can  make  it larger if you want to, but it is advisable never to let the
     contents outgrow a floppy.  (The ROOT diskette is a copy of a  root  file
     system, and will be used to fill your root subpartition.)

     The second subpartition is either empty or a "scratch" partition.   MINIX
     no longer uses the b subpartition for anything useful anymore, but it has
     become customary to have root on a and /usr  on  c.   (You  are  free  to
     ignore this convention, of course.)

     Use the rest of the partition for the /usr c subpartition.

     When you are done check  that  /dev/hd2a  is  active  (the  *  after  the
     partition number) so you can boot from it later.

     If your  disk  has  bad  blocks  then  don't  put  the  root  or  scratch
     subpartition  on  top  of  them.  Make sure the inode tables in the other
     partitions don't have bad blocks either.  You can put  the  subpartitions
     out  of order on the disk if that helps.  Subpartition tables, other than
     the main partition table, are not sorted by the driver.

     After making the partitions you do not have to reboot.  The  disk  driver
     reloads  the  partition  tables  on the next access if the disk is not in
     use.  (Open or mounted.)

     To be able to boot from /dev/hd2a you must place a  master  bootstrap  in
     /dev/hd2.   It  has  been placed there by part if it told you that it was
     creating a new partition table, but

          installboot -m /dev/hd2 /usr/mdec/masterboot

     will put it there for sure.

     You will start by making a file system for /usr and filling it partially.
     This  may  seem  to be out of order, but you can't insert the ROOT floppy
     right now.

          mkfs /dev/hd2c
          readall -b /dev/hd2c | sh
          mount /dev/hd2c /mnt
          cpdir -v /usr /mnt

     This will create a file system on /dev/hd2c, mount it on /mnt,  and  copy
     the  contents  of  the USR floppy onto it.  The call to readall marks bad
     blocks on the file system as unusable, you can omit this on a drive known
     to be spotless (IDE or SCSI.)

     You can now use the new /usr in place of the USR floppy:

          umount /dev/hd2c
          umount /dev/fd0     # fd0c if combined
          mount /dev/hd2c /usr

     This little dance has freed up your floppy drive, so  please  remove  the
     USR diskette and replace it by the ROOT diskette.  Make a file system for
     the root with at least 512 inodes (files), and fill it from the floppy:

          mkfs -i 512 /dev/hd2a
          mount /dev/fd0 /fd0
          mount /dev/hd2a /mnt
          cpdir -v /fd0 /mnt
          umount /dev/fd0

     Remove /mnt/etc/issue to get rid of the "use setup" message  that  greets
     you  when  you boot, and edit the file /mnt/etc/fstab to name the devices
     MINIX has been installed on.  In our example it should look like this:

          root=/dev/hd2a
          usr=/dev/hd2c

     Unmount the new root:

          umount /dev/hd2a

     Make it bootable:

          installboot -d /dev/hd2a /usr/mdec/bootblock boot

     The automatic script would now  set  the  rootdev  and  ramimagedev  boot
     variables.   You  can  do  this now using the edparams command, but it is
     easier to postpone it until the testing phase.  The settings should be:

          rootdev=hd2a
          ramimagedev=hd2a

  7. TESTING
     By now a new MINIX system is present on your hard disk.  Time to  see  if
     it  works.   Leave the ROOT diskette in the drive and type halt.  You are
     now going to use the power of the Boot Monitor on the  diskette  to  boot
     the  MINIX  partition on the hard disk.  Use the monitor command boot hd2
     to boot the primary partition MINIX has been installed in.  (It is  "hd2"
     in  our  example.)  For a SCSI disk you will have to use a 'hd' name too.
     The monitor uses the BIOS, so you will have to treat  it  as  a  "normal"
     disk at this point.

     The hard disk bootstrap is now showing the menu again.  You can type  '='
     to start MINIX, but you probably want to change the boot parameters.  Hit
     ESC once more to get to the command prompt.  The command set  shows  what
     the  current parameters are.  Here is an example that shows how to make a
     menu to either start MINIX or boot MS-DOS:



          minix(=,MINIX) boot
          dos(d,MS-DOS) boot hd1
          save

     MS-DOS is assumed to be in the  first  partition  in  the  example  above
     (hd1).   When  finished  type menu to see if the menu looks right.  If so
     hit '=' to start MINIX.  Log in as root.

  8. ADDING PROGRAMS AND SOURCES TO /usr
     The setup command can also be used to add files from floppy sets  to  the
     system.   The USR.TAZ (programs and stuff), SYS.TAZ (system sources), and
     CMD.TAZ (commands  sources)  are  all  installed  relative  to  the  /usr
     directory, so the command to use three times is

          setup /usr

     Setup will ask for the size of data on the floppies, which is by  default
     simply  the  entire  floppy.   You  will see some "Cannot make directory"
     errors while extracting, as some directories already exist.  Ignore these
     messages.   You  need the USR.TAZ set if you want a working MINIX system,
     SYS.TAZ if you want recompile the system or study it, and CMD.TAZ if  you
     also  want  the sources of the commands.  On a disk space starved machine
     you could opt to do  without  the  commands  sources,  as  they  are  not
     absolutely necessary to understand MINIX.

     If your machine does not have enough memory to run setup /usr  then  type
     these commands manually:

          cd /usr
          vol /dev/fd0 | uncompress | tar xvfp -

  9. NAMES
     A standalone machine will have to be given a name.  As root type

          echo name >/etc/hostname.file

     to change the host name of your machine to name.

  10. ACTIVE ON BOOT
     You  may  want  to  make  the  MINIX  partition  active  so  that  it  is
     automatically  booted.  With MS-DOS fdisk or MINIX part, mark the primary
     partition that contains MINIX active.  Using the menu  you  made  earlier
     you  can  boot  either  MINIX  or MS-DOS at a keypress.  You can even set
     timeouts.  To boot MINIX automatically after 5 seconds:

          main() {trap 5000 minix; menu}




     See monitor(8) for all the details on the monitor.

     If you don't trust this then you can rig up a  diskette  that  boots  the
     MINIX partition when left in the drive:

          installboot -m 2 /dev/fd0 /usr/mdec/masterboot

     The number 2 indicates the hard disk partition that must be  booted,  you
     can use the numbers 1 to 9 for hd1 to hd9.

  11. DEVICES
     A crash course on the MINIX devices in /dev:   The  two  hard  disks  are
     named  hd0  and hd5.  These "multiple of five" devices address the entire
     hard disk, from  the  first  to  the  last  byte.   Each  disk  has  four
     partitions,  for  disk 0 they are hd1, hd2, hd3, and hd4.  And for disk 1
     they are named hd6, hd7, hd8, and hd9.  These partitions may contain file
     systems,  hd1  often contains the MS-DOS "C:" file system.  MINIX can use
     these partitions for file systems too, but you can also partition one  of
     these  "primary  partitions"  into  four  so-called "subpartitions".  The
     subpartitions of hd1 are named hd1a, hd1b, hd1c,  and  hd1d.   The  other
     partitions  may have four subpartitions that are named in the same way by
     adding a letter from a to d.  So one disk may have four  partitions,  and
     16 subpartititions total.  SCSI disks are named in the same way, from sd0
     to sd39d for all possible devices for all eight SCSI  targets.   The  two
     floppy  disks are fd0 and fd1.  Each may have four partitions named fd0a,
     fd0b, ...  fd1d.  The command MAKEDEV knows  how  to  make  devices,  and
     DESCRIBE  can  tell  you  what an unknown device may be, or even what all
     devices in  /dev  may  be  if  called  without  arguments.   Devices  are
     described  fully  in dev(4), and in the device specific manual pages like
     fd(4) and hd(4).

  12. EDITORS
     The editors available are elvis  (a  vi  clone),  elle  (a  simple  emacs
     clone),  and the old MINIX mined editor.  Of these editors only elvis can
     recover your file after a system  crash.   Only  mined  is  available  at
     installation  time.   (All you need to know about mined right now is that
     CTRL-X gets you out of it.)

  13. INSTALLING ON A SCSI DISK
     Using a disk other than an (IDE) hd disk complicates things a  bit.   The
     Boot  Monitor  uses the BIOS, so it names all disks with hd names.  So it
     is boot hd1 to boot partition 1, and ramimagedev=sd2a to tell  MINIX  its
     root partition.  If you have both a normal and a SCSI disk then the disks
     may be hd0 and hd5 to the Monitor, and hd0 and sd0 to MINIX.

  14. NATIONAL KEYBOARDS
     The  directory  /usr/lib/keymaps  contains  keymap  tables  for   several
     national keyboards.  If you have a German keyboard for instance, then


          loadkeys /usr/lib/keymaps/german.map

     will load the German key translation  table  into  the  keyboard  driver.
     Copy  the  map  to  /etc/keymap once MINIX is installed on the hard disk,
     because having to type a key sequence like one of these:

          loadkezs -usr-lib-kezmaps-german.map
          loqdkeys =usr=lib=key,qps=french.,qp

     on a reboot gets a bit annoying after a while.  Send corrections and  new
     keymaps  to  the  person  named  below.  (Do not send a Dutch keymap, buy
     yourself a real keyboard instead.)

SUGGESTIONS
     Below are a few useful suggestions.  Some of the information  can  be  of
     use in other situations than described here.

  15. VIRTUAL CONSOLES
     Hold down the ALT key and press the left or right arrow key, F1,  or  F2.
     This  switches  the console between two login sessions.  (Unless you have
     an old mono adapter, because virtual consoles sit in video memory, and  a
     mono adapter only has memory for one.)

     Note that kernel messages, including function key output, only appear  on
     the  first  console.   This  may  be  confusing,  but  it keeps the other
     consoles clean.

  16. LOW ON MEMORY
     The normal installation requires that you have enough memory for a  large
     RAM disk.  You can still install MINIX normally if you either have a high
     density diskette drive for a combined root+usr floppy, or  you  have  two
     floppy  drives  of  at  least 720 kb.  Before booting you have to set the
     variable rootdev to the same value as ramimagedev.  This is slower then a
     RAM disk, but saves a lot of memory.

     The automatic installation script knows how to handle this new situation.
     If you install manually then you have to use

          cpdir -vx / /mnt

     to copy the root device to disk.  When it is time to fill  /usr  and  you
     only  have  one  floppy drive then hit DEL to get out of the installation
     script and reboot as described in "TESTING".  You  can  then  finish  the
     installation  manually.  See the XT640K.TXT file for more advice on small
     machines.





  17. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE
     If you only have one 720 kb floppy drive and your system is low on memory
     then  you  can  use  the  TINYROOT.MNX boot image.  This image contains a
     small kernel with only the BIOS  disk  driver,  and  a  small  root  file
     system.   You  can  use  this  disk to boot your machine.  Use the normal
     ROOT.MNX to install the root file system.  Keep booting your machine with
     TINYROOT until you have compiled a small kernel for your system.  Use the
     rootdev boot variable to select the hard disk root file system.   Do  not
     use  TINYROOT  for  anything  other  than  booting,  always use ROOT when
     mentioned.

  18. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE
     If you would like to install from floppy drive 1 then you need to copy at
     least one sector from the USR image onto a diskette for drive 0.  The USR
     bootstrap has been rigged to boot the other drive.

  19. INSTALLING ON A SECOND HARD DISK
     MINIX doesn't care if it is installed on the second disk of a system with
     two  disks.  The only problem is to get it booted.  You can either rig up
     a diskette to boot MINIX as shown earlier, or you can use the same  trick
     on the first disk.  The command

          installboot -m 5 /dev/hd0 /usr/mdec/masterboot

     will lock the first disk into booting the second disk.   Note  that  this
     command modifies the disk outside a MINIX partition, overwriting a bit of
     code that has likely been put there by MS-DOS fdisk.  First  verify  that
     the  Boot  Monitor  can  boot an MS-DOS partition, because then the MINIX
     master bootstrap can do it too.

  20. LOTS OF MEMORY ON A 286
     You will have a hard time making MINIX use up 3 MB  memory.   Memory  you
     can  spare  can be used for a "second level block cache" on the RAM disk.
     The File System uses the second level  cache  to  store  copies  of  disk
     blocks that are pushed out of the normal (primary) block cache.  The size
     of the primary cache is compiled into the FS server, but the size of  the
     second  level cache can be set with the ramsize boot variable.  Set it to
     a number between 0 and 512.  512 kilobytes is enough to keep most of  the
     compiler  cached.   You must have extended memory; expanded memory is not
     supported.

  21. LOTS OF MEMORY ON A 386+
     Processes can be as big as you would like on a 386, but in practice 4  MB
     is  plenty  for  all  your  processes.  The installation script sets up a
     second level cache for MINIX-386  of  up  to  1024  kilobytes.   This  is
     because the default file system cache is only 80 kb.  Your first point of
     call is to get rid of the poorly performing second level cache by setting
     ENABLE_CACHE2  to  0  and  to  assign the memory used by it to the normal
     block  cache  by  enlarging  the  appropriate  NR_BUFS  and   NR_BUF_HASH
     constants  in  <minix/config.h> with as much as you can spare.  (1024 for
     NR_BUFS is the minimum to keep cc -c cached.  2048 is then a  nice  value
     for  NR_BUF_HASH.)  Disable the second level cache, compile a new kernel,
     reboot and set ramsize to 0.

  22. LOTS OF DISK SPACE
     The maximum file system size is 1 GB for MINIX-386 and 128 MB for  MINIX-
     86.   (MINIX-86  can  handle  larger  file  systems, but fsck can't check
     them.)  Note that a MINIX file  system  can  only  contain  65535  inodes
     (files),  so  the average file should be 16 kb to completely fill it.  It
     may be better to make two smaller  file  systems.   Besides,  fsck  takes
     forever on a large file system.

SYSTEM ADMINISTRATION
     The system has been set up with the idea that working as root  is  a  bad
     thing  to  do.   As  root  you  are in no way protected from doing stupid
     things.  So don't do development as root,  but  work  as  bin!   Only  in
     exceptional  cases  do  you  want  to become root.  Being root is fun for
     wannabe hackers; administrators know better.

     To make life easier for bin, some programs  like  su(1),  install(1)  and
     shutdown(8)  treat bin and other members of the operator group as special
     and allow them the privileges of root.  (One  is  an  operator  if  one's
     group id is zero.)  Operators should share the shadow password of root by
     having ##root in their password field.  This way they all have  one  face
     (password)  to  the  outside world, forming no greater security risk than
     root alone.

     The home directory of bin contains one important Makefile.  You  can  use
     it  to recompile all the commands and libraries of the system.  Type make
     to see the usage message.  If you want to compile just one  command  then
     you  can  simply  type  make to do so.  To put it in its proper place you
     have to type make install.  Read the Makefiles in the  commands  and  lib
     subdirectories  to understand how everything is put together.  If you are
     tight on memory then make may fail to traverse down the source  tree  and
     also  compile  things.   You will have to type make in each subdirectory.
     You can run make in /usr/src at the end to see if you've missed something
     or not.

     The login shell of bin is ash, the BSD shell.  It has  been  modified  to
     offer  simple  line editing using the editline(3) library.  Ash is rather
     big, so you may have to change bin's shell back to /bin/sh  with  chsh(1)
     if  you are low on memory.  Do not change root's shell to ash, and do not
     replace /bin/sh by ash.  It may run out of memory at the wrong moment.

     The kernel is not compiled from the  master  Makefile.   To  make  a  new
     kernel you have to step into the tools directory.  There you can run four
     different make commands:



     make This makes all the different kernel parts and combines them  in  the
          file named image.

     make fdboot
          As above and then makes a boot floppy that you can  use  to  restart
          your system with.  You are prompted for the floppy device name.

     make hdboot
          First makes the image file and then copies  it  into  the  directory
          /minix.   If there are already two images in that directory then the
          newest image will be removed to make space for this newer image.  It
          is  assumed  that  the oldest image is the most stable system image,
          one that always works, and that the newest  image  is  experimental.
          Check  beforehand  what  /minix contains before you run make hdboot.
          Remove the oldest image if you want  another  image  to  become  the
          stable  image.   The Boot Monitor chooses the newest image in /minix
          to boot.  You can use the monitor  command  ls  minix  to  view  the
          images  present,  and set the image variable to the full name of the
          image you want to use instead  if  the  newest  doesn't  work.   The
          images  in  /minix  are  named  using  the MINIX release and version
          numbers with an extra  revision  number  added  to  distinguish  the
          images.

     The first new kernel you would like to make is one  configured  for  your
     system.   The  kernel  you  are  running  now  contains several hard disk
     drivers you don't need, and it does not have a TCP/IP server that you may
     want  to  have.   In <minix/config.h> you can find a number of ENABLE_XXX
     variables that can be set to 0 to exclude, or 1 to include  a  particular
     driver.   The  full  list of configurable parameters and what they do are
     described in config(8).  It is invaluable in figuring out what to  change
     and how in <minix/config.h>.

     Configuring a new kernel is sometimes not enough to enable  new  devices,
     you sometimes need to use the MAKEDEV command to make new device files in
     /dev.  For pseudo-ttys you also have to check  if  /etc/ttytab  mentiones
     the new devices.

     New additions to the system can be made in the /usr/local tree.  An empty
     directory  tree has been set up for you and binaries and manual pages are
     already in the search paths.  You can make a  new  user  entry  with  the
     adduser command.

     The TZ variable in /etc/profile tells the time zone offset from the  wall
     clock  time  to  GMT.   You  have  to change it for your time zone.  (See
     TZ(5).)

     The function keys produce debug dumps, showing various  interesting  data
     about  the system.  F1 lists processes and F5 shows ethernet stats, which
     may be of use now.  Read console(4) to know all the details of the screen
     and keyboard.

  23. SYSTEM SHUTDOWN
     You can't just turn a MINIX system off.  MINIX must be told to flush  the
     modified   data   in   the   file  system  cache  first.   The  following
     commands/keystrokes can be used to exit MINIX properly:

     shutdown
          First alert all users  and  then  all  processes  of  the  impending
          shutdown then halt or reboot the system in one of various ways.  See
          shutdown(8).

     reboot / halt
          Alert all processes of the system shutdown then reboot or halt.

     CTRL-ALT-DEL
          Halt the system by running shutdown -h now.

     MINIX  halts  by  returning  to  the  Boot  Monitor,  MINIX  reboots   by
     instructing  the monitor to reboot MINIX.  (MINIX is just a subprocess to
     the monitor.)  Either halt MINIX  and  use  monitor  commands  to  escape
     MINIX, or use shutdown -R to reset the system.

     When exiting MINIX running under DOS the Boot Monitor's exit command will
     return  you  to  the DOS prompt.  The Boot Monitor and MINIX are together
     just a pretty big DOS program as far DOS is concerned.

FILES

     /usr/ast    Honorary home directory of Andrew S. Tanenbaum.   Doubles  as
                 the place where the default setup for a new user is found.

SEE ALSO
     dosminix(8),  monitor(8),  boot(8),  part(8),  mkfs(1),  mount(8),  M(8),
     fstab(5),  hier(7),  config(8),  console(4),  dev(4),  adduser(8), TZ(5),
     mkdist(8), shutdown(8).
     "Operating  Systems  -  Design  and  Implementation  2/e"  by  Andrew  S.
     Tanenbaum and Albert S. Woodhull.

NOTES
     The  notation  <file.h>  refers  to  a  C  language   include   file   in
     /usr/include.

     Root and bin do not have the current directory in  their  program  search
     path  to  avoid executing programs left around by malicious people.  This
     means that to run foo from the current directory, ./foo must be typed.

BUGS
     There are many PS/2 models, all different.  Some  will  run  MINIX,  some
     won't,  some  crippled  if  you  lie to MINIX by setting processor to 86.
     Almost no PS/2 has a standard disk, so setting hd to esdi or bios will be
     necessary.
     Except for the floppy driver, none of the DMA based  drivers  know  about
     DMA  being  limited to a 24 bits address, i.e. the first 16 MB.  So under
     MINIX-386 you run a slight risk that a tar or dd command may use a buffer
     above  16  MB  for  reading  or writing to a character device.  This only
     happens if the low 16 MB is taken by some huge processes,  and  you  have
     more than 16 MB, of course.

AUTHOR
     Kees J. Bot (kjb@cs.vu.nl)