summaryrefslogtreecommitdiff
path: root/minix/man/man8/usage.8
blob: 2acb18fe3afea79efdbcbdcb92c7940a18b1cb22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
.TH USAGE 8
.SH NAME
usage \- installing and using MINIX
.SH DESCRIPTION
.de SP
.if t .sp 0.4
.if n .sp
..
.de XB	\" An example in bold print.
.RS
.nf
.ft B
\&\\$1
.ft R
.fi
.RE
..
.de 3A	\" Three Letter Acronym at 1 point size smaller.
\&\\$3\s-1\\$1\s+1\\$2
..
.de 3B	\" TLA in bold.
\&\\$3\fB\s-1\\$1\s+1\fR\\$2
..
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
.BR boot (8),
.BR hier (7),
and in
.BR dosminix (8)
if you run MINIX under DOS.
.SS "1. MINIX UNDER DOS"
Installation of MINIX to run under DOS is a nonevent.  Chances are, you are
reading this manual page from an already running MINIX system, but if not
then the setup goes like this:
.PP
Unpack the DOSMINIX.ZIP file using one of the popular ZIP utilities, such as
PKZIP or WinZIP.  Next reboot Windows and hit F8 just when you see the
"Booting Windows" message.  From the menu that appears choose "Command
prompt only", or if that doesn't work "Safe mode command prompt only".  Under
Windows Me you can use a startup disk to boot the PC into DOS.  Move
to the directory containing the MINIX files and type:
.PP
.XB "boot minix.mnx"
.PP
Type '=' and presto, you are running MINIX.  Most of the rest of this manual,
which deals mainly with running MINIX in a true hard disk partition, does
not apply to you.  Your system is already installed completely, with all
binaries and sources present, so all the talk about getting MINIX on your
disk can be skimmed over.  Pay attention again when the focus shifts to the
configuration of the system.  Section 9 is where this happens first.  (The
main challange to a DOS installation is to figure out which parts of the
installation manual do not apply.)
.SS "2. REQUIREMENTS"
The minimum system MINIX can be installed on comfortably is an IBM PC/AT
or PS/2 with a 286 processor, 2 MB memory, a 720 kb diskette drive, and 35
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 35 MB of disk space.
.PP
The minimum system MINIX can be installed on
.BR un comfortably
is an IBM PC/XT with 640 kb memory.  MINIX-386 can more or less run in 2
MB memory.  See sections 16 and 17 on "low memory" issues.
.SS "3. MINIX INSTALLATION BACKGROUND"
The objective of the installation is to create a partition on your disk
and to put MINIX into it.  MINIX really requires three partitions
however, so the single "primary" partition is split into three subpartitions.
The
.B s0
subpartition will contain the root file system, the
.B s1
subpartition will contain the
.B /home
file system, and the
.B s2
subpartition will contain the
.B /usr
file system.  What Windows 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
.BR /bin ,
device files in
.BR /dev ,
and configuration files in
.BR /etc .
This is just enough to get the system started.  MINIX will soon extend
its directory tree by mounting a file system on the
.B /usr
directory.  What is henceforth known as the /usr file system contains all
MINIX programs in
.BR /usr/bin ,
file system sources in
.BR /usr/src ,
etc, etc.
The \s-2ROOT.MNX\s+2 image contains the complete MINIX root file system, but
\s-2USR\s+2 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 \s-2USR.TAZ\s+2, \s-2SYS.TAZ\s+2 and \s-2CMD.TAZ\s+2
archives that are installed later to fill /usr.
.PP
Let's suppose your first hard disk, which has
device name
.BR /dev/c0d0 ,
has Windows already present in the first primary partition
.RB ( /dev/c0d0p0 ),
and some free space left after that.  After MINIX is installed in that
free space the disk will look like this:
.PP
.nf
.in +4n
.ta +\w'/dev/c0d0p1s0mmmm'u
/dev/c0d0	Whole hard disk #0
/dev/c0d0p0	Windows C: drive
/dev/c0d0p1	MINIX primary partition
/dev/c0d0p1s0	MINIX root partition
/dev/c0d0p1s1	MINIX /home partition
/dev/c0d0p1s2	MINIX /usr partition
.in -8n
.fi
.PP
/dev/c0d0 is the sum of a partition table, /dev/c0d0p0 and /dev/c0d0p1.
Likewise is /dev/c0d0p1 the sum of a subpartition table, /dev/c0d0p1s0,
/dev/c0d0p1s1, and /dev/c0d0p1s2.
Read the "DEVICES" sections for more information on MINIX devices.
.SS "4. INSTALLATION"
.ig \" Only relevant when on CD-ROM.
If you have not already copied MINIX to floppy disks, please read
the README.TXT file in the MINIX directory now, for 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.
.PP
..
You can install MINIX automatically or manually as described in 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
.BR 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
.B ESC
to get to the Boot Monitor prompt, set the appropriate variables, use
.B save
to store the settings and
.B menu
to continue where you left off.
.PP
To install the system you need two diskettes: a bootable root diskette and a
diskette full of binaries to use as
.BR /usr .
These diskettes are named
.B \s-2ROOT\s+2
and
.BR \s-2USR\s+2 .
These two diskettes may also be combined on a single high density diskette.
In that case the \s-2USR\s+2 part is on the
.B p2
partition.
.PP
Insert the \s-2ROOT\s+2 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
.BR /usr .
Type
.BR fd0p2
for a diskette that contains both \s-2ROOT\s+2 and \s-2USR\s+2, otherwise
replace \s-2ROOT\s+2 by \s-2USR\s+2 and type
.BR fd0 .
Login as
.BR root .
.SS "5. AUTOMATIC INSTALLATION"
Before starting the installation, you must either have a free partition
available or have at least 35 MB not in any partition so you can create
a MINIX partition.
.PP
Type
.B setup
to start the installation script.  First it offers to install a national
keyboard map.  The names should be clear, except for
.BR us-swap ,
which swaps the CTRL and CAPS LOCK keys of a standard US style keyboard
for people who believe that the natural place of CTRL is next to A.
The default suggested between [ and ] is the US standard keyboard.
.PP
The next thing to do is to make a partition, for this you are placed in a
partition table editor named
.BR 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.
.PP
With the '+' and '\-' keys you can select the disk device to install on,
probably
.BR /dev/c0d0 ,
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).  DO NOT use part to shrink an existing partition!  It will destroy
all data in that partition.  MINIX needs a partition of at least 20 MB, but
not larger than 128 MB (MINIX-86) or 1 GB (MINIX-386).  The system needs 35
MB in compiled state.
.PP
The script then wants to know the name of the partition you've created.  The
partition name is probably still visible on the screen.  Combined with the
drive name you have to type c0d0p1, c0d2p0 or something.
.PP
The next question is the size of the /home partition that you want.  There
will be a suggested value based on the amount of disk space available.
.PP
The new partition table is reloaded into the disk driver, and the
new MINIX partition is carved up into two or three subpartitions, a
root, the chosen amount for /home, and the rest for /usr.
.PP
After making /usr, it is immediately put to use to replace the installation
/usr file system so that you can remove the \s-2USR\s+2 diskette and insert
the \s-2ROOT\s+2 diskette (unless they are one and the same).  The root file
system is filled with the contents of the \s-2ROOT\s+2 diskette and slightly
patched up to work on the hard disk (/etc/fstab.)
.PP
You can now skip the next section and move to "TESTING", but it may be
instructive to read it anyway.
.SS "6. MANUAL INSTALLATION"
The instructions that follow are at a very low level and require you to be
very careful.  The big advantage is that you know precisely what
tools have been used and how everything works.  The disadvantage is that
you may easily make a mistake that either forces you to start over if you
are lucky, or wipes out the contents of your hard disk if you are not.
Only if you really want to do something different should you use a manual
installation.  Slavishly following the steps shown below will only make
you end up with the same result as an automatic installation.
.PP
Run
.B 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, /home, and /usr.  The assumption is that you
will use the second partition on the first hard disk,
.BR /dev/c0d0p1 ,
and that
.B c0d0p1s0
is the root subpartition,
.B c0d0p1s1
is /home, and
.B c0d0p1s2
is /usr.  If you want to use the first partition on
the second hard disk for instance, then substitute c0d1p0 and c0d1p0s[012] for
the above.  See the section on devices below, and the manual
pages of
.BR part (8)
and
.BR controller (4).
Start
.B part
and select the disk that you
want to install MINIX onto.  In our example it will be
.BR /dev/c0d0 .
.PP
Use
.B 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.
.PP
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 \s-2ROOT\s+2 diskette is a copy of a root file
system, and will be used to fill your root subpartition.)
.PP
The second subpartition is for the /home subpartition.  You may choose to store
your personal files there.
.PP
Use the rest of the partition for
.BR s2 ,
the /usr subpartition.
.PP
When you are done check that /dev/c0d0p1s0 is active (the * after the partition
number) so you can boot from it later.
.PP
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.)
.PP
To be able to boot from /dev/c0d0p1s0 you must place a master bootstrap in
/dev/c0d0p1.  It has been placed there by
.B part
if it told you that it was creating a new partition table, but
.PP
.XB "installboot\0\-m\0/dev/c0d0p1\0/usr/mdec/masterboot"
.RE
.PP
will put it there for sure.
.PP
Next make a file system for on-disk /home.  Leave it empty for now.
.PP
.XB "mkfs\0/dev/c0d0p1s1"
.PP
Next make a file system for on-disk /usr and copy the floppy /usr on to it.
.PP
.XB "mkfs\0/dev/c0d0p1s2"
.XB "mount\0/dev/c0d0p1s2\0/mnt"
.XB "pax -rw -pe\0\-v\0/usr\0/mnt"
.PP
This will create a file system on /dev/c0d0p1s2, mount it on /mnt, and copy the
contents of the \s-2USR\s+2 floppy onto it.
.PP
You can now use the new /usr in place of the \s-2USR\s+2 floppy:
.PP
.XB "umount\0/dev/c0d0p1s2"
.XB "umount\0/dev/fd0\0\0\0\0\0\0\0\0\0# fd0p2 if combined"
.XB "mount\0/dev/c0d0p1s2\0/usr"
.PP
This little dance has freed up your floppy drive, so please remove the
\s-2USR\s+2 diskette and replace it by the \s-2ROOT\s+2 diskette.  Make a
file system for the root with at least 512 inodes (files), and
fill it from the floppy:
.PP
.XB "mkfs\0\-i\0512\0/dev/c0d0p1s0"
.XB "mount\0/dev/fd0\0/fd0"
.XB "mount\0/dev/c0d0p1s0\0/mnt"
.XB "pax -rw -pe\0\-v\0/fd0\0/mnt"
.XB "umount\0/dev/fd0"
.PP
Remove
.B /mnt/etc/issue
to get rid of the "use setup" message that greets you when you boot, and
edit the file
.B /mnt/etc/fstab
to name the devices MINIX has been installed on.  In our example it
should look like this:
.PP
.XB "root=/dev/c0d0p1s0"
.XB "home=/dev/c0d0p1s1"
.XB "usr=/dev/c0d0p1s2"
.PP
Unmount the new root:
.PP
.XB "umount\0/dev/c0d0p1s0"
.PP
Make it bootable:
.PP
.XB "installboot\0\-d\0/dev/c0d0p1s0\0/usr/mdec/bootblock\0boot"
.PP
The automatic script would now set the
.B rootdev
and
.B ramimagedev
boot variables.  You can do this now using the
.B edparams
command, but it is easier to postpone it until the testing phase.  The
settings should be:
.PP
.XB "rootdev=c0d0p1s0"
.XB "ramimagedev=c0d0p1s0"
.SS "7. TESTING"
By now a new MINIX system is present on your hard disk.  Time to see if
it works.  Leave the \s-2ROOT\s+2 diskette in the drive and type
.BR 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
.B boot c0d0p1
to boot the primary partition MINIX has been installed in.  (It is "c0d0p1" in
our example.)
.PP
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
.B ESC
once more to get to the command prompt.  The command
.B set
shows what the current parameters are.  Here is an example that shows how
to make a menu to either start MINIX or boot Windows:
.PP
.XB "minix(=,Minix)\0boot"
.XB "win(w,Windows)\0boot\0c0d0p0"
.XB "save"
.PP
Windows is assumed to be in the first partition in the example above (c0d0p0).
When finished type
.B menu
to see if the menu looks right.  If so hit '=' to start MINIX.  Log in as
root.
.SS "8. ADDING PROGRAMS AND SOURCES TO /usr"
The
.B setup
command can also be used to add files from floppy sets to the system.  The
.B \s-2USR.TAZ\s+2
(programs and stuff),
.B \s-2SYS.TAZ\s+2
(system sources), and
.B \s-2CMD.TAZ\s+2
(commands sources)
are all installed relative to the
.B /usr
directory, so the command to use three times is
.PP
.XB setup\0/usr
.PP
.B 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
.B \s-2USR.TAZ\s+2
set if you want a working MINIX system,
.B \s-2SYS.TAZ\s+2
if you want recompile the system or study it, and
.B \s-2CMD.TAZ\s+2
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.
.PP
If your machine does not have enough memory to run
.B setup\0/usr
then type these commands manually:
.PP
.XB "cd\0/usr"
.XB "vol\0/dev/fd0 | zcat | tar\0xvfp\0\-"
.PP
If
.3B USR.TAZ
is already present on the hard disk in an
.3A DOS
or Windows partition, then this command can be used under MINIX-386 to
extract it to avoid the floppy detour:
.PP
.XB "cd\0/usr"
.XB "mtools\0copy\0c0d0p0:USR.TAZ\0\- | setup\0/usr"
.PP
In 16-bit mode you don't have mtools, but maybe dosread will work:
.PP
.XB "cd\0/usr"
.XB "dosread\0c0d0p0\0USR.TAZ | setup\0/usr"
.PP
The file doesn't have to be in the root directory of
.BR c0d0p0 ,
of course,
.B "c0d1p0:/TMP/USR.TAZ"
would name a file on the first partition of the second hard disk in the
directory
.BR \eTMP .
.PP
The /usr file system can also be filled through a network from a remote host
if MINIX if you can get networking going with the NET.TAZ supplement.  Use
.B "setup\0/"
to install NET.TAZ (note that it goes into / instead of /usr), then
follow the instructions in
.BR boot (8)
to configure TCP/IP and boot MINIX.  There are now two ways to fill
/usr.  One is to add the host name and login name of a remote host and a
remote user to
.BR /.rhosts ,
as root, and to use the following command on the remote host:
.PP
.XB "rsh\0\-l\0root\0\fIminix-box\fP\0setup\0/usr\0< USR.TAZ"
.PP
Two is to use
.B fetch
to copy the data directly from a Web or FTP site by using these
commands under MINIX:
.PP
.XB "cd\0/usr"
.XB "fetch\0-q\0-o\0-\0\fIurl\fP.../USR.TAZ | setup\0/usr"
.PP
The sources may be installed using exactly the same commands, but with
.3B USR.TAZ
replaced by
.3B SRC.TAZ .
Note that this means that the sources must also be extracted relative to
.BR /usr .
.SS "9. NAMES"
A standalone machine will have to be given a name.  As
.B root
type
.PP
.XB "echo\0\fIname\fB\0>/etc/hostname.file"
.PP
to change the host name of your machine to
.IR name .
.SS "10. ACTIVE ON BOOT"
You may want to make the MINIX partition active so that it is automatically
booted.  With Windows
.B fdisk
or MINIX
.BR part ,
mark the primary partition that contains MINIX active.  Using the menu you
made earlier you can boot either MINIX or Windows at a keypress.  You can even
set timeouts.  To boot MINIX automatically after 5 seconds:
.PP
.XB "main()\0{trap\05000\0minix;\0menu}"
.PP
See
.BR monitor (8)
for all the details on the monitor.
.PP
If you don't trust this then you can rig up a diskette that boots the MINIX
partition when left in the drive:
.PP
.XB "installboot\0\-m\0/dev/fd0\0/usr/mdec/jumpboot\0010"
.PP
The numbers 010 indicate the device (disk or partition) that must be booted,
i.e.
.B /dev/c0d0p1s0
in this example.  Take the name of the device, and use the disk, partition
and subpartition numbers, or less.  So c0d1p2s0 -> 120, c0d3 -> 3,
c0d2p0 -> 20.)
.SS "11. DEVICES"
A crash course on the MINIX devices in
.BR /dev :
The first two hard disks are named
.BR c0d0
and
.BR c0d1 .
These devices address the entire hard disk, from the
first to the last byte.  Each disk has four partitions, for disk 0 they are
.BR c0d0p0 ,
.BR c0d0p1 ,
.BR c0d0p2 ,
and
.BR c0d0p3 .
And for disk 1 they are named
.BR c0d1p0
to
.BR c0d1p3 .
These partitions may contain file systems,
.B c0d0p0
often contains the
.3A MS-DOS
or Windows "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
.B c0d0p0
are named
.BR c0d0p0s0 ,
.BR c0d0p0s1 ,
.BR c0d0p0s2 ,
and
.BR c0d0p0s3 .
The other partitions may have four subpartitions that are named in the same
way.  See
.BR controller (4)
for an elaborate description.
.PP
You may need to add devices to
.BR /dev ,
because not all devices are present to keep down the clutter.
The command
.3B MAKEDEV
knows how to make devices, and
.3B DESCRIBE
can tell you what an unknown device may be, or even what all devices in
.B /dev
may be if called without arguments.  Devices are described in
.BR dev (4),
with pointers to more specific pages.
.SS "12. EDITORS"
The editors available are
.B elvis
(a
.B vi
clone)
and the old MINIX
.B mined
editor.  Of these editors only elvis can recover your file after a system
crash.  Only
.B mined
is available at installation time.  (All you need to know about mined right
now is that CTRL-X gets you out of it.)
.SS "13. BOOT MONITOR VS. MINIX"
The Boot Monitor uses the
.3A BIOS
to address disks, so it has no idea of controllers, it just lumps everything
together and ignores controller numbers.  So what the monitor thinks are
.BR d0 ,
.BR d1 ,
and
.BR d2 ,
may be
.BR c0d0
(IDE primary master),
.BR c0d2
(IDE secondary master), and
.BR c1d3
(SCSI disk at target 3).
One must keep this in mind when MINIX is installed on a disk other than the
very first.  So if MINIX is installed in the third partition of the SCSI disk,
then
.B "boot d2p2"
will boot it, and
.B "rootdev=c1d3p2s0"
will tell MINIX where its root file system is.
.SS "14. NATIONAL KEYBOARDS"
The directory
.B /usr/lib/keymaps
contains keymap tables for several national keyboards.  If you have a German
keyboard for instance, then
.PP
.XB "loadkeys\0/usr/lib/keymaps/german.map"
.PP
will load the German key translation table into the keyboard driver.  Copy
the map to
.B /etc/keymap
once MINIX is installed on the hard disk, because having to type a key
sequence like one of these:
.PP
.XB "loadkezs\0\-usr\-lib\-kezmaps\-german.map"
.XB "loqdkeys\0=usr=lib=key,qps=french.,qp"
.PP
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.)
.SH SUGGESTIONS
Below are a few useful suggestions.  Some of the information can be of use
in other situations than described here.
.SS "15. VIRTUAL CONSOLES"
Hold down the ALT key and press the left or right arrow key, F1, or F2.
This switches the console between two login sessions.  (Unless you have
an old mono adapter, because virtual consoles sit in video memory, and
a mono adapter only has memory for one.)
.PP
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.
.SS "16. LOW ON MEMORY"
The normal installation requires that you have enough memory for a large RAM
disk.  You can still install MINIX normally if you either have a high density
diskette drive for a combined root+usr floppy, or you have two floppy drives
of at least 720 kb.  Before booting you have to set the variable
.B rootdev
to the same value as
.BR ramimagedev .
This is slower than a RAM disk, but saves a lot of memory.
.PP
The automatic installation script knows how to handle this new situation.
If you install manually then you have to use
.PP
.XB "pax -rw -pe\0\-vx\0/\0/mnt"
.PP
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.
.ig
See the XT640K.TXT file for more advice on small machines.
..
.SS "17. LOW ON MEMORY AND ONLY ONE 720 KB FLOPPY DRIVE"
If you only have one 720 kb floppy drive and your system is low on memory
then you can use the \s-2TINYROOT.MNX\s+2 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 \s-2ROOT.MNX\s+2 to
install the root file system.  Keep booting your machine with
\s-2TINYROOT\s+2 until you have compiled a small kernel for your system.
Use the
.B rootdev
boot variable to select the hard disk root file system.  Do
.B not
use \s-2TINYROOT\s+2 for anything other than booting, always use
\s-2ROOT\s+2 when mentioned.
.SS "18. FLOPPY DRIVE 1 IS A HIGH DENSITY DRIVE"
If you would like to install from floppy drive 1 then you need to copy at
least one sector from the \s-2USR\s+2 image onto a diskette for drive 0.
The \s-2USR\s+2 bootstrap has been rigged to boot the other drive.
.SS "19. INSTALLING ON A SECOND HARD DISK"
MINIX doesn't care if it is installed on the second disk of a system with
two disks.  The only problem is to get it booted.  You can either rig up
a diskette to boot MINIX as shown earlier, or you can use the same trick
on the first disk.  The command
.PP
.XB "installboot\0\-m\0/dev/c0d0\0/usr/mdec/jumpboot\01"
.PP
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 Windows fdisk.  First verify that the
Boot Monitor can boot a Windows partition, because then the MINIX master
bootstrap can do it too.
.SS "20. LOTS OF MEMORY ON A 286"
You will have a hard time making MINIX use up 3 MB memory.  Memory you
can spare can be used for a "second level block cache" on the RAM disk.  The
File System uses the second level cache to store copies of disk blocks that
are pushed out of the normal (primary) block cache.  The size of the primary
cache is compiled into the FS server, but the size of the second level cache
can be set with the
.B ramsize
boot variable.  Set it to a number between 0 and 512.  512 kilobytes is
enough to keep most of the compiler cached.
.SS "21. LOTS OF MEMORY ON A 386+"
Processes can be as big as you would like on a 386, but in practice 4 MB is
a lot, and 8 MB is infinite.
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
.B ENABLE_CACHE2
to 0 and to assign the memory used by it to the
normal block cache by enlarging the appropriate
.B NR_BUFS
and
.B NR_BUF_HASH
constants in <minix/config.h> with as much as you can spare.  (1024 for
NR_BUFS is the minimum to keep
.B "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
.B ramsize
to 0.
.SS "22. LOTS OF DISK SPACE"
The maximum file system size is 1 GB for MINIX-386 and 128 MB for
MINIX-86.  (MINIX-86 can handle larger file systems, but
.B 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.
.SH 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
.BR bin !
Only in exceptional cases do you want to become root.  Being root is fun for
wannabe hackers; administrators know better.
.PP
To make life easier for bin, some programs like
.BR su (1),
.BR install (1)
and
.BR 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
.B ##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.
.PP
The home directory of bin contains one important Makefile.  You can use it
to recompile all the commands and libraries of the system.  Type
.B make
to see the usage message.  If you want to compile just one command then you
can simply type
.B make
to do so.  To put it in its proper place you have to type
.BR "make install" .
Read the Makefiles in the
.B commands
and
.B lib
subdirectories to understand how everything is put together.  If you are
tight on memory then
.B make
may fail to traverse down the source tree and also compile things.  You will
have to type
.B make
in each subdirectory.  You can run make in /usr/src at the end to see if
you've missed something or not.
.PP
The shell used by MINIX is a minimal version of
.BR ash ,
the BSD shell.  It has been modified to offer simple line editing using the
.BR editline (3)
library.
.PP
The kernel is not compiled from the master Makefile.  To make a new kernel
you have to step into the
.B tools
directory.  There you can run four different make commands:
.PP
.TP
.B make
This makes all the different kernel parts and combines them in the file
named
.BR image .
.TP
.B make hdboot
First makes the image file and then copies it into the directory
.BR /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
.B /minix
contains before you run
.BR "make hdboot" .
Remove the oldest image if you want another image to become the stable
image.  The Boot Monitor chooses the newest image in
.B /minix
to boot.  You can use the monitor command
.B ls minix
to view the images present, and set the
.B image
variable to the full name of the image you want to use instead if the newest
doesn't work.  The images in
.B /minix
are named using the MINIX release and version numbers with an extra revision
number added to distinguish the images.
.PP
The first new kernel you would like to make is one configured for your
system.  The kernel you are running now contains several drivers
you don't need, or may be missing drivers that you might want.
In <minix/config.h> you can find a number of
.BI ENABLE_ XXX
variables that can be set to
.B 0
to exclude, or
.B 1
to include a particular driver.  The full list of configurable parameters
and what they do are described in
.BR config (8).
It is invaluable in figuring out what to change and how in <minix/config.h>.
.PP
Configuring a new kernel is sometimes not enough to enable new devices, you
sometimes need to use the
.B MAKEDEV
command to make new device files in
.BR /dev .
For pseudo-ttys you also have to check if
.B /etc/ttytab
mentiones the new devices.
.PP
New additions to the system can be made in the
.B /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
.B adduser
command.
.PP
The
.B TZ
variable in
.B /etc/profile
tells the time zone offset from the wall clock time to GMT.  You have to
change it for your time zone.  (See
.BR TZ (5).)
.PP
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
.BR console (4)
to know all the details of the screen and keyboard.
.SS "23. SYSTEM SHUTDOWN"
You can't just turn a MINIX system off.  MINIX must be told to flush the
modified data in the file system cache first.  The following
commands/keystrokes can be used to exit MINIX properly:
.TP
.B 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
.BR shutdown (8).
.TP
.B reboot / halt
Alert all processes of the system shutdown then reboot or halt.
.TP
.B \s-2CTRL\-ALT\-DEL\s+2
Halt the system by running
.BR "shutdown \-h now" .
.PP
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
.B shutdown \-R
to reset the system.
.PP
When exiting MINIX running under DOS the Boot Monitor's
.B exit
command will return you to the DOS prompt.  The Boot Monitor and MINIX
are together just a pretty big DOS program as far DOS is concerned.
.SH "SEE ALSO"
.BR dosminix (8),
.BR monitor (8),
.BR boot (8),
.BR part (8),
.BR mkfs (1),
.BR mount (8),
.BR M (8),
.BR fstab (5),
.BR hier (7),
.BR config (8),
.BR console (4),
.BR dev (4),
.BR adduser (8),
.BR TZ (5),
.BR shutdown (8).
.br
"Operating Systems \- Design and Implementation 2/e" by Andrew S. Tanenbaum
and Albert S. Woodhull.
.SH NOTES
The notation
.BI < file .h>
refers to a C language include file in /usr/include.
.PP
.B Root
and
.B 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
.B foo
from the current directory,
.B ./foo
must be typed.
.SH 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
.B processor
to
.BR 86 .
Almost no PS/2 has a standard disk, so setting
.B c0
to
.B esdi
or
.B bios
will be necessary.
.PP
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
.B tar
or
.B 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.
.SH AUTHOR
Kees J. Bot <kjb@cs.vu.nl>