Find the answer to your Linux question:
Results 1 to 6 of 6
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    bios and kernel boot sequence

    Hi does any body know what information is provided by BIOS to kernel during boot time . How does the BIOS provide the hardware information of the mother board to kernel? Which is the function in kernel which receives it ? I have a feeling that it as got something to do with atags. Any Links? I have gone through the links which shows layers of bootloader ... init, but they wont provide details regarding the hardware info passed by bios/bootloader to kernel during bootitme .

  2. #2
    strange question kartikkg

    normally the type of info is the MS-DOS commands needed to make a pc components work. i,e the bios tells the brain to switch on and makes the other components like the keyboard mouse and other periferals attached to it to work so that human input can talk to it.

  3. #3
    any update on this ?

  4. $spacer_open
  5. #4
    Just Joined!
    Join Date
    Mar 2009
    Grab a copy of Cesati et. al "Understanding the Linux Kernel", they go into great detail regarding this.

  6. #5
    basic harware information bios stores from segment 40h, i dont no exactly which kernel function read it, but it of course happens before jumping to protected mode, so at first to find this function you have to explore architecture dependend code(/arch/x86/...), second if grub doesnt perform switching to protected mode, kernel function go_to_protected_mode() do that, so try to look it before this function call

  7. #6
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    The BIOS (whether a real-mode or protected-mode BIOS) provides a well-known API. You push data into specific registers and issue an interrupt. The BIOS controls the system at this point and either returns data, or when loading the boot-loader, reads a sector from the system drive and puts it in a known memory location. The boot loader then jumps to that and continues executing code.

    There are a number of reference manuals on the subject (I have several). It isn't simple, and you need to know x86 (32-bit or 64-bit) assembler code to work with it effectively. FWIW, the last time I wrote a custom boot loader for a Unix/Linux like operating system (QNX) was in 1986-1987... Needless to say, my knowledge of the subject is a bit dated! However, even then QNX was a protected mode operating system. We had to switch to protected mode when bringing up the OS itself, and then vector into the kernel.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts