BIFS Boot Procedure
The following figure represents the major stages of the OS/2 Version 2.0
BIFS boot procedure.
-------------------------------------------------------------> time
POST BlackBox OS2LDR stage1 stage2 stage3
(Micro OS2KRNL
FSD)
Figure 4-2. OS/2 Version 2.0 BIFS boot procedure
The major difference between this boot procedure and the FAT boot
procedure is that there is no assumption of booting off of disk. OS/2
Version 2.0 does not define what should happen between when the POST code
is run and when the OS2LDR program gains control.
When OS2LDR receives control, it must be passed information about the
current state of memory and pointers to the Open, Read, Close, and
Terminate entry points of the micro-FSD. Included in the memory map
information is the positions of the micro-FSD, mini-FSD, RIPL data, and
the OS2LDR file itself.
Note: This interface is defined in a next section of this chapter.
As with the FAT boot procedure, the OS/2 loader relocates itself to the
top of low memory, and with the help of the micro-FSD, scans the root
directory for the OS2KRNL file. After reading OS2KRNL into memory and
applying the required fixups, control is transferred to the kernel.
When OS2KRNL receives control, it goes through the same initialization as
before (stage 1) with a couple of exceptions. The module loader is called
to load the mini-FSD from its memory image stored by OS2LDR in high memory
to its final location at the top of low memory. Also, the mini-FSD is
called to read the base device drivers (one at a time) through the stage 1
interfaces.
Before any of the dynalinks are loaded, the mini-FSD will be linked into
the IFS chain (it will be the only link in the chain) and asked to
initialize through FS_INIT. The FS_INIT call marks the transition from
stage 1 to stage 2.
The dynalinks are then loaded using the stage 2 interfaces, followed by
the device drivers and FSDs.
The mini-FSD is required to support only a small number of the FSD system
interfaces (the FS_xxxx calls). Therefore, the first FSD loaded must be
the replacement for the mini-FSD.
After the replacement FSD has been loaded, it is called at FS_INIT to
initialize itself and take whatever action it needs to effect a smooth
transition from the mini-FSD to the FSD. It then replaces the mini-FSD in
the IFS chain, as well as in any kernel data structures which keep a
handle to the FSD (for example, the SFT , VPB). This replacement marks the
transition from stage 2 to stage 3.
From this point on, the system continues normally.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs