⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 install.t

📁 操作系统设计与实现源码
💻 T
📖 第 1 页 / 共 3 页
字号:
The \s-2USR\s+2 bootstrap has been rigged to boot the other drive.
.SS "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
.PP
.XB "installboot\0\-m\05\0/dev/hd0\0/usr/mdec/masterboot"
.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 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.
.SS "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
.B 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.
.SS "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
.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 "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
.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 login shell of bin is
.BR ash ,
the BSD shell.  It has been modified to offer simple line editing using the
.BR editline (3)
library.
.B Ash
is rather big, so you may have to change bin's shell back to
.B /bin/sh
with
.BR 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.
.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 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.
.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 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
.BI ENABLE_ XXX
variables that can be set to
.B 0
to exclude, or
.B 1
to include a particular driver.  Another driver related variable is
.BR 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
.B 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
.B NR_PTYS
variable sets the number of pseudo-ttys.  You need pseudo-ttys to be able to
login remotely over a network with the
.B rlogin
command.  Each remote login session needs one pseudo-tty.  If you fear that
the system will now run out of processes then increase
.BR NR_PROCS .
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 "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:
.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.
.SH FILES
.TP 12
.B /usr/ast
Honorary home directory of Andew S. Tanenbaum.  Doubles as the place where
the default setup for a new user is found.
.SH "SEE ALSO"
.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 console (4),
.BR dev (4),
.BR adduser (8),
.BR TZ (5),
.BR mkdist (8),
.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.
.PP
Some of the commands have changed since earlier MINIX versions.  For instance
.B mkfs
doesn't need a size argument anymore, and
.B 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.
.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 hd
to
.B esdi
or
.B bios
will be necessary.
.PP
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
.B make install
again in
.B /usr/src/lib/
to try and add the missing pieces.
.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)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -