add directory Minix
This commit is contained in:
413
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT8/MONITOR.8
Normal file
413
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT8/MONITOR.8
Normal file
@@ -0,0 +1,413 @@
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
NAME
|
||||
monitor, edparams - load and start Minix, modify boot parameters
|
||||
|
||||
SYNOPSIS
|
||||
edparams device [command ...]
|
||||
boot.com virdisk
|
||||
|
||||
DESCRIPTION
|
||||
This text describes the Boot Monitor, a boot time interactive program
|
||||
designed not only to load and start Minix, its most important task, but
|
||||
to also provide an easy to use interface to configure Minix and to boot
|
||||
other operating systems.
|
||||
|
||||
The monitor is controlled with an environment that is modeled after the
|
||||
Bourne shell. This environment is filled at startup with default values
|
||||
that depend on the machine the monitor is running on and the environment
|
||||
settings saved into the boot parameters sector (the second sector on a
|
||||
device). When the environment is loaded, the monitor executes the
|
||||
function named main, which by default starts a simple menu.
|
||||
|
||||
The environment can be manipulated at boot time from the monitor prompt,
|
||||
but may also be edited using edparams on a given device. Edparams
|
||||
simulates the monitor as much as it can, echoing commands it can't
|
||||
execute between brackets. It can also be used in Makefiles and scripts
|
||||
by giving it commands as arguments.
|
||||
|
||||
The MS-DOS version of the monitor, usually named boot.com under DOS,
|
||||
boots Minix from a "DOS virtual disk". (See below.)
|
||||
|
||||
COMMANDS
|
||||
The monitor is best described by the commands you can type to the '>'
|
||||
prompt. This is known as the "monitor mode". You can enter this mode by
|
||||
hitting the Escape key. These are the monitor commands:
|
||||
|
||||
name = [device] value
|
||||
|
||||
Set environment variable.
|
||||
Changes the value of name to value. The optional word device marks
|
||||
name as being subject to device translation. (See the section on
|
||||
devices.) These (name, value) pairs are passed to the kernel who
|
||||
uses them to configure itself. These variables are passed by
|
||||
default:
|
||||
|
||||
rootdev
|
||||
This is the device used as your root device. It is by default
|
||||
set to ram, which means that the device specified by
|
||||
ramimagedev will be loaded into the RAM disk and used as root.
|
||||
If you change this variable then a physical device will be used
|
||||
as root, and the RAM disk will be uninitialized and have the
|
||||
size specified by ramsize.
|
||||
|
||||
|
||||
1
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
ramimagedev
|
||||
Describes the device to use to initialize the RAM disk if
|
||||
rootdev is set to ram. It's by default set to bootdev, a
|
||||
special name for the device the monitor booted from.
|
||||
|
||||
ramsize
|
||||
The size of the RAM disk. If the RAM disk is used for the root
|
||||
file system then the root file system is stretched out to
|
||||
ramsize if possible.
|
||||
|
||||
processor
|
||||
Set by default to 86, 186, 286, 386, 486, ... depending on the
|
||||
hardware you have. You can set it to a smaller value to test
|
||||
your kernel in a more limited environment.
|
||||
|
||||
bus
|
||||
The type of system bus, either xt, at or mca. This answers
|
||||
basic questions like: "How many interrupt controllers and how
|
||||
to initialize?" Or: "Does the keyboard have LEDs?"
|
||||
|
||||
memsize
|
||||
Kilobytes of conventional memory. This is the amount of RAM
|
||||
within the first megabyte.
|
||||
|
||||
emssize
|
||||
Kilobytes of extended memory.
|
||||
|
||||
video
|
||||
Describes capabilities of the VDU: mda, cga, ega or vga.
|
||||
|
||||
chrome
|
||||
Either color or mono.
|
||||
|
||||
console
|
||||
If set to a hexadecimal value makes the monitor set the BIOS
|
||||
video mode to this value. This allows the use of video modes
|
||||
with more rows or colums than the standard 80x25 mode. The
|
||||
kernel must of course be able to handle a nonstandard mode.
|
||||
More parameters may follow the mode number. Warning: Not all
|
||||
monitors can handle all of the modes, some may generate
|
||||
frequencies that can damage your monitor. Read the manual of
|
||||
card and monitor for details.
|
||||
|
||||
Two variables are only used by the monitor, even though they are
|
||||
passed to the kernel too:
|
||||
|
||||
image
|
||||
The name of the file containing the kernel image, by default
|
||||
minix. If it refers to a directory however then the newest
|
||||
file inside the directory is chosen to be the kernel image.
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
The names inside /minix/ are best set to the Minix version you
|
||||
are using, which looks good when the monitor prints its name.
|
||||
Rules for pretty printing image names:
|
||||
|
||||
A '/' or '_' is changed to a space.
|
||||
|
||||
The first letter is changed from lowercase to uppercase.
|
||||
|
||||
An 'r' if followed by a digit changes to " revision ".
|
||||
|
||||
label
|
||||
If set then only processes marked with this label or without a
|
||||
label are loaded from the image.
|
||||
|
||||
Installboot -boot will create functions to select images and labels.
|
||||
These functions will set label and image and echo what you selected.
|
||||
The two numbers separated by a colon used as an image name tell the
|
||||
starting sector and sector count of the image on disk.
|
||||
|
||||
name() { ... }
|
||||
Define function.
|
||||
Functions may be used to bundle a set of commands, so that you can
|
||||
easily boot Minix with a different set of parameters then normal.
|
||||
E.g.
|
||||
|
||||
ram() { rootdev=ram; boot }
|
||||
|
||||
will allow you to run Minix with the root device on RAM for a
|
||||
change, if you normally use a real device as root. The only pre-set
|
||||
function is main with default value menu, which is the default
|
||||
command executed by the monitor. You can use newlines after the ')'
|
||||
token, the monitor will then use a '+' prompt and ask for the rest.
|
||||
|
||||
name(key) { ... }
|
||||
Define kernel selecting function.
|
||||
The menu command uses functions like these to add menu entries to
|
||||
select a different kernel from a boot disk. Installboot -boot
|
||||
produces these functions when the images are labeled. The label AT
|
||||
would give:
|
||||
|
||||
AT(a) {label=AT;image=42:626;echo AT kernel selected;menu}
|
||||
|
||||
With the menu option:
|
||||
|
||||
a Select AT kernel
|
||||
|
||||
Typing a will then execute the AT function above.
|
||||
|
||||
name(key,text) { ... }
|
||||
User defined menu option.
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
This variant may be used to make any menu entry you like:
|
||||
|
||||
dos(d,Boot MS-DOS) { boot hd1 }
|
||||
|
||||
Text may be anything, even parentheses if they match.
|
||||
|
||||
name
|
||||
Call function.
|
||||
If name is a user defined function then its value is expanded and
|
||||
executed in place of name. Try a recursive one like 'rec()
|
||||
{rec;xx}' one day. You can see the monitor run out of space with
|
||||
nice messages about using chmem(1) to increase it's heap.
|
||||
|
||||
boot [-opts]
|
||||
boot device
|
||||
Boot Minix or another O.S.
|
||||
Without an argument, boot will load and execute the Minix image
|
||||
named by the image variable. With options the variable bootopts is
|
||||
first set to -opts before Minix is started, and unset when Minix
|
||||
returns. With a device argument, boot loads the boot sector of
|
||||
device into memory and jumps to it, starting another operating
|
||||
system. You would normally use partitions on the first hard disk
|
||||
for this command (hd[1-4]), using hd0 will also work (choosing the
|
||||
active partition). One can also boot devices on the second hard
|
||||
disk (hd[5-9]) if the bootstrap writer did not hardwire the disk
|
||||
number to disk 0.
|
||||
Some Operating Systems can only be booted from the active partition,
|
||||
if you use a '*', e.g. boot *hd3, then partition 3 is first made
|
||||
active. You'll then need to use installboot -master with a fix key
|
||||
to forcefully boot the Minix partition at startup.
|
||||
|
||||
delay [msec]
|
||||
Delay (500 msec default).
|
||||
Fast booting speed was one of the objectives when this program was
|
||||
created, so a hard disk boot usually takes only a fraction of a
|
||||
second. If you need some time (to hit Escape, or stare at the
|
||||
numbers) you can use delay to make the monitor pause for a specified
|
||||
amount of time. To specify a delay just before Minix is started,
|
||||
you can set the variable delay to a number of milliseconds.
|
||||
Example:
|
||||
|
||||
main() {delay 250; delay=500; boot}
|
||||
|
||||
Look at this carefully, 'delay 250' means: "wait 1/4 sec now!",
|
||||
while 'delay=500' means: "wait 1/2 sec after loading Minix".
|
||||
|
||||
If you use delay=swap then the monitor will wait until you have
|
||||
inserted a root diskette and typed RETURN.
|
||||
|
||||
echo word ...
|
||||
|
||||
|
||||
4
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
Print these words.
|
||||
Used to tell you that you just selected image X.
|
||||
|
||||
ls [directory]
|
||||
List contents of a directory.
|
||||
Useful when looking for kernel images.
|
||||
|
||||
menu
|
||||
Menu driven startup.
|
||||
This command allows you to execute functions defined with a key. If
|
||||
no menu functions have been defined then menu will use this one
|
||||
hidden built-in function:
|
||||
|
||||
*(=,Start Minix) { boot }
|
||||
|
||||
Kernel selecting functions only add new options to this set, but if
|
||||
you define a two argument function yourself then the above one is no
|
||||
longer shown, allowing you to customize the menu completely. Your
|
||||
first function definition should therefore be one that starts Minix.
|
||||
|
||||
Menu entries are shown in the same order as set shows them. If you
|
||||
don't like the order then you have to unset the functions and retype
|
||||
them in the proper order.
|
||||
|
||||
If you type a key then a scheduled trap is killed and the
|
||||
appropriate menu function is executed. If you need more time to
|
||||
choose then hit the spacebar. A key not on the menu also kills a
|
||||
trap, but does nothing more.
|
||||
|
||||
save
|
||||
Save environment.
|
||||
This will save all the environment variables and functions with
|
||||
nondefault values to the parameter sector (the second sector on the
|
||||
boot device), so they are automatically set the next time you boot
|
||||
the monitor.
|
||||
|
||||
set
|
||||
Show environment.
|
||||
Show the current values of the environment variables and functions.
|
||||
Default values are shown between parentheses to distinguish them
|
||||
from values that were explicitly set.
|
||||
|
||||
trap msec command
|
||||
Schedule command.
|
||||
Schedules a command to be executed after msec milliseconds. Only
|
||||
the monitor mode cannot be interrupted, a scheduled trap is killed
|
||||
when the prompt is printed. Example:
|
||||
|
||||
main() {trap 10000 boot; menu}
|
||||
|
||||
|
||||
|
||||
5
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
This gives you 10 seconds to choose a menu option before Minix is
|
||||
booted.
|
||||
|
||||
unset name ...
|
||||
Unset environment variables.
|
||||
Removes the named variables and functions from the environment, and
|
||||
sets special variables back to their default values. This is also
|
||||
the only way to remove the "device name translation" property from a
|
||||
variable.
|
||||
|
||||
exit
|
||||
Exit the monitor
|
||||
Reboot the machine, exit to Minix or exit to DOS as appropriate.
|
||||
|
||||
DEVICES
|
||||
The Minix kernel can't do anything with device names, so they have to be
|
||||
translated to device numbers before they are passed to the kernel. This
|
||||
number is found under the st_rdev field (see stat(2)) of the file on the
|
||||
boot file system. The monitor will look for the device file with the
|
||||
working directory set to '/dev'. If it can't find the device name then
|
||||
it will translate names like 'ram', 'fd1', 'hd6', 'hd3a', and 'sd2' to
|
||||
what it itself thinks the numbers should be.
|
||||
|
||||
The special name bootdev is translated to the name of the device booted
|
||||
from, like 'fd0', or 'hd3', and then searched for in /dev. Bootdev can't
|
||||
be translated to a device other then the fd or hd devices, so SCSI
|
||||
devices for instance must be named explicitly.
|
||||
|
||||
EXTENSIONS
|
||||
A few extensions have been made to this program for kernel hackers. They
|
||||
may be triggered by setting bits in the flags word in the kernel startup
|
||||
code (the mpx file.) The flag bits are:
|
||||
|
||||
0x0001 Call kernel in 386 mode.
|
||||
|
||||
0x0002 Do not make space for the bss areas of processes other then the
|
||||
kernel.
|
||||
|
||||
0x0004 Use the stack size set by chmem(1).
|
||||
|
||||
0x0008 Load MM, FS, etc. into extended memory.
|
||||
|
||||
0x0010 No need to patch process sizes into the kernel.
|
||||
|
||||
0x0020 The kernel can return to the monitor on halt or reboot.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
6
|
||||
|
||||
|
||||
|
||||
MONITOR(8) Minix Programmer's Manual MONITOR(8)
|
||||
|
||||
|
||||
MS-DOS MONITOR
|
||||
Minix-vmd has a version of the monitor that runs under MS-DOS to boot a
|
||||
"DOS virtual disk". It is a simple COM program that interprets an MS-DOS
|
||||
file as a disk, loads a Minix kernel from the active partition in the
|
||||
same way as the BIOS based monitor, and executes it to start Minix. All
|
||||
the monitor commands function in the same way, except for the boot
|
||||
command, it can only load Minix. The memory that MS-DOS has in use is
|
||||
copied out of the way when Minix takes control, and is put back in place
|
||||
when Minix exits. This memory shuffling also happens when the BIOS disk
|
||||
driver makes BIOS calls, slowing things to a crawl. It is better to use
|
||||
a Minix driver. The MS-DOS monitor does not work if there is a memory
|
||||
manager active that runs in 386 protected mode, like EMM386.
|
||||
|
||||
SEE ALSO
|
||||
chmem(1), stat(2), installboot(8), usage(8), boot(8).
|
||||
|
||||
BUGS
|
||||
The delay command will hang forever on the original IBM PC (not the XT!).
|
||||
Not that it matters, as everything takes forever on that box.
|
||||
|
||||
Reading the first sector to boot a floppy (e.g. boot fd1), is done using
|
||||
whatever floppy parameters boot currently has available. This will
|
||||
probably always work.
|
||||
|
||||
The two forms of delay are a crock.
|
||||
|
||||
The word emssize comes from EMS, that has to do with expanded memory, not
|
||||
extended memory.
|
||||
|
||||
ACKNOWLEDGMENTS
|
||||
Guy Helmer, for the floppy sensing code that somehow disappeared into the
|
||||
boot block.
|
||||
|
||||
Earl Chew, for the inspiration his ShoeLace package provided, unless he
|
||||
wants to file a "look and feel" suit against me, then I will say I
|
||||
modeled it after the SunOS ROM boot monitor, which is also true.
|
||||
|
||||
AUTHOR
|
||||
Kees J. Bot (kjb@cs.vu.nl)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7
|
||||
|
||||
Reference in New Issue
Block a user