BIOS-taken
Het Basic Input/Output System (BIOS) voert op een x86-computer altijd dezelfde basistaken uit. Het initialiseert de hardwarecomponenten die nodig zijn om het eigenlijke besturingssysteem op te starten. Dat zijn met name de processor (CPU), het hoofdgeheugen (RAM), de chipset met PCIe-, SATA- en usb-controllers en het opslagmedium, dus de ssd of harde schijf.
De duivel zit daarbij in de details. Om bijvoorbeeld te achterhalen welke geheugenmodules geïnstalleerd zijn, moet het BIOS eerst de chipset zo ver starten dat de daarin ingebouwde I2C-interface actief is. Die leest vervolgens de SPD-EEPROMchips op de geheugenmodules uit die aangeven op welke frequentie en met welke latenties de modules werken. Als de pc van usb moet kunnen opstarten, moet het BIOS de usb-controller in de chipset activeren, diens stuurprogramma laden, usb-apparaten op de bus herkennen, opslagmedia identificeren, hun stuurprogramma laden, het bestandssysteem herkennen en daar het stuurprogramma voor laden. Dergelijke samenhangen en de overdaad aan functies en interfaces van moderne chipsets maken de BIOScode complex.
Een flexibele automatische configuratie kost bovendien ook tijd. Bij nauwelijks uitbreidbare notebooks met vastgesoldeerde componenten (geheugen, ssd en gpu) kunnen de parameters vastgelegd worden om herkenningsroutines uit te sparen.
De BIOS-code groeit door alle extra functies. Sommige wil je per se hebben: de keuze van het bootmedium (PCIe NVMe, SATA, RAID, usb, sd-kaart, netwerk), usbtoetsenbordemulatie voor toegang tot de BIOS-instellingen, configureerbare ventilatorregeling of het wachtwoordbeheer voor harde schijven. Andere extra's lijken minder noodzakelijk, zoals logoschermen, kunnen overklokken, aansturing van RGBledstrips en een BIOS-update via internet.