LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   How does Linux override BIOS settings (https://www.linuxquestions.org/questions/linux-software-2/how-does-linux-override-bios-settings-739404/)

whho 07-11-2009 11:12 AM

How does Linux override BIOS settings
 
Hello,

In the process of configuring of my server, I come to a question: How does Linux override BIOS settings?

For example, if I disable a HD in BIOS, windows will not see it. It just disappears. However, Linux will see them regardless of how many drives are disabled in BIOS. Does windows depend on certain BIOS api, while Linux doesn't depend on it? Does Linux kernel overwrite the loaded BIOS programs/data, or Linux just ignore them? How does it all work?

Thanks!

whho

kilgoretrout 07-11-2009 02:04 PM

Once the linux kernel loads, linux kisses the bios good bye. All hardware detection is then done through the linux kernel. The only thing the bios does for linux is identify the boot device and load the kernel via the bootloader. Linux doesn't overwrite anything in the bios so much as completely ignore it once the kernel loads.

In windows, hardware detection is much more tightly bound to the bios. For example, older bioses had limitations on the maximum size of the hard drives it would recognize. These over sized drives would be undetected by the bios and windows but be plainly visible in linux if you had linux on another bootable drive within the size limits of the bios. It's more a matter of the history of the PC than anything else. The PC bios was designed to work with the old DOS based windows and the quirks of the windows kernel. For the development of the linux kernel, you didn't want or need to have hardware detection tied to the bios. Once the kernel loads, linux accesses the hardware directly.

whho 07-11-2009 10:08 PM

Hi Kilgo,

Thanks for your explanation! I really like the history bit!

Do you have any information or links explaining in more detail what address bios is loaded into and how a boot loader access the information in the bios?

Does a boot loader call a function or access a certain register or read a certain block of memory or what?

Thanks again! Any idea is welcome!

whho

Erik_FL 07-11-2009 11:19 PM

It's basically a choice for an operating system to pay attention to the configuration information kept by the ACPI (Advanced Configuration and Power Interface). The BIOS creates a database of the detected hardware, disks, etc. It can also configure some devices based on the information the hardware provides as part of Plug and Play.

Newer versions of Windows require an ACPI BIOS and will not work without it unless you install a special HAL (Hardware Abstraction Layer).

Linux does not require ACPI although you can load modules that support the power management features of ACPI and hot plugging.

ACPI provides assistance for power management. The BIOS still has to be involved in placing hardware in low power modes so Linux does use the BIOS ACPI interface. On laptops it may be necessary to load special ACPI modules for Linux to support all the power management features provided by the BIOS.

whho 07-12-2009 01:03 AM

Hi Erik,

Really thank you for your detailed explanation!

It helps and hopefully it is helpful to someone too!

whho


All times are GMT -5. The time now is 01:59 PM.