USAGE (8 ) Eighth Edition 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) and 
hier(7). 
1. REQUIREMENTS 
The minimum system MINIX can be installed on comfortably is an IBM PC/AT or 
PS/2 with a 286 processor, 640 KB memory, a 720 kb diskette drive, and 25­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 25­30 MB of disk space. 
2. 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 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 sub­partition table, /dev/hd2a and /dev/hd2c. Read the 
"DEVICES" sections for more information on MINIX devices. 
3. 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 
bothROOT and USR, otherwise replace ROOT by USR and type fd0. Login as root. 
4. AUTOMATIC INSTALLATION 
Before starting the installation, you must either have a free partition 
available or have at least 25­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 sug­ 
gested 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 25­30 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. 
5. 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 
6. 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. 
7. ADDING PROGRAMS AND SOURCCES 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 - 
8. 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 . 
September 19, 1996 Page 4 

USAGE (8 ) Eighth Edition USAGE (8 ) 
9. 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. 
10. 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). 
11. 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.) 
12. 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. 
13. 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. 
14. 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. 
15. 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. 
16. 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 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 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. 
17. 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. 
18. 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. 
19. 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. 
20. 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. 
21. 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. Another driver 
related variable is DMA_SECTORS. This variable sets the size of a buffer 
used by DMA based disk drivers (all but the floppy, AT/IDE, and Adaptec 
drivers). Raise its value to greatly improve throughput, especially writing. 
A value of 16 shows good results. (The BIOS driver benefits most, because it 
is a long way to the 
BIOS from protected mode, especially from 286 protected mode.) You can 
increase NR_CONS if you want to have more virtual consoles. Having more 
consoles costs little memory, because all the consoles are kept in video 
memory. Scrolling speed of the console will go down if more virtual consoles 
share the available memory. CGA cards have space for 4 consoles, EGA and VGA 
can have 8 consoles. The NR_PTYS variable sets the number of pseudo­ttys. 
You need pseudo­ttys to be able to login remotely over a network with the 
rlogin command. Each remote login session needs one pseudo­tty. 
If you fear that the system will now run out of processes then increase 
NR_PROCS. 
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. 
22. 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. 
FILES 
/usr/ast Honorary home directory of Andew S. Tanenbaum. Doubles as the place 
where the default setup for a new user is found. 
SEE ALSO 
monitor(8), boot(8), part(8), mkfs(1), mount(8), M(8), fstab(5), hier(7), 
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. 
Some of the commands have changed since earlier MINIX versions. For instance 
mkfs doesn't need a size argument anymore, and vol automagically determines 
if it needs to read or write. Keep this in mind if you use an older MINIX 
version to examine the newer system. 
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. 
While testing a full library rebuild of this distribution it sometimes 
happened that some things were not put back into the library. This seems to 
be fixed, but we do not understand why the fix fixed the problem. So if you 
see strange "undefined" errors when compiling a program after a library 
rebuild then run make install again in /usr/src/lib/ to try and add the 
missing pieces. 
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) 
Page 9 September 19, 1996