When a PC boots with an ACPI BIOS, what does it exactly do?

I understand that the point of ACPI is to allow the OS to control hardware resources and power management but before the OS is loaded does ACPI configure just the devices needed to boot and then let the OS configure the rest?

If the OS wants to re-asign hardware resources does it store this information in the ACPI tables so that the next time the system is booted it assigns them how the OS wants?

The ACPI driver asks the PCI bus driver (Pci.sys) to enumerate devices on its bus once the OS is loaded, how are these devices configured whilst the PC is booting when it doesn't have other bus drivers?

Any help with any of the above questions would be greatly appreciated.


1 Answer 1


BIOS services are not used by modern multitasking GUI operating systems after they initially load, so the importance of the primary part of BIOS is greatly reduced from what it was initially in the IBM PC. Modern OS do not rely on the BIOS to recognize the hardware but do it themselves. The BIOS is after all much smaller than the OS and contains much fewer drivers.

The role of the BIOS is to read the operating system into memory and start it executing. The most important role of the BIOS is to identify candidate boot devices. To that purpose, the BIOS is usually customized to the particular manufacturer's hardware. For a modern operating system its role stops there and the OS will re-analyze the hardware and will correct BIOS failures or inaccuracies.

I believe it was in Vista that I first encountered a disk drive that the BIOS analyzed as much smaller than it really was, but everything was correct after the installation of Vista.

As of 2011, the BIOS is being replaced by the more complex Extensible Firmware Interface (EFI) in many new machines. The interface defined by the EFI specification includes data tables that contain platform information, and boot and runtime services that are available to the OS loader and OS.

EFI defines two types of services: boot services and runtime services. Boot services are only available while the firmware owns the platform and include text and graphical consoles on various devices, and bus, block and file services. Runtime services are still accessible while the operating system is running; they include mostly services such as date, time and NVRAM access.

ACPI aims to consolidate, check and improve upon existing power and configuration standards for hardware devices. However, once power management is under the control of the operating system, it takes over and has exclusive control of all aspects of power management and device configuration. The OS then usually emulates ACPI-compatible system calls, but does not use the BIOS/UEFI for that.

See Wikipedia :
Unified Extensible Firmware Interface
Advanced Configuration and Power Interface

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .