Subject: MINIX Frequently Asked Questions (Last Changed: 30 April 1994)
From: [email-masked] (Glen Overby)
Date: 1 May 94 17:17:25 CDT
Newsgroups: comp.answers,comp.os.minix,news.answers

Archive-name: minix-faq
Version: $Id: minix-faq,v 1.13 1994/05/01 01:37:36 overby Exp $

If you have questions AND ANSWERS to contribute to this FAQ sheet,
please send them to me, [email-masked].  I'm looking for
contributions to this FAQ, not questions from people who expect me to
give them answers.

                 Frequently Asked Questions on Comp.Os.MINIX

This Frequently Asked Questions (FAQ) list is intended to accompany the
Minix Information Sheet.  Some of the information here is duplicated from
the Information Sheet when deemed appropriate.

In creating this, I have attempted to recall the Great Questions (and their
answers) as well as the Great Discussions from the net.  Many thanks to
everyone who has contributed to this document.

Several things to remember when you ask questions on the net:

      Supply enough information for people to actually help you.  Things
      like what Minix version, your hardware configuration, and so-on are
      almost always necessary to not have to take shots in the dark.  If you
      are reluctant to tell any or all of this, don't expect a good answer.

      There are some questions for which there is no answer, because nobody
      has encountered the problem previously or there is no good solution to
      the problem.

1.  WHERE CAN I GET MINIX?
     Minix is sold by Prentice-Hall, Inc. and  their  authorized  distribu-
     tors.  They hold the Copyright on Minix, and sell it for profit (or at
     least we assume they make a profit on it).

                     IT IS NOT AVAILABLE FOR ANONYMOUS FTP!

     However, demonstration versions for the IBM PC, Atari ST, and Amiga 
     exist and are available via FTP from ftp.cs.vu.nl, plains.nodak.edu 
     and other archive sites. It is also available from Prentice-Hall for
     a small fee (see the Minix information sheet for more details & ISBN
     number).  The Amiga version is available onf "Fish Disk" number 525,
     available from large Amiga FTP sites {don't ask me which ones and
     where -- Glen}, users groups and some retailers.  While far from a 
     working system, the demo is sufficient to get a "feeling" of what 
     Minix does.

2.  WHAT VERSIONS OF MINIX EXIST?  
     The most current version is 1.5.10, known simply as "1.5" if you buy it
     from Prentice-Hall.  Upgrade "diffs" have been posted to the net over
     the past several months; consult an archive site listed in the
     Information Sheet to find that.  Prentice-Hall has been shipping ALL
     versions of Minix 1.5 for several months.

     !!!!! PRENTICE HALL IS SHIPPING 1.5.10, BUT THEY CALL IT 1.5 !!!!!

3.  BUT I'VE HEARD OF THIS A NEWER VERSION, 1.6.16.
     Yes, that sort of exists; it is a mid-development beta release for the
     PC (only) released to beta-testers.

4.  HOW DOES PDP 11/44 MEMORY MANAGEMENT WORK?
     This was the first big off-the-topic discussion on the group, and it's
     still  not  an  appropriate topic, so if you are still intrigued about
     pdp-11 memory management, consult the DEC processor handbooks, or some
     harmless newsgroup like alt.dev.null.

5.  PLEASE SUBSCRIBE ME TO THE MAILING LIST
     Why ask 26,000 people to do that, when there is one person who can,
     and you can ask a computer to do it for you?

     If you are on bitnet or arpanet, you can get this newsgroup via a
     mailing list, info-minix.  To subscribe to the list, send a message to
     [email-masked] (internet) or listserv@ndsuvm1 (bitnet) saying:

               signup minix-l your_full_name

     If you have trouble, contact the listserv maintainer at
     [email-masked]

6.  PLEASE UNSUBSCRIBE ME FROM THE MAILING LIST
     Use the same procedure as for subscribing, but use  "unsubscribe"  in-
     stead of "signup".

7.  WHAT IS THE ROOT PASSWORD?
     It's in the book, on pages 373 (login "ast") and 380  (login  "root").
     If you didn't buy the book, that's only the start of your problems.

8.  MINIX DOESN'T WORK WITH MY HARD DISK.
     There are many potential sources of this.  Several are:

     You are running an RLL controller.  You must change "NR_SECTORS" in the
     configuration  file,  <minix/config.h>  from 17 (standard for MFM con-
     trollers) to 25 (Adaptec controllers) or 26 (Western Digital and  oth-
     ers).

