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, Overby attempted to recall the Great Questions (and their answers)
as well as the Great Discussions from the net. He thanks everyone who has
contributed to this document.
Several things to remember when you ask questions on the net:
Please 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 distributed for free on the Interenet. By the way the main distribution site
is the Vrije University FTP server. See the Information Sheet 2.0 about
getting Minix for details.
2.WHAT VERSIONS OF MINIX EXIST?
There are two releases of Minix currently in wide distribution:
Minix 1.5
available for: IBM PC clones, Apple Macintosh, Atari ST, Amiga, Sun SparcStation.
Minix 2.0
available for: IBM PC clones.
3.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, your local DEC historian, a newsgroup on
that topic such as alt.sys.pdp11
or some harmless newsgroup like alt.dev.null.
4.PLEASE SUBSCRIBE ME TO THE MAILING LIST
Please don't ask 26,000 people on the newsgroup to do that,
since you can ask a computer to do it for you!
If you are on the Internet, or can send email to the Internet,
then you can get this newsgroup via a mailing list, MINIX-L
(aka info-minix).
5.PLEASE UNSUBSCRIBE ME FROM THE MAILING LIST
Use the same procedure as for subscribing, but use "unsubscribe" instead of "sub".
See MINIX-L for details.
6.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.
7.MINIX DOESN'T WORK WITH MY HARD DISK
Is this still applicable?
There are many potential sources of this. Several are:
You are running an RLL controller on an XT. You must change "NR_SECTORS" in the configuration file, from 17
(standard for MFM controllers) to 25 (Adaptec controllers) or 26 (Western Digital and others).
8.THE SINGLE THREADED FILESYSTEM IS A REAL BOTTLENCK
Quite 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.
9.IS THERE X-WINDOWS FOR MINIX?
Not for standard Minix. 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.
Minix-386vm, however, does support X11R5 (see question 11).
Don't be fooled by Mini-X. This is just an EGA- or VGA-graphics driver and a windowing library for Minix-PC. The
API is similar to X11 (but not identical), so porting X programs might be easy. It is not possible to run several programs
using it at once, however.
There is also a port of MGR, but I don't know about its current status.
Is this still correct?
10.DOES MINIX SUPPORT TCP/IP AND NFS
Yes, Minix supports TCP/IP. However, you must build a new kernel -- the
distributed one does not have TCP/IP built in. There is no NFS for Minix.
11.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).
12.WHAT ARE THE MINIMUM HARDWARE REQUIREMENTS FOR MINIX?
Check the docs on this one. Theoretically you can run it on an XT with 512kB RAM
and 2 floppies. Unless you are particularly fond of juggling disks,
you would want at least 20MB on a hard disk, though.
A 286 will give you memory protection and the ability to use more the 640k of memory. 2MB are recommended.
If you have a 386 and decide to use one of the 32-bit kernels, you should have at least 4MB RAM. For Minix-386vm
60MB of hard disk are probably the minimum, if you want to keep the sources online.
For the i386 Minix, you need at least two megabytes of RAM.
13.How does vol work?
Vol in write mode accepts a stream of data and writes it to a device, pausing after every n blocks to prompt for
insertion of a new disk. In read mode vol generates a stream of data from a series of disks. There is no file system on
disks used by vol, and the disks are not mounted; if a file system exists all the file system structures will be overwritten
with data. Thus vol can be used to transfer files between operating systems, as long as both operating systems can read
raw disk sectors in the same format. But none of the normal file system mechanisms to prevent use of bad sectors are
available.
Vol cannot detect the end of a file or any errors within a file. In write mode vol will terminate when the process
preceding it in the pipeline terminates. In read mode vol receives a SIGPIPE signal when the pipe it is writing to no
longer has a process reading from it.
In the ftp distribution of Minix 1.7 the USR.* and SRC.* disks contain pieces of a big file -- you can think of it as
USR.tar.Z or SRC.tar.Z, although it never appears as a named file. In installing Minix this stream of data is read,
decompressed, and then extracted into directories and files by the vol | zcat | tar pipeline. If vol stops asking for disks
before you get to the last one it usually means that the data is corrupt and zcat or tar reacted as if the end of the file had
been reached. In this case tar is the only program in the pipeline that can actually detect errors in the file, so the zcat | tar
pipe will break first when tar terminates, causing zcat to terminate and the vol | zcat pipe to break. The problem is most
likely on the last disk accepted, but it is possible it could have been the next-to last one -- sometimes the pipeline will
not detect the end of the data before you are asked for one more disk. It can also happen normally that vol in read
mode will ask for one more disk than was actually written originally. Just any old disk, including the one previously read,
will do in this case.
Since vol does a raw write of data to a disk with no file system there are no file system mechanisms to lock out bad
sectors. Thus, you must use perfect disks. If you are not absolutely sure of your disks you should either check them (use
readall under Minix) or reformat them with a format program that verifies all sectors are good (format -v under Minix),
before you use vol (or any other program that writes raw data to a disk) to write disks to be read by vol.
14.Can I run a networked XT?
15.How do I use the boot monitor?
16.How do I change the size of the RAM disk?
First, let's discuss the default size of the RAM disk. This is the size of the root file system on the boot device. This is
200K for the TINYROOT boot floppy, or 600K for the standard ROOT boot floppy. So, in the first place, when you
are starting Minix for the first time you should use the TINYROOT file system if you have a machine with only 640K or
1M memory.
If you use the instdist script to install on a hard disk the boot device file system will be 720K for 16 bit (i86) Minix or
1024K for 32 bit (i386) Minix. (Note that instdist makes a 1.44M partition for the root, but the file system it puts on the
partition doesn't use the entire partition). If you want to continue to use a RAM disk after you have installed to the hard
disk, but you want its size to be smaller than the default 720K or 1024K, you will have to use mkfs to make a new file
system of the desired size on the root subpartition and then copy the files you want on your root device, reinstall the
bootblock, etc. The usage.8 man page and the text of instdist itself provide information on how to do a manual
installation.
There are several other possible manipulations of the RAM disk.
- You can have no RAM disk at all.
- You can put your root file system on a RAM disk that is larger than the device where the root files are stored permanently.
- You may want a RAM disk that is not your root device.
No RAM disk: In the boot monitor (which you enter by pressing ESC when you see the "Press = to start Minix"
prompt), enter "rootdev=bootdev". Type "set" to verify the boot parameter settings and type "save" if you want to make
this a permanent change, and then type "main" or "menu" to continue booting. On a small system this will allow you to
use all of memory for programs, at the price of slower access to the root file system. Most hard disks are fast enough
that a RAM disk isn't really needed. You may get more of an effective speedup by recompiling Minix and using more
memory for buffers, anyway.
Root on a RAM disk larger than the boot device: In Minix 1.7 you can change the size of the RAM disk from the boot
monitor prompt. By default the ramsize parameter is initially set to zero, and the RAM disk takes the size of the file
system that is copied to it. You can change ramsize to any size up to 8192K by changing the ramsize parameter (for
example, "ramsize=4096"). Of course, the RAM disk can't be smaller than the boot device that will be copied to it.
RAM disk not used as root device: In Minix 1.7 you can also create a RAM disk that is not used for the root. This is
more complicated than the other options. In the boot monitor set "rootdev=bootdev" so the root image will not be
copied to the RAM disk. Then use the ramsize parameter to specify the desired size of RAM disk. This will create an
empty RAM disk without any file system at boot time. Once Minix has started you can use mkfs to create a file system
and then mount /dev/ram. If you have a reason to do this regularly you could put the mkfs and mount commands in your
/etc/rc file.