Site hosted by Angelfire.com: Build your free website today!

The Boot Sequence

 

 

  • LINUX BOOT PROCESS DETAILS

    At power on, a computer:

     

    ¨      performs the power on self test, or POST.

     

    ¨      Begins the Plug and Play device initialization

     

    Plug and Play initialization:

     

    (NOTE: If the BIOS is not plug and play compatible, no further PnP steps are performed at this stage, the PnP devices are enumerated in protected mode.)

     

    An ISA Plug and Play compatible system BIOS POST performs the following sequence of steps:

     

    ¨      Disable all configurable devices known to the system BIOS.

     

    ¨      Identify all Plug and Play ISA devices.

     

    ¨      Construct initial resource map of allocated resources.

     

    ¨      Enable Input and Output Devices.

     

    ¨      Configure the Initial Program Load (IPL) device.

     

    ¨      Perform ISA ROM scan.

     

    ¨      Enable Plug and Play ISA and other configurable devices.

     

    ¨      Initiate the Interrupt 19H IPL sequence.

     

    ¨      Operating system takes over resource management.

     

    ¨      The last thing the BIOS does is to point to the boot sector on the disk, from here the Master Boot Record is read into memory.

     

     

     

    The MBR code:

    ¨      relocates itself (a backward-compatibility requirement),

    ¨      finds a bootable partition,

     

    ¨       loads the active boot sector from the bootable partition and transfers control to it.

     

    ¨       the MBR code can also report some errors.

     

     

     

    The code found in the active boot sector, which is specific to the current operating system, is referred to as the DOS Boot Record (but should probably be called the Windows Boot Record in this scenario).  The DBR then:

     

    ¨      Verifies that the OS files are present in the root directory

     

    ¨      Parses the BIOS Parameter Table to locate IO.SYS

     

    ¨      Loads IO.SYS into memory and transfers control to it.

     

     

    IO.SYS then:

     

    ¨      parses some options in MSDOS.SYS and loads compression if it is present

     

    ¨      parses CONFIG.SYS and AUTOEXEC.BAT (if present), loads HIMEM, SETVER and IFSHLP, then sets defaults for PATH, FILES, BUFFERS, etc.

     

    ¨      parses Registry keys that include boot instructions

     

    ¨      starts WIN.COM

     

    ¨      WIN.COM starts VMM32.VXD

     

    ¨      VMM32 loads all .VXD’s that were bound into it at setup

     

    ¨      At the time in dosmgr_init time, switches to protect mode

     

    ¨      Many remaining Ring 0 init processes are completed

     

    ¨      SHELL.VXD loads KERNEL16.

     

    ¨      KERNEL16 makes the DPMI calls necessary to create the 16-bit System VM in Ring3, then returns control to SHELL.VXD

     

    ¨      SHELL.VXD loads the first page of KERNEL32 in to the System VM, then starts KERNEL32

     

    ¨      KERNEL32 starts running

     

    ¨      KERNEL16 loads GDI16

     

    ¨      All other Ring 3 drivers are loaded in a specific order by KERNEL16 (keyboard, mouse, etc.), ending with third-party drivers from SYSTEM.INI (if present)

     

    ¨      KERNEL32 loads GDI32

     

    ¨      KERNEL32 loads USER16 and USER32

     

    ¨      USER loads MSGSRV32, which calls wnet_init

     

    ¨      MSGSRV32 loads user-specified executables from HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices

     

    ¨      MSGSRV32 starts MPREXE.EXE, which puts up login dialog box while executables continue to run

     

    ¨      User logs in, networking components validate with server and obtain any user profiles from server

     

    ¨      MSGSRV then starts EXPLORER.EXE and the user interface opens

     

    ¨      EXPLORER.EXE opens separate threads for the taskbar, the desktop and the messaging queue for the shell, plus any threads that were open at the last shutdown

     

    ¨      EXPLORER.EXE then starts any remaining user-specified executables in the Registry, then any from the Startup folder

     

    The system is now ready to use.