USAGE.8
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:35k
源码类别:

操作系统开发

开发平台:

C/C++

  1. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  2. NAME
  3.      usage - installing and using Minix
  4. DESCRIPTION
  5.      This manual page describes the installation  and  use  of  Minix  from  a
  6.      System  Administrators point of view.  It contains an installation guide,
  7.      instructions on how to do the initial configuration and some other  info.
  8.      Please  read  this  document entirely before attempting to install Minix.
  9.      The installation  steps  are  in  the  proper  order,  but  not  all  the
  10.      information  you  may  need  is  presented  at  the  right moment.  Other
  11.      detailed information that may be useful  can  be  found  in  boot(8)  and
  12.      hier(7).
  13.   1. REQUIREMENTS
  14.      The minimum system Minix can be installed on comfortably is an IBM  PC/AT
  15.      or  PS/2  with a 286 processor, 2 Mb memory, a 720 kb diskette drive, and
  16.      30 Mb free space on an AT, ESDI, or SCSI hard disk (the latter controlled
  17.      by  an  Adaptec  1540.)   Minix  for the 386 (Minix-386 for short) can be
  18.      installed on a machine with at least a 386sx processor and 3 Mb memory.
  19.   2. MINIX INSTALLATION BACKGROUND
  20.      The objective of the installation is to create a partition on  your  disk
  21.      and  to put Minix into it.  Minix really requires two partitions however,
  22.      so the single "primary" partition is split into two subpartitions.  The a
  23.      subpartition  will  contain  the root file system, and the c subpartition
  24.      will contain the /usr file system.  What MS-DOS calls "drives",  i.e  C:,
  25.      D:,  E:,  Minix  calls "file systems".  Minix does not use drive letters,
  26.      but requires that one file system is made a part of another  file  system
  27.      by "mounting" one on the other.  The "root" file system is always present
  28.      and starts with the directory "/", the root of the directory  tree.   The
  29.      root  file  system contains a few programs in /bin, device files in /dev,
  30.      and configuration files in /etc.  This is just enough to get  the  system
  31.      started.   Minix  will  soon extend its directory tree by mounting a file
  32.      system on the /usr directory.  What is henceforth known as the /usr  file
  33.      system  contains  all  Minix programs in /usr/bin, file system sources in
  34.      /usr/src, etc, etc.  The ROOT image contains the complete Minix root file
  35.      system,  but  USR  contains  just a small subset of the /usr file system,
  36.      with just enough utilities to install  Minix.   The  complete  /usr  file
  37.      system  is  split  up into the USR.TAZ, SYS.TAZ and CMD.TAZ archives that
  38.      are installed later to fill /usr.
  39.      Let's suppose your first hard disk, which has device name  /dev/hd0,  has
  40.      MS-DOS  already  present  in  the first primary partition (/dev/hd1), and
  41.      some free space left after that.  After Minix is installed in  that  free
  42.      space the disk will look like this:
  43.          /dev/hd0    Whole hard disk #0
  44.            /dev/hd1    MS-DOS C: drive
  45.            /dev/hd2    Minix primary partition
  46.              /dev/hd2a   Minix root partition
  47.                                                                              1
  48. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  49.              /dev/hd2c   Minix /usr partition
  50.      /dev/hd0 is  the  sum  of  a  partition  table,  /dev/hd1  and  /dev/hd2.
  51.      Likewise  is  /dev/hd2  the  sum  of  a subpartition table, /dev/hd2a and
  52.      /dev/hd2c.  Read the "DEVICES" sections for  more  information  on  Minix
  53.      devices.
  54.   3. INSTALLATION
  55.      You can install Minix automatically or manually as described the sections
  56.      below.  The end result is the same, but manual installation allows one to
  57.      deviate from the preconfigured choices.  You may wish to read the  manual
  58.      pages  of  the  programs used below before you start.  You may especially
  59.      want to read boot(8) if your machine is different from what the  majority
  60.      buys,  because  you  may  need  to set a few boot parameters to configure
  61.      drivers.  To do this type ESC to get to the Boot Monitor prompt, set  the
  62.      appropriate  variables,  use  save  to  store  the  settings  and menu to
  63.      continue where you left off.
  64.      To install the system you need two diskettes: a  bootable  root  diskette
  65.      and  a  diskette  full  of  binaries to use as /usr.  These diskettes are
  66.      named ROOT and USR.  These two diskettes may also be combined on a single
  67.      high density diskette.  In that case the USR part is on the c partition.
  68.      Insert the ROOT diskette, boot the machine and type '=' to the menu.  The
  69.      Minix  kernel  is  loaded  and  takes  control when you see the copyright
  70.      banner.  After loading the root diskette into the RAM disk  you  will  be
  71.      asked to finish the name of the device to mount on /usr.  Type fd0c for a
  72.      diskette that contains both ROOT and USR, otherwise replace ROOT  by  USR
  73.      and type fd0.  Login as root.
  74.   4. AUTOMATIC INSTALLATION
  75.      Type setup to start the installation script.  First it offers to  install
  76.      a  national keyboard map.  The names should be clear, except for us-swap,
  77.      which swaps the CTRL and CAPS LOCK keys of a standard US  style  keyboard
  78.      for  people who believe that the natural place of CTRL is next to A.  The
  79.      default suggested between [ and ] is the US standard keyboard.
  80.      The next thing to do is to make a partition, for this you are placed in a
  81.      partition  table  editor named part.  This partition table editor is very
  82.      easy to use (in the author's opinion), but you  will  probably  hate  it.
  83.      You  can  move all over the place with the arrow keys, change values, and
  84.      make a mess of your partition table real  quick.   So  if  you  get  into
  85.      trouble,  type  'q'  to  quit,  'n' to not write the table, and RETURN to
  86.      start over.  Use the '?' key to get help.
  87.      With the '+' and '-' keys you can select the disk device to  install  on,
  88.      probably  /dev/hd0,  the first hard disk.  Type 'r' to load the partition
  89.      table of the selected disk.  Either create one new partition by modifying
  90.      a partition marked "None", or reuse an existing partition by changing its
  91.      type to "MINIX" (hex code 81).  The FIPS program can be used under MS-DOS
  92.                                                                              2
  93. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  94.      to shrink an MS-DOS partition.  FIPS splits the DOS partition in two,  so
  95.      one  of  the  two  can be used for Minix.  You have to be absolutely sure
  96.      which one.  When in doubt, first use  the  FDISK  program  under  DOS  to
  97.      delete  the extra partition, and let Minix part create a new one.  DO NOT
  98.      use part to shrink an existing partition!  Minix needs a partition of  at
  99.      least  20  Mb, but not larger than 128 Mb (Minix-86) or 1 Gb (Minix-386).
  100.      The system needs 30 Mb in compiled state.
  101.      The script then wants to know the name of the partition  you've  created,
  102.      this  name  is  probably still visible on the screen (hd2, hd6, something
  103.      like that.)  The new partition table is reloaded into  the  disk  driver,
  104.      and  the  new Minix partition is carved up into two subpartitions, a 1440
  105.      kb root and the rest for /usr.
  106.      After  making  /usr,  it  is  immediately  put  to  use  to  replace  the
  107.      installation /usr file system so that you can remove the USR diskette and
  108.      insert the ROOT diskette (unless they are one and the  same).   The  root
  109.      file system is filled with the contents of the ROOT diskette and slightly
  110.      patched up to work on the hard disk (/etc/fstab.)
  111.      To compute the size of the so-called "second level block cache"  you  are
  112.      asked to specify the RAM size of your machine.  If you have plenty, i.e 4
  113.      Mb or more then simply hit RETURN,  otherwise  enter  the  size  of  your
  114.      system RAM in kilobytes.
  115.      You can now skip the next section and move to "TESTING", but  it  may  be
  116.      instructive to read it anyway.
  117.   5. MANUAL INSTALLATION
  118.      The instructions that follow are at a very low level and require  you  to
  119.      be very careful.  The big advantage is that you know precisely what tools
  120.      have been used and how everything works.  The disadvantage  is  that  you
  121.      may easily make a mistake that either forces you to start over if you are
  122.      lucky, or wipes out the contents of your hard disk if you are not.   Only
  123.      if  you  really  want  to  do something different should you use a manual
  124.      installation.  Slavishly following the steps shown below will  only  make
  125.      you end up with the same result as an automatic installation.
  126.      Run part to make partitions to load the system into.  The best  thing  to
  127.      do  is  to  make one large primary partition of type "MINIX" and to carve
  128.      this partition up into  three  subpartitions  for  root  and  /usr.   The
  129.      assumption  is  that  you will use the second partition on the first hard
  130.      disk, /dev/hd2, and that hd2a is the root subpartition and hd2c is  /usr.
  131.      If  you  want  to  use  the  first  partition on the second hard disk for
  132.      instance, then substitute hd6 and hd6[ac] for the above.  On a SCSI  disk
  133.      it  will  be  /dev/sd2  for the second partition on the disk at target 0.
  134.      See the section on devices below, and the manual pages of part(8), hd(4),
  135.      and  sd(4).   Start  part  and  select  the  whole  hard disk device (the
  136.      "multiple of 5" device) that you want to  install  Minix  onto.   In  our
  137.      example it will be /dev/hd0.
  138.                                                                              3
  139. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  140.      Use part to make a single partition in the  primary  partition  table  of
  141.      type  "MINIX",  then hit '>' on this new partition to make a subpartition
  142.      table.
  143.      For the root subpartition you are advised to use 1440  kb  exactly.   You
  144.      can  make  it larger if you want to, but it is advisable never to let the
  145.      contents outgrow a floppy.  (The ROOT diskette is a copy of a  root  file
  146.      system, and will be used to fill your root subpartition.)
  147.      The second subpartition is either empty or a "scratch" partition.   Minix
  148.      no longer uses the b subpartition for anything useful anymore, but it has
  149.      become customary to have root on a and /usr  on  c.   (You  are  free  to
  150.      ignore this convention, of course.)
  151.      Use the rest of the partition for the /usr c subpartition.
  152.      When you are done check  that  /dev/hd2a  is  active  (the  *  after  the
  153.      partition number) so you can boot from it later.
  154.      If your  disk  has  bad  blocks  then  don't  put  the  root  or  scratch
  155.      subpartition  on  top  of  them.  Make sure the inode tables in the other
  156.      partitions don't have bad blocks either.  You can put  the  subpartitions
  157.      out  of order on the disk if that helps.  Subpartition tables, other than
  158.      the main partition table, are not sorted by the driver.
  159.      After making the partitions you do not have to reboot.  The  disk  driver
  160.      reloads  the  partition  tables  on the next access if the disk is not in
  161.      use.  (Open or mounted.)
  162.      To be able to boot from /dev/hd2a you must place a  master  bootstrap  in
  163.      /dev/hd2.   It  has  been placed there by part if it told you that it was
  164.      creating a new partition table, but
  165.           installboot -m /dev/hd2 /usr/mdec/masterboot
  166.      will put it there for sure.
  167.      You will start by making a file system for /usr and filling it partially.
  168.      This  may  seem  to be out of order, but you can't insert the ROOT floppy
  169.      right now.
  170.           mkfs /dev/hd2c
  171.           readall -b /dev/hd2c | sh
  172.           mount /dev/hd2c /mnt
  173.           cpdir -v /usr /mnt
  174.      This will create a file system on /dev/hd2c, mount it on /mnt,  and  copy
  175.      the  contents  of  the USR floppy onto it.  The call to readall marks bad
  176.      blocks on the file system as unusable, you can omit this on a drive known
  177.      to be spotless (IDE or SCSI.)
  178.                                                                              4
  179. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  180.      You can now use the new /usr in place of the USR floppy:
  181.           umount /dev/hd2c
  182.           umount /dev/fd0     # fd0c if combined
  183.           mount /dev/hd2c /usr
  184.      This little dance has freed up your floppy drive, so  please  remove  the
  185.      USR diskette and replace it by the ROOT diskette.  Make a file system for
  186.      the root with at least 512 inodes (files), and fill it from the floppy:
  187.           mkfs -i 512 /dev/hd2a
  188.           mount /dev/fd0 /fd0
  189.           mount /dev/hd2a /mnt
  190.           cpdir -v /fd0 /mnt
  191.           umount /dev/fd0
  192.      Remove /mnt/etc/issue to get rid of the "use setup" message  that  greets
  193.      you  when  you boot, and edit the file /mnt/etc/fstab to name the devices
  194.      Minix has been installed on.  In our example it should look like this:
  195.           root=/dev/hd2a
  196.           usr=/dev/hd2c
  197.      Unmount the new root:
  198.           umount /dev/hd2a
  199.      Make it bootable:
  200.           installboot -d /dev/hd2a /usr/mdec/bootblock boot
  201.      The automatic script would now  set  the  rootdev  and  ramimagedev  boot
  202.      variables.   You  can  do  this now using the edparams command, but it is
  203.      easier to postpone it until the testing phase.  The settings should be:
  204.           rootdev=hd2a
  205.           ramimagedev=hd2a
  206.   6. TESTING
  207.      By now a new Minix system is present on your hard disk.  Time to  see  if
  208.      it  works.   Leave the ROOT diskette in the drive and type halt.  You are
  209.      now going to use the power of the Boot Monitor on the  diskette  to  boot
  210.      the  Minix  partition on the hard disk.  Use the monitor command boot hd2
  211.      to boot the primary partition Minix has been installed in.  (It is  "hd2"
  212.      in  our  example.)  For a SCSI disk you will have to use a 'hd' name too.
  213.      The monitor uses the BIOS, so you will have to treat  it  as  a  "normal"
  214.      disk at this point.
  215.                                                                              5
  216. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  217.      The hard disk bootstrap is now showing the menu again.  You can type  '='
  218.      to start Minix, but you probably want to change the boot parameters.  Hit
  219.      ESC once more to get to the command prompt.  The command set  shows  what
  220.      the  current parameters are.  Here is an example that shows how to make a
  221.      menu to either start Minix or boot MS-DOS:
  222.           minix(=,Minix) {boot}
  223.           dos(d,MS-DOS) {boot hd1}
  224.           save
  225.      MS-DOS is assumed to be in the  first  partition  in  the  example  above
  226.      (hd1).   When  finished  type menu to see if the menu looks right.  If so
  227.      hit '=' to start Minix.
  228.   7. ADDING PROGRAMS AND SOURCES TO /usr
  229.      The setup command can also be used to add files from floppy sets  to  the
  230.      system.   The USR.TAZ (programs and stuff), SYS.TAZ (system sources), and
  231.      CMD.TAZ (commands  sources)  are  all  installed  relative  to  the  /usr
  232.      directory, so the command to use three times is
  233.           setup /usr
  234.      Setup will ask for the size of data on the floppies, which is by  default
  235.      simply  the  entire  floppy.   Don't worry if you see a few "File exists"
  236.      errors while extracting, as some directories already exist.  You need the
  237.      USR.TAZ  set  if  you  want  a  working Minix system, SYS.TAZ if you want
  238.      recompile the system or study it,  and  CMD.TAZ  if  you  also  want  the
  239.      sources  of  the  simple  commands.   On a disk space starved machine you
  240.      could opt to do without the commands sources, as they are not  absolutely
  241.      necessary to understand Minix.
  242.      If your machine does not have enough memory to run setup /usr  then  type
  243.      these commands manually:
  244.           cd /usr
  245.           vol /dev/fd0 | uncompress | tar xvfp -
  246.   8. NAMES
  247.      A standalone machine will have to be given a name.  As root type
  248.           echo name >/etc/hostname.file
  249.      to change the host name of your machine to name.
  250.   9. ACTIVE ON BOOT
  251.      You  may  want  to  make  the  Minix  partition  active  so  that  it  is
  252.      automatically  booted.   With  DOS  fdisk or Minix part, mark the primary
  253.      partition that contains Minix active.  Using the menu  you  made  earlier
  254.      you  can  boot  either  Minix  or  DOS  at  a keypress.  You can even set
  255.      timeouts.  To boot Minix automatically after 5 seconds:
  256.                                                                              6
  257. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  258.           main() {trap 5000 minix; menu}
  259.      See monitor(8) for all the details on the monitor.
  260.      If you don't trust this then you can rig up a  diskette  that  boots  the
  261.      Minix partition when left in the drive:
  262.           installboot -m 2 /dev/fd0 /usr/mdec/masterboot
  263.      The number 2 indicates the hard disk partition that must be  booted,  you
  264.      can use the numbers 1 to 9 for hd1 to hd9.
  265.   10. DEVICES
  266.      A crash course on the Minix devices in /dev:   The  two  hard  disks  are
  267.      named  hd0  and hd5.  These "multiple of five" devices address the entire
  268.      hard disk, from  the  first  to  the  last  byte.   Each  disk  has  four
  269.      partitions,  for  disk 0 they are hd1, hd2, hd3, and hd4.  And for disk 1
  270.      they are named hd6, hd7, hd8, and hd9.  These partitions may contain file
  271.      systems,  hd1  often contains the MS-DOS "C:" file system.  Minix can use
  272.      these partitions for file systems too, but you can also partition one  of
  273.      these  "primary  partitions"  into  four  so-called "subpartitions".  The
  274.      subpartitions of hd1 are named hd1a, hd1b, hd1c,  and  hd1d.   The  other
  275.      partitions  may have four subpartitions that are named in the same way by
  276.      adding a letter from a to d.  So one disk may have four  partitions,  and
  277.      16 subpartititions total.  SCSI disks are named in the same way, from sd0
  278.      to sd39d for all possible devices for all eight SCSI  targets.   The  two
  279.      floppy  disks are fd0 and fd1.  Each may have four partitions named fd0a,
  280.      fd0b, ...  fd1d.  The command MAKEDEV knows  how  to  make  devices,  and
  281.      DESCRIBE  can  tell  you  what an unknown device may be, or even what all
  282.      devices in  /dev  may  be  if  called  without  arguments.   Devices  are
  283.      described  fully  in dev(4), and in the device specific manual pages like
  284.      fd(4) and hd(4).
  285.   11. EDITORS
  286.      The editors available are elvis  (a  vi  clone),  elle  (a  simple  emacs
  287.      clone),  and the old Minix mined editor.  Of these editors only elvis can
  288.      recover your file after a system  crash.   Only  mined  is  available  at
  289.      installation  time.   (All you need to know about mined right now is that
  290.      CTRL-X gets you out of it.)
  291.   12. INSTALLING ON A SCSI DISK
  292.      Using a disk other than a hd disk complicates things  a  bit.   The  Boot
  293.      Monitor  uses  the  BIOS,  so it names all disks with hd names.  So it is
  294.      boot hd1 to boot partition 1, and ramimagedev=sd2a to tell Minix its root
  295.      partition.   If you have both a normal and a SCSI disk then the disks may
  296.      be hd0 and hd5 to the Monitor, and hd0 and sd0 to Minix.
  297.                                                                              7
  298. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  299.   13. NATIONAL KEYBOARDS
  300.      The  directory  /usr/lib/keymaps  contains  keymap  tables  for   several
  301.      national keyboards.  If you have a German keyboard for instance, then
  302.           loadkeys /usr/lib/keymaps/german.map
  303.      will load the German key translation  table  into  the  keyboard  driver.
  304.      Copy  the  map  to  /etc/keymap once Minix is installed on the hard disk,
  305.      because having to type a key sequence like one of these:
  306.           loadkezs -usr-lib-kezmaps-german.map
  307.           loqdkeys =usr=lib=key,qps=french.,qp
  308.      on a reboot gets a bit annoying after a while.  Send corrections and  new
  309.      keymaps  to  the  person  named  below.  (Do not send a Dutch keymap, buy
  310.      yourself a real keyboard instead.)
  311. SUGGESTIONS
  312.      Below are a few useful suggestions.  Some of the information  can  be  of
  313.      use in other situations than described here.
  314.   14. VIRTUAL CONSOLES
  315.      Hold down the ALT key and press the left or right arrow key, F1,  or  F2.
  316.      This  switches  the console between two login sessions.  (Unless you have
  317.      an old mono adapter, because virtual consoles sit in video memory, and  a
  318.      mono adapter only has memory for one.)
  319.      Note that kernel messages, including function key output, only appear  on
  320.      the  first  console.   This  may  be  confusing,  but  it keeps the other
  321.      consoles clean.
  322.   15. LOW ON MEMORY
  323.      The normal installation requires that you have enough memory for a  large
  324.      RAM disk.  You can still install Minix normally if you either have a high
  325.      density diskette drive for a combined root+usr floppy, or  you  have  two
  326.      floppy  drives  of  at  least 720 kb.  Before booting you have to set the
  327.      variable rootdev to the same value as ramimagedev.  This is slower then a
  328.      RAM disk, but saves a lot of memory.
  329.      The automatic installation script knows how to handle this new situation.
  330.      If you install manually then you have to use
  331.           cpdir -vx / /mnt
  332.      to copy the root device to disk.  When it is time to fill  /usr  and  you
  333.      only  have  one  floppy drive then hit DEL to get out of the installation
  334.      script and reboot as described in "TESTING".  You  can  then  finish  the
  335.      installation manually.
  336.                                                                              8
  337. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  338.   16. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE
  339.      If you only have one 720 kb floppy drive and your system is low on memory
  340.      then  you  can  use the TINYROOT boot image.  This image contains a small
  341.      kernel with only the BIOS disk driver, and a small root file system.  You
  342.      can  use  this disk to boot your machine.  Use the normal ROOT to install
  343.      the root file system.  Keep booting your machine with TINYROOT until  you
  344.      have  compiled  a  small  kernel  for  your system.  Use the rootdev boot
  345.      variable to select the hard disk root file system.  Do not  use  TINYROOT
  346.      for anything other than booting, always use ROOT when mentioned.
  347.   17. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE
  348.      If you would like to install from floppy drive 1 then you need to copy at
  349.      least one sector from the USR image onto a diskette for drive 0.  The USR
  350.      bootstrap has been rigged to boot the other drive.
  351.   18. INSTALLING ON A SECOND HARD DISK
  352.      Minix doesn't care if it is installed on the second disk of a system with
  353.      two  disks.  The only problem is to get it booted.  You can either rig up
  354.      a diskette to boot Minix as shown earlier, or you can use the same  trick
  355.      on the first disk.  The command
  356.           installboot -m 5 /dev/hd0 /usr/mdec/masterboot
  357.      will lock the first disk into booting the second disk.   Note  that  this
  358.      command modifies the disk outside a Minix partition, overwriting a bit of
  359.      code that has likely been put there by DOS fdisk.  First verify that  the
  360.      Boot  Monitor  can  boot  a  DOS partition, because then the Minix master
  361.      bootstrap can do it too.
  362.   19. LOTS OF MEMORY ON A 286
  363.      You will have a hard time making Minix run out of 3  Mb  memory.   Memory
  364.      you  can  spare  can  be used for a "second level block cache" on the RAM
  365.      disk.  The File System uses the second level cache  to  store  copies  of
  366.      disk blocks that are pushed out of the normal (primary) block cache.  The
  367.      size of the primary cache is compiled into the FS server, but the size of
  368.      the second level cache can be set with the ramsize boot variable.  Set it
  369.      to a number between 0 and 512.  512 kilobytes is enough to keep  most  of
  370.      the compiler cached.
  371.   20. LOTS OF MEMORY ON A 386+
  372.      Processes can be as big as you'd like on a 386, but in practice 4  Mb  is
  373.      nice.  The installation script sets up a second level cache for Minix-386
  374.      of up to 1024 kilobytes.  This is because the default file  system  cache
  375.      is  only  80  kb.   Your  first point of call is to get rid of the poorly
  376.      performing second level cache and to assign the memory used by it to  the
  377.      normal  block  cache by enlarging the appropriate NR_BUFS and NR_BUF_HASH
  378.      constants in <minix/config.h> with as much as you can spare.   (1024  for
  379.      NR_BUFS  is  the minimum to keep cc -c cached.  2048 is then a nice value
  380.      for NR_BUF_HASH.)  Disable the second level cache, compile a new  kernel,
  381.      reboot and set ramsize to 0.
  382.                                                                              9
  383. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  384.   21. LOTS OF DISK SPACE
  385.      The maximum file system size is 1 Gb for Minix-386 and 128 Mb for  Minix-
  386.      86.   (Minix-86  can  handle  larger  file  systems, but fsck can't check
  387.      them.)  Note that a Minix file  system  can  only  contain  65535  inodes
  388.      (files),  so  the average file should be 16 kb to completely fill it.  It
  389.      may be better to make two smaller  file  systems.   Besides,  fsck  takes
  390.      forever on a large file system.
  391. SYSTEM ADMINISTRATION
  392.      The system has been set up with the idea that working as root  is  a  bad
  393.      thing  to  do.   As  root  you  are in no way protected from doing stupid
  394.      things.  So don't do development as root,  but  work  as  bin!   Only  in
  395.      exceptional  cases  do  you  want  to become root.  Being root is fun for
  396.      wannabe hackers; administrators know better.
  397.      To make life easier for bin, some programs  like  su(1),  install(1)  and
  398.      shutdown(8)  treat bin and other members of the operator group as special
  399.      and allow them the privileges of root.  (One  is  an  operator  if  one's
  400.      group id is zero.)  Operators should share the shadow password of root by
  401.      having ##root in their password field.  This way they all have  one  face
  402.      (password)  to  the  outside world, forming no greater security risk than
  403.      root alone.
  404.      The home directory of bin contains one important Makefile.  You  can  use
  405.      it  to recompile all the commands and libraries of the system.  Type make
  406.      to see the usage message.  If you want to compile just one  command  then
  407.      you  can  simply  type  make to do so.  To put it in its proper place you
  408.      have to type make install.  Read the Makefiles in the  commands  and  lib
  409.      subdirectories  to understand how everything is put together.  If you are
  410.      tight on memory then make may fail to traverse down the source  tree  and
  411.      also  compile  things.   You will have to type make in each subdirectory.
  412.      You can run make in /usr/src at the end to see if you've missed something
  413.      or not.
  414.      The login shell of bin is ash, the BSD shell.  It has  been  modified  to
  415.      offer  simple  line editing using the editline(3) library.  Ash is rather
  416.      big, so you may have to change bin's shell back to /bin/sh  with  chsh(1)
  417.      if  you are low on memory.  Do not change root's shell to ash, and do not
  418.      replace /bin/sh by ash.  It may run out of memory at the wrong moment.
  419.      The kernel is not compiled from the  master  Makefile.   To  make  a  new
  420.      kernel you have to step into the tools directory.  There you can run four
  421.      different make commands:
  422.      make This makes all the different kernel parts and combines them  in  the
  423.           file named image.
  424.      make fdboot
  425.           As above and then makes a boot floppy that you can  use  to  restart
  426.           your system with.  You are prompted for the floppy device name.
  427.                                                                             10
  428. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  429.      make hdboot
  430.           First makes the image file and then copies  it  into  the  directory
  431.           /minix.   If there are already two images in that directory then the
  432.           newest image will be removed to make space for this newer image.  It
  433.           is  assumed  that  the oldest image is the most stable system image,
  434.           one that always works, and that the newest  image  is  experimental.
  435.           Check  beforehand  what  /minix contains before you run make hdboot.
  436.           Remove the oldest image if you want  another  image  to  become  the
  437.           stable  image.   The Boot Monitor chooses the newest image in /minix
  438.           to boot.  You can use the monitor  command  ls  minix  to  view  the
  439.           images  present,  and set the image variable to the full name of the
  440.           image you want to use instead  if  the  newest  doesn't  work.   The
  441.           images  in  /minix  are  named  using  the Minix release and version
  442.           numbers with an extra  revision  number  added  to  distinguish  the
  443.           images.
  444.      The first new kernel you would like to make is one  configured  for  your
  445.      system.   The  kernel  you  are  running  now  contains several hard disk
  446.      drivers you don't need, and it does not have a TCP/IP server that you may
  447.      want  to  have.   In <minix/config.h> you can find a number of ENABLE_XXX
  448.      variables that can be set to 0 to exclude, or 1 to include  a  particular
  449.      driver.   Another  driver related variable is DMA_SECTORS.  This variable
  450.      sets the size of a buffer used by DMA based disk  drivers  (all  but  the
  451.      floppy, AT/IDE, and Adaptec drivers).  Raise its value to greatly improve
  452.      throughput, especially writing.  A value of 16 shows good results.   (The
  453.      BIOS  driver  benefits  most,  because  it is a long way to the BIOS from
  454.      protected mode, especially from 286 protected mode.)   You  can  increase
  455.      NR_CONS  if you want to have more virtual consoles.  Having more consoles
  456.      costs little memory, because all the consoles are kept in  video  memory.
  457.      Scrolling  speed  of  the  console  will go down if more virtual consoles
  458.      share the available memory.  CGA cards have space for 4 consoles, EGA and
  459.      VGA can have 8 consoles.  The NR_PTYS variable sets the number of pseudo-
  460.      ttys.  You need pseudo-ttys to be able to login remotely over  a  network
  461.      with the rlogin command.  Each remote login session needs one pseudo-tty.
  462.      If you fear that the system will now run out of processes  then  increase
  463.      NR_PROCS.  Configuring a new kernel is sometimes not enough to enable new
  464.      devices, you sometimes need to use the MAKEDEV command to make new device
  465.      files  in  /dev.   For  pseudo-ttys you also have to check if /etc/ttytab
  466.      mentiones the new devices.
  467.      New additions to the system can be made in the /usr/local tree.  An empty
  468.      directory  tree has been set up for you and binaries and manual pages are
  469.      already in the search paths.  You can make a  new  user  entry  with  the
  470.      adduser command.
  471.      The TZ variable in /etc/profile tells the time zone offset from the  wall
  472.      clock  time  to  GMT.   You  have  to change it for your time zone.  (See
  473.      TZ(5).)
  474.                                                                             11
  475. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  476.      The function keys produce debug dumps, showing various  interesting  data
  477.      about  the system.  F1 lists processes and F5 shows ethernet stats, which
  478.      may be of use now.  Read console(4) to know all the details of the screen
  479.      and keyboard.
  480.   22. SYSTEM SHUTDOWN
  481.      You can't just turn a Minix system off.  Minix must be told to flush  the
  482.      modified   data   in   the   file  system  cache  first.   The  following
  483.      commands/keystrokes can be used to exit Minix properly:
  484.      shutdown
  485.           First alert all users  and  then  all  processes  of  the  impending
  486.           shutdown then halt or reboot the system in one of various ways.  See
  487.           shutdown(8).
  488.      reboot / halt
  489.           Alert all processes of the system shutdown then reboot or halt.
  490.      CTRL-ALT-DEL
  491.           Halt the system by running shutdown -h now.
  492.      Minix  halts  by  returning  to  the  Boot  Monitor,  Minix  reboots   by
  493.      instructing  the monitor to reboot Minix.  (Minix is just a subprocess to
  494.      the monitor.)  Either halt Minix  and  use  monitor  commands  to  escape
  495.      Minix, or use shutdown -R to reset the system.
  496. FILES
  497.      /usr/ast    Honorary home directory of Andew S.  Tanenbaum.   Doubles  as
  498.                  the place where the default setup for a new user is found.
  499. SEE ALSO
  500.      monitor(8), boot(8), part(8), mkfs(1), mount(8), M(8), fstab(5), hier(7),
  501.      console(4), dev(4), adduser(8), TZ(5), mkdist(8), shutdown(8).
  502.      "Operating Systems - Design and Implementation" by Andrew S. Tanenbaum.
  503. NOTES
  504.      The  notation  <file.h>  refers  to  a  C  language   include   file   in
  505.      /usr/include.
  506.      Root and bin do not have the current directory in  their  program  search
  507.      path  to  avoid executing programs left around by malicious people.  This
  508.      means that to run foo from the current directory, ./foo must be typed.
  509.      Some of the commands have changed  since  earlier  Minix  versions.   For
  510.      instance mkfs doesn't need a size argument anymore, and vol automagically
  511.      determines if it needs to read or write.  Keep this in mind if you use an
  512.      older Minix version to examine the newer system.
  513.                                                                             12
  514. USAGE(8)                  Minix Programmer's Manual                   USAGE(8)
  515. BUGS
  516.      There are many PS/2 models, all different.  Some  will  run  Minix,  some
  517.      won't,  some  crippled  if  you  lie to Minix by setting processor to 86.
  518.      Almost no PS/2 has a standard disk, so setting hd to esdi or bios will be
  519.      necessary.
  520.      While testing a full library rebuild of this  distribution  it  sometimes
  521.      happened that some things were not put back into the library.  This seems
  522.      to be fixed, but we do not understand why the fix fixed the problem.   So
  523.      if  you  see  strange "undefined" errors when compiling a program after a
  524.      library rebuild then run make install again in /usr/src/lib/ to  try  and
  525.      add the missing pieces.
  526.      Except for the floppy driver none of the DMA based drivers know about DMA
  527.      being  limited  to  a  24  bits  address, i.e. the first 16 Mb.  So under
  528.      Minix-386 you run a slight risk that a tar or dd command may use a buffer
  529.      above  16  Mb  for  reading  or writing to a character device.  This only
  530.      happens if the low 16 Mb is taken by some huge processes,  and  you  have
  531.      more than 16 Mb, of course.
  532. AUTHOR
  533.      Kees J. Bot (kjb@cs.vu.nl)
  534.                                                                             13