USAGE.8
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:31k
源码类别:

操作系统开发

开发平台:

WINDOWS

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