De BIOS is dood, lang leve EFI! Dankzij de nieuwe technologie is het voor moederbordfabrikanten veel eenvoudiger om unieke mogelijkheden aan hun BIOS toe te voegen. Daarnaast zorgt EFI ervoor dat uitbreidingskaarten platformonafhankelijk kunnen werken. Wat we precies als consument van EFI kunnen verwachten is nu nog afwachten, maar de plannen zijn veelbelovend! De nieuwe PC's van Apple of de moederborden van Intel bewijzen dat EFI eigenlijk geen toekomstmuziek hoeft te zijn. Fabrikanten als ASUS, MSI en Gigabyte gaan pas in 2008 of 2009 aan de slag met de nieuwe standaard.
Inleiding
De BIOS is zonder twijfel het oudste stuk software dat zich in je moderne PC bevindt. Om uiteenlopende redenen is het hoog tijd voor vernieuwing. Intel heeft met de EFI-standaard een opvolger voor het aloude BIOS ontwikkeld.
Iedereen kent de BIOS als het eerste stuk software dat je ziet wanneer je de computer aanzet. Door op de delete-knop te drukken kom je in de regel uit in het bij het BIOS behorende configuratiemenu, wat zeker voor overklokkers een belangrijk onderdeel is. In feite is het BIOS - wat staat voor Basic Input/Output System - inderdaad niets meer of minder dan het eerste stukje software dat wordt uitgevoerd zodra een processor van stroom wordt voorzien. De BIOS neemt plaats in een klein stukje flash-geheugen op het moederbord (meestal maximaal 1 MB groot) en bevat de code om de belangrijkste hardware binnen de PC te initialiseren en code om opstartapparaten als de harddisk of een optische drive aan te spreken. Zodra de BIOS zijn taken heeft volbracht, wordt de controle van het systeem overgegeven aan het besturingssysteem. Beide kunnen dus niet zonder elkaar.
Antiek
Het BIOS stamt in zijn oorspronkelijke vorm uit het einde van de jaren '70 en is destijds ontwikkeld voor de eerste IBM PC's. De afgelopen decennia is het BIOS telkens opgelapt om nieuwe soorten hardware te kunnen ondersteunen, maar de basis van het BIOS zoals we dat op moderne moederborden tegenkomen ligt nog steeds bij de code van jaren geleden, inclusief de nadelen die daarbij horen. Het BIOS spreekt zelfs de nieuwe typen processors aan als een 8088 uit eind jaren ‘80, ofwel in antieke 16-bits modus met een 640 kB geheugenlimiet. Het BIOS is zodoende een van de belangrijkste redenen waarom nieuwe CPU's nog steeds in deze compatibiliteitsmodus moeten kunnen werken. Besturingssystemen en software gebruiken het al jaren niet meer.
Het feit dat het BIOS zo oud is, is niet eens de voornaamste reden waarom het tijd is voor vernieuwing. Een belangrijk nadeel van het BIOS is immers dat er geen echte standaard voor bestaat. Wie uitbreidingen voor het BIOS wil maken kan dus nergens terugvinden waar zijn code exact aan moet voldoen; in feite doet iedereen maar wat en wordt er met het digitale equivalent van veel plakband voor gezorgd dat alles blijft werken. Daar komt nog eens bij dat de software van het BIOS moet worden geschreven in assembler, ofwel rechtstreeks in machinetaal. Dat is vele malen ingewikkelder dan mooie high-leveltalen als C++ waarin de meeste normale software wordt geprogrammeerd. Het kunnen programmeren in assembler is een kunst die steeds minder mensen meester zijn; geen wonder dus dat de BIOS-programmeurs bij moederbordfabrikanten over het algemeen de oudste mensen op de loonlijst zijn. Nieuwe krachten die dit trucje kunnen zijn bijna niet te vinden. Daar komt nog eens bij dat hoe complexer de BIOS-toevoegingen zijn, hoe moeilijker het programmeren is: het kunnen opstarten van een USB-apparaat klinkt bijvoorbeeld als een zeer simpele feature in een BIOS, maar daar hebben slimme assemblerprogrammeurs toch flink op zitten zweten. En dan hebben we het nog niet over alle complexe overkloktools die verschillende fabrikanten in hun BIOS implementeren.
Om de afhankelijkheid van legacy-hardware te omzeilen, om nieuwe soorten hardware mogelijk te maken en om het eenvoudiger te maken om uitbreidingen voor het BIOS te programmeren is het dus tijd voor vernieuwing...
De BIOS (Basic Input/Output System) is het oudste stukje
software in de PC en is dus hoognodige aan modernisering toe.
Intel heeft een opvolger voor de BIOS ontwikkeld, de Extensible
Firmware Interface kortweg EFI. De grootste voordelen van EFI
zijn dat het systeem volledige platformonafhankelijk is. EFI
heeft ook veel meer aanpasmogelijkheden voor bijvoorbeeld
fabrikanten van moederborden. De nieuwe computers van Apple
maken al gebruik van EFI. Windows gebruikers zullen echter
moeten wachten tot 2008 of 2009.
Die vernieuwing
werd, zoals zoveel technologieën binnen de PC,
ingezet door processorfabrikant Intel. Tijdens
de ontwikkeling van de Itanium serverprocessor,
die van een compleet andere architectuur gebruik
maakt dan alle x86 processors, liep men tegen
het probleem aan dat het aloude BIOS daarvoor
totaal niet geschikt was en er een vervanger
nodig was. In de jaren ‘90 startte men daartoe
het project met codenaam Tiano. Doelstelling was
een BIOS-vervanger die zowel platform- als
software-onafhankelijk is, gemaakt is in een
high-level programmeertaal en volledig
gespecificeerd, zodat derden eenvoudig
uitbreidingen kunnen maken. Dit project heeft in
2001 geresulteerd in de zogenaamde EFI-standaard,
waarbij EFI staat voor Extensible Firmware
Interface.
Direct wordt de nieuwe technologie ook op de
eerste generatie Itanium-servers ingezet. Om EFI
een kans van slagen te geven als open standaard,
richtte Intel vervolgens de Unified EFI
Group op, een consortium waar inmiddels ook
grote namen als AMD, AMI en Phoenix/Award aan
verbonden zijn. Alle rechten op de EFI-standaard
zijn inmiddels eigendom van die groep en dus kan
iedereen al geruime tijd EFI-platformen
ontwikkelen zonder gebonden te zijn aan Intel.
EFI-technologie
De EFI-standaard bevat dus in feite alle zaken die het aloude BIOS moet missen. Zo is er bijvoorbeeld geen noodzaak voor legacy-hardware ondersteuning meer. Sterker nog, EFI is volledig platformonafhankelijk en de nieuwe BIOS-opvolger kan zodoende met een juiste firmwarelayer op alle denkbare platformen werken, waaronder x86 en Itanium.
Die onafhankelijkheid is ook een uitkomst voor add-in kaarten, zoals bijvoorbeeld RAID-controllers of netwerkkaarten. De firmware die daar op zit moet tot nu toe communiceren met het BIOS om het mogelijk te maken om op te starten vanaf deze apparaten. Ook deze firmware-code moet gemaakt worden in assembly en is daarbij alleen geschikt voor één soort systeemarchitectuur. Dat betekent dat je een RAID-controller die is gemaakt voor x86-gebaseerde systemen normaal gesproken niet kunt plaatsen in bijvoorbeeld een Itanium systeem of een op PowerPC architectuur gebaseerde Apple machine. Omdat het EFI-platform onafhankelijk werkt kunnen uitbreidingen, zoals die op zo'n RAID-controller of netwerkkaart, op alle EFI-platformen probleemloos functioneren. Sterker nog; het is dankzij EFI zelfs mogelijk om drivers voor hardwareplatformen onafhankelijk op BIOS-niveau te laden, waarna het besturingssysteem deze hardware zonder speciale driver via de EFI-laag kan aanspreken. Ofwel; een exotische RAID-controller heeft een EFI-driver aan boord in een stukje flash-geheugen en de EFI-technologie zorgt ervoor dat het besturingssysteem deze als normale harddisk kan aanspreken. De controller is daardoor per definitie compatible met alle denkbare besturingssystemen, zonder dat er ook maar één extra driver geprogrammeerd hoeft te worden. Dit is zeker goed nieuws voor besturingssystemen als Linux, waar niet alle hardwarefabrikanten direct goede drivers voor maken.
Daarnaast is EFI ontwikkeld in de C-programmeertaal, dat de meeste programmeurs wel onder de knie hebben. Het ontwikkelen van uitbreidingen is dus relatief eenvoudig. Dat betekent dat moederbordfabrikanten veel eenvoudiger extra mogelijkheden aan BIOS'en kunnen toevoegen. Was het implementeren van speciale overclock-features of bijvoorbeeld nieuwe bootdevices tot nu toe een verzoeking, dankzij EFI is de implementatie een stuk eenvoudiger.