9.  IS THERE A SCSI DRIVER FOR MINIX?
     The following info applies only to PCs.

     All SCSI controllers work differently, from the primitive Seagate ST01,
     to the smarter Always IN-2000, and Adaptec with it's own on-board CPU.

     Magnus Doell has released his driver for the ST-02, and James da
     Silva has written one for the Adaptec 154X.  They can be found
     on plains.nodak.edu in, respectively,
        pub/Minix/pc/scsi07a.tar.Z
        pub/Minix/usenet/1991.Jul/ahascsi1.0.shar

     The ROM wini driver should also run most SCSI controllers but you
     lose protected mode capability.

     Amiga Minix has support for Commodore SCSI hard disks in the v1.5.10.1
     update.

9A.  WHAT TAPE DRIVES WORK WITH MINIX?
     Minix comes from Prentice Hall with no support for tape drives.

     For the PC, James da Silva has written a SCSI driver for Adaptec
     154X type controllers (see section on SCSI support).  This driver
     provides support for SCSI tape drives; there are reports of
     people successfully using it with Archive Viper tape drives (NB:
     not all Archive Viper drives have a SCSI interface!)

10.  THE SINGLE THREADED FILESYSTEM IS A REAL BOTTLENCK.
     True.  It's only noticeable when you  are  running  massive  background
     processes, or putting multiple users on your computer.

     This "problem" has been recently "fixed" and the "solution" posted to
     the net.  See your nearby bit-bucket (archive site) for it!

     You've got the source.  Fix it.

11.  IS THERE A 386 MINIX?
     Minix 1.5.10/PC runs on 80286 and 80386 systems using 80286  protected
     mode  (so  all  your memory is used for programs, rather than as bank-
     switched memory "windows" or a big RAM disk).  There is an  experimen-
     tal   32-bit   kernel   from   Bruce  Evans.   It  is  available  from

     sirius.ucs.adelaide.edu.au: pub/minix/local
     plains.nodak.edu:pub/Minix/oz

12.  I HAVE AN OLD VERSION OF MINIX. HOW CAN I UPGRADE?
     You need to get an upgrade kit from one of the archive sites; see  the
     Minix  Information  Sheet  for  a  (supposedly) complete list of sites
     which archive Minix-related bits.

     Also, read the Upgrading Tutorial -- it was meant to help.

13.  WHAT SHELLS EXIST FOR MINIX?
     sh:     Your typical Bourne shell. Comes with distribution Minix
     clam:   Tcsh-like shell, runs under Minix & real Unix's. Available
             from ftp sites sirius, ccadfa, plains & others
     ksh:    Korn shell, ported to Minix. Diffs for Minix on plains.
     marvin: A kid's shell. Posted months ago in comp.os.minix.
     emacs:  Does this count as a shell? Works only under 68K-Minix's
             and perhaps 386-Minix.
     tcsh:   The binaries for 68K-Minix and 386-Minix tcsh are available
             from ftp.uni-koeln.de.  The v6.02 tcsh source distribution
             contains configuration information for 386-Minix systems.

14.  IS THERE X-WINDOWS FOR MINIX?
     No, there is not.  It would be difficult if not impossible  (that  was
     meant as a challenge!) to put X on Minix because X is huge.  Unless you
     have many megabytes of memory, it would be impossible to run X clients
     and  servers  on  one  machine.  It will also certainly require 32-bit
     mode operation.

     Don't be fooled by the (only) graphic user interface for MinixPC,
     Mini-X. Contrary to what its name seems to imply, this interface has
     nothing to do with a X-Windows implementation under Minix.

15.  WHY CAN'T MY PC BOOT PC-MINIX FROM 1.44MB FLOPPY DISKS ?
     There's a couple of reasons for this.  First, straight out of the box,
     MINIX  doesn't  plan on dealing with 1.44Mb floppy disks.  The entries
     in /dev should be set up specifically for your machine,  so  pick  out
     the correct entries here:
          mknod /dev/fd0-dsdd5in b 2  4 360               # Drive A, 360K 5.25"
          mknod /dev/fd0-dshd5in b 2  8 1200              # Drive A, 1.2M 5.25"
          mknod /dev/fd0-dsdd3in b 2 16 720               # Drive A, 720K 3.5"
          mknod /dev/fd0-dshd3in b 2 28 1440              # Drive A, 1.44M 3.5"
                     ^^^             ^^
     Change 'fd0' to 'fd1' and add 1 to the minor device number  to  create
     an entry for floppy drive B.  It may be a good idea to link the gener-
     ic  floppy  disk  entries  (/dev/fd0  and  /dev/fd1)  to  the   proper
     /dev/fd0-ds{whatever}  entries for your machine, so that programs like
     dosread continue to work.

     All possible formats are:
        mknod /dev/fd0  b 2  0    0       # Drive A, automatic
        mknod /dev/pc0  b 2  4  360       # Drive A, 360K 5.25"
        mknod /dev/at0  b 2  8 1200       # Drive A, 1.2M 5.25"
        mknod /dev/qd0  b 2 12  360       # Drive A, 360K in a 720K 5.25"
        mknod /dev/ps0  b 2 16  720       # Drive A, 720K 3.5" and 5.25"
        mknod /dev/pat0 b 2 20  360       # Drive A, 360K in a 1.2M 5.25"
        mknod /dev/qh0  b 2 24  720       # Drive A, 720K in a 1.2M 5.25"
        mknod /dev/PS0  b 2 28 1440       # Drive A, 1.44M 3.5"

     Second reason your PC won't boot from 1.44Mb floppy disks, even though
     you've  fixed  up  the  floppy  disk  device entries: tools/bootblok.s
     doesn't know about 1.44M disks, so it blindly loads the boot image in-
     correctly  and  then tries to execute it.  Get Guy Helmer's bootblok.s
     from an archive site, or get shoelace.

16.  WHAT'S WRONG WITH 'ps'?
     You   need   to   have   a   copy   of   the   compiled   kernel    in
     /usr/src/kernel/kernel, mm in /usr/src/mm/mm, and fs in /usr/src/fs/fs
     for ps to read the namelist out of.  The PC Minix compiler must have the
     "-s" flag to build the symbol table.  Note that this MUST be the SAME
     kernel that is booted.

17.  HOW IS THE FORK(2) SYSTEM  CALL  IMPLEMENTED  ON  THE  68K  PROCESSORS
     WITHOUT A MEMORY MANAGEMENT UNIT?
     This is done by shadowing. This is copying the memory around  as  long
     as  both  child  and parent processes do exist.  Although this seems very
     expensive, it is not because most processes exec(2) almost immediately
     after  the fork(). But most terminal emulators who fork() en keep run-
     ning loose.

18.  WHY IS KERMIT SO ABSURDLY SLOW UNDER MINIX-68k?
     See the above question.  Kermit forks so that one process  listens  to
     the  serial  port  and  writes  to  the  screen, and the other process
     listens to the keyboard and writes to  the  serial  port.   Since  the
     second  process  never  "exec's",  the  two  processes are continually
     swapped in and out of one memory slot.

19.  IS THERE ALSO A 64K+64K LIMIT FOR MINIX 68K & MINIX 386?
     For minix 68k, there isn't. For minix 386 there isn't provided you use
     the proper compiler (This means no ACK)

20.  DOES MINIX HAVE BERKELY JOB CONTROL?
     No. Nor does it have its associated signals like SIGSTOP, SIGCONT etc.

21.  DOES MINIX SUPPORT TCP/IP AND NFS
     No. TCP/IP does exist as an experimental package.  NFS is a dream  for
     many ;-)

22.  WHY CAN'T I RECOMPILE KERMIT OR ELLE ON PC-MINIX 1.5?
     You can't assemble Kermit or elle on a PC using Minix 1.5 or  earlier;
     asld  reports an "out of space" error, which means it ran out of space
     in the output object file.  That is why the  binaries  are  (certainly
     were) on the P-H distribution.  Those binaries were compiled by a dif-
     ferent, more efficient compiler.

23.  WHY AREN'T THE MANUALS ONLINE? WHERE CAN I GET THE MANUALS?
     The online manuals are available via anonymous ftp from
     ftp.vmars.tuwien.ac.at (128.130.39.16) in the file 
     /pub/minix/net/manpages.tar.Z.  To extract the manuals, ftp the
     file binary-wise, uncompress it and extract using tar when you
     are in your /usr/man directory. Each manual is in a separate
     file, and to use the distribution 1.5 man(1) you will need to
     read the source to man(1) to see how to create the single manual
     file.

     Alternatively, the source to a more Unix-like man(1) is  available  on
     ccadfa  in  the  file  pub/minix/mansrc.Z.  To  extract  the code, ftp
     binary-wise, uncompress and unshar. Before compiling the code,  modify
     the header file to reflect your system setup. Compile the code. If you
     are using less(1) as a pager,  you  will  need  to  modify  main.c  in
     nroff(1); instructions are included in mansrc.Z

24.  WHAT IS THE DIFFERENCE BETWEEN THE 80386 AND THE 386sx?
     There is no difference between 386sx/386dx except for the bus  (24-bit
     addresses and 16-bit data).

25.  DOES MINIX SUPPORT MAIL/NEWS/UUCP?
     As shipped from Prentice Hall, Minix 1.5 include only local Email, and
     no Uucp nor Usenet News support. Various additional packages from the
     net exist:
     There are two UUCP implementations, by Fred van Kempen and by Will Rose.
     Fred wrote an Email interface, UMail/WMail and a news software, WNews.
     A BNews implementation and the Tass newsreader from alt.sources also
     exist under Minix. All these packages are available via anonymous FTP
     from archive sites.

26.  WHY IS THE DIRECTORY ON PLAINS CALLED "oz" INSTEAD OF 386

     Plains maintains several "shadows" of other sites.  To allow easy
     automatic updating of packages from the remote sites, we place
     everything from that site in a directory reminiscent of that site's
     name.  To absorb the remote site's files into the local directory
     structure would frustrate this, and it probably wouldn't happen.

27. WHERE CAN I GET THE NEW ANSI C COMPILER?
    (from Andy Tanenbaum's posting <[email-masked]> 11 Mar 92)

    There are three compilers available:

      - ANSI C, conforming to ANS X3.159-1989

      - Modula-2, conforming to
          "Report on The Programming Language Modula-2", in "Programming in
	  Modula-2, 3rd ed." by Niklaus Wirth, Springer-verlag, 1983

      - Pascal confrming to level 1 of BSI standard BS 6192: 1982 (ISO 7185), 
          with a few small exceptions

    Also, a Modula-2 makefile generator and some utilities for handling
    relocatable object files are included (aal, nm, size, strip, etc).
    Complete libraries for ANSI C, Pascal, and Modula 2 are provided. 

    This package is available in 4 different versions:

      - 5.25" DS/DD floppies for 8088/286/386 (4 360K floppies);
      - 5.25" DS/HD floppies for 8088/286/386 (1 1.2M floppy);
      - 3.5"  DS/DD floppies for 8088/286/386 (2 720K floppies);
      - 3.5"  DS/DD floppies for Commodore Amiga or Atari ST (2 720K floppies).
    
    Many problems with the old Minix C compiler have been resolved:
      - All versions have separate as and ld programs.  Asld is gone.
      - Floating point is now supported
      - Library is greatly improved and is ANSI conformant
      - A program aal is provided to manage libraries (ranlib-like)
    
    The package is available from two companies:
    
    Transmediair Products & Support B.V.	Unipress Software
    Box 297					2025 Lincoln Highway
    3720 AG  Bilthoven				Edison, NJ 08817
    The Netherlands				U.S.A.
    Tel: +31 30 281820				Tel: +1 908 287 2100
    FAX: +31 30 292294				FAX: +1 908 287 4929
    						Email: [email-masked]
    
    Transmediair charges US $200,- for the 4 floppy PC version, US $150,-
    for the other versions. Unipress charges US $199,- for all versions.

28. BUT THERE *IS* AN AMIGA DEMO DISK!

    It can be found on Fish disk 525. Fish disks are available at ftp 
    sites carrying Amiga stuff.  They should also be available from various 
    Amiga groups and retailers.

29. Is there a way to make a file system *not* use all of a partition or 
floppy disk? 

There are at least three utilities to do this. They all put the image
to be booted from into a normal file on a Minix file system and change
the boot block, so that it can read a file from a Minix FS and start
it.

Shoelace is the oldest of these utilities. It includes a lot of bells
and whistles (you can check a file system, load the components of
Minix seperately, start a debugger before Minix, so you can debug
Minix at start up, ...), but is a little slow and a little difficult
to set up. I have been using it for a long time now and am quite happy
with it.

MXboot. Sorry, don't know anything about it, except that it exists.

Boot Monitor: Haven't tried it out yet, just read the docu. Faster and
simpler than shoelace, and depends less on hardware. Does not let you
choose partition on startup (You could still use shoelace for that or
write your own program). It has one feature which tempts me to switch
over to it: It lets you start up Minix in protected mode. While this
won't help you with standard Minix it makes it possible to remove all
the 16-bit stuff from the kernel.

 [ Peter J. Holzer, Technical University Vienna, [email-masked] ]