BIOS moest verdwijnen

 

Druk op DEL om in de BIOS te komen ▲

 

Award BIOS ▲

Druk op DEL, F2 of F10 om in de BIOS te komen ▲

 

Award BIOS ▲

 

Phoenix BIOS ▲ (Award gefuseerd met Phoenix)

 

Na de fusie
Na de Phoenix-Award fusie hebben latere versies van de Award BIOS nog steeds het copyright op Award Software Inc. in plaats van Phoenix Technologies Ltd., met inbegrip van de UEFI firmware.

 

Waarom het BIOS moest verdwijnen

 

De meeste moederborden zijn tegenwoordig voorzien van UEFI: wat is er ooit gebeurd met het BIOS?

 

Op vrijdag werpen we altijd een blik terug in het verleden naar tech die is verdwenen of op zijn retour is. Vandaag kijken we naar de komst en het uiteindelijke verdwijnen van het BIOS.

Henk-Jan Buist12 augustus 2016

 

Zoals je wellicht weet, is het Basic Input/Output System (BIOS) ontstaan met het werk aan klassiek besturingssysteem CP/M. Begin jaren 70 had Gary Kildall high-level programmeertaal PL/M voor chipfabrikant Intel ontwikkeld en die taal gebruikte hij tevens om het OS voor deze specifieke hardware te schrijven. Zijn Control Program/Monitor was gebaseerd op de Intel 8080-microprocessor.

 

Hardwarespecifieke code losgeweekt

Kildall zag een handige toepassing voor de net ontwikkelde floppy, namelijk om PL/M-programmatuur te ondersteunen. Met veel moeite bemachtigde hij een floppy-drive. "Pas later, toen ik thuis in mijn kantoor zat, staarde ik naar de kale drive en besefte ik dat ik geen kast, kabels, voeding, controller en - het meest verontrustende - geen hardwareontwerp-ervaring had", schreef hij destijds in het helaas ter ziele gegane Dr. Dobb's Journal.

 

Kildall legt in 1984 uit hoe CP/M ontstond door zijn werk met Intels microprocessor.

Na wat gepruts met een controllerinterface, besefte hij dat hij zijn tijd beter kon besteden aan de software en begon hij aan het bestandssysteem van CP/M. In 1975 was het OS geschikt voor vier hardwareconfiguraties en een jaar later kreeg Kildall de vraag om CP/M geschikt te maken voor een bedrijf dat een serie schijfclusters verscheepte, maar daar geen besturingssysteem voor had. Kildall zag het niet zitten om het OS aan te passen voor nůg een controller en bedacht toen om het hardwarespecifieke deel van de code te scheiden in het eerste Basic I/O System (BIOS).

 

BIOS groeit

Het in assembly geschreven BIOS hield in dat fabrikanten CP/M makkelijker konden implementeren voor ongespecificeerde hardware. Andere fabrikanten zagen snel in dat het scheiden van de aansturing van de hardware voordat het OS werd geladen enorme voordelen had in het efficiŽnter implementeren van OS'en met andere hardware. Het BIOS werd in de tweede helft van de jaren 70 breed omarmd door de sector.

 

De CR2032

De BIOS-configuratie wordt opgeslagen op een CMOS-chip op het moederbord. Dit vluchtige geheugen raakt bij verlies van stroom zijn data kwijt en de RAM-chip is daarom voorzien van een CR2032-knoopcelbatterij. Dat betekent uiteraard ook dat het BIOS in deze systemen naar zijn fabrieksinstellingen wordt teruggebracht zodra je de knoopcel verwijdert.

Het BIOS zat in programmeerbaar read-only geheugen verwerkt (PROM) en de chip was doorgaans te vervangen, maar niet aanpasbaar. Het BIOS bij bijvoorbeeld IBM PC's als de begin jaren 80 populaire XT was onderdeel van de propriŽtaire saus van de fabrikant en gebruikers hadden daar volgens hen niets te zoeken. Er werd in een later stadium gebruik gemaakt van flashgeheugen of EPROM om het BIOS bij te kunnen werken wanneer nodig.

In de serie Halt & Catch Fire gaan een IT'er en een PC-verkoper in de pilot aan de slag met een IBM-BIOS.

 

Hierna: BIOS heeft een beperkte ruimte (1024 KB) en met de uitbreiding van aansluitings-mogelijkheden, controllers en features begon Intel in de jaren 90 aan een nieuw systeem, waar inmiddels vrijwel alle PC's van worden voorzien.

 

Wie heeft er nou niet met BIOS-configuraties gestoeid? In de begintijd was dat geen optie en kon je als gebruiker het BIOS niet benaderen. Als je I/O-opties wilde veranderen, gebruikte je daarvoor een hardwareschakelaar op het moederbord; een DIP-switch en nog eerder zelfs jumpers voor devices die je los moest verwisselen. Later gebruikte je een utility op de schijf of via een diskette om wijzigingen door te voeren in het systeem.

 

Wat ik altijd jammer heb gevonden is dat er geen uniforme toets was om het BIOS aan te spreken. Bij de meeste systemen was het F10 of F12 en dan DEL of ESC voor enkel een bootmenu om te kiezen welk apparaat je opstartte.

Maar ik beheerde ook ooit systemen waarbij het F2 was (en F8 voor diagnostische modus).

 

Op een gegeven moment was je bij het starten van een PC een serie knoppen aan het aframmen om het BIOS te bereiken.

 

Het BIOS doet eigenlijk twee dingen. Ten eerste trapt het de POST af, waarbij de hardware wordt afgetast om te zien of alles klaar is om verder te gaan. Als er een pass is van de POST en de benodigde hardware is gelokaliseerd, is het de tweede taak van het BIOS om het OS aan te zwengelen. Daarom wordt er verwezen naar de bootsector van het eerste medium in de gespecificeerde bootvolgorde, waarna de bootloader wordt gestart die ervoor zorgt dat het besturingssysteem wordt geladen.

 

Power-On-Self-Test (POST)

De POST controleert behalve de BIOS-code zelf onder meer het geheugen, de CPU-registers, de DMA- en IRQ, en stuurt het BIOS en de bussen aan. Bij falen van deze procedure hoor je geen bevredigende piep bij het opstarten van de PC. Wat is er erger dan geen piepje te horen bij het opstarten van een PC? Een serie piepjes, die aangeeft dat er hardwareproblemen zijn. Als je geluk hebt zit een kabel los, is deze defect of is bijvoorbeeld de grafische kaart of een RAM-plak niet goed aangesloten. Als je pech hebt, zit je met een defecte onboard-module of kapot moederbord te kijken.

 

BIOS heeft zijn beperkingen, die voor een groot deel stammen uit de maximale geheugen-grootte van 1024 kilobyte. Het werd in de loop van de jaren 90 duidelijk dat er krapte ontstond toen er steeds meer aansluitopties en randapparatuur verscheen voor de PC. Denk aan meer usb-mogelijkheden, eSATA, audio, FireWire, PCI-kaarten, etc.

 

Verder kan de BIOS-bootstrapper partities aan van maximaal 2,2 terabyte. De oude adressering die we kennen uit de Master Boot Record is in schijven die groter zijn dan ook vervangen door de Globally Unique ID (GUID) van opvolger UEFI. En BIOS is ook gebonden aan x86-architecturen, die uit de mode zijn geraakt voor consumentenhardware.

 

Hallo UEFI, dag BIOS

Intel begon daarom met het werk aan de Extensible Firmware Interface (EFI) maar fabrikanten zagen implementatie aanvankelijk niet zitten. EFI lijkt namelijk meer op een soort opstartbesturingssysteem dan een BIOS.

 

ASUS UEFI BIOS ▲

 

MSI UEFI BIOS ▲

 

Dat doet een beetje denken aan het issue met systemd: een codeblob voert van alles uit, waardoor gebruikers de controle over de aansturing grotendeels kwijtraken.

De Universal Extensible Firmware Interface (UEFI) werd in 2007 breed goedgekeurd in een overeenkomst tussen onder meer Apple, Intel, Microsoft, IBM en Dell om BIOS te vervangen door UEFI.

 

Helemaal vlekkeloos verloopt de overstap niet altijd voor gebruikers, die tegen legacy-issues aanlopen. Hier een voorbeeld:

De programmatuur achter UEFI is open en PC-fabrikanten bouwen hun eigen implementaties boven op de BSD-kern van de code. In de praktijk wordt vaak Intels implementatie gebruikt, omdat het geen eenvoudige software is en menig fabrikant zich al een buil heeft gevallen aan het toepassen van UEFI. Hoewel het blind afgaan op de Intel-codebase ook geen goed plan is gebleken.

 

De controverse vanwege het UEFI-bootslot.

De UEFI kan vanwege de ruimte en de grafische ondersteuning er ook een stuk gelikter uitzien dan zijn verouderde voorganger die er vanwege de 1 MB-beperking blijft uitzien alsof hij in de twintigste eeuw vastzit - wat eigenlijk ook zo is. UEFI is een heel nieuwe binnenkant, maar de meeste gebruikers zullen er niet van hebben gehoord. Ondanks de controverse om een beveiligingsfeature van de nieuwe interface: Secure Boot.

 

Zettabyte-clusters

UEFI is futureproof: de bootstrapper kan nu middels GUID partities aan van 9,4 zettabyte. Eťn ZB is 1024 exabyte, wat weer 1024 terabyte is; 9,4 ZB komt daarmee volgens m'n rekenmachine neer op 1.073.741.824 TB.

Om het misschien iets duidelijker te illustreren: het totale internetverkeer (al het IP-verkeer: web, M2M, IoT, wat dies meer zij) in 2020 komt volgens Cisco naar verwachting neer op 2,3 ZB.

 

Secure Boot is een feature die vooral bekend werd toen Microsoft hem verplichtte voor fabrikanten van Windows 8-machines. Het is een beveiligingsmiddel waarbij de bootloader controleert of het OS dat wordt opgestart wel de geverifieerde code is, met behulp van een certificaat. Het voordeel is dat bootkits (in theorie, de praktijk blijkt helaas anders) geen vat meer zouden hebben op PC's. Bij het opstarten wordt de legitieme platformsoftware gestart (geverifieerd met een platform key, PK) en gewhiteliste software (geverifieerd met een key enrollment key, KEK), niet de code van malwaremakers die snode plannen hebben met een veroverd systeem.

 

De Praktijk blijkt:

Hackers omzeilen bootslot van UEFI

Drie onderzoekers hebben op hackerscongres Black Hat met een laptop van Asus gedemonstreerd dat fabrikanten fouten maken bij het implementeren van BIOS-opvolger UEFI. De Secure Boot-functie daarin is bedacht om het rootkits onmogelijk te maken zichzelf uit te voeren bij het opstarten van een systeem.

Fabrikanten implementeren UEFI verkeerd, zodat malware het bootslot Secure Boot alsnog kan omzeilen. Microsoft en het UEFI Forum zijn op de hoogte gesteld van het probleem.

 

Zonder certificaat

Beveiligingsonderzoeker Yuriy Bulygin, die voor McAfee werkt, toont samen met Andrew Furtak en Oleksandr Bazhaniuk aan dat de manier waarop Secure Boot wordt ingezet verre van secure is. De feature wordt onder meer gebruikt door Microsoft in hardware die is gecertificeerd voor Windows 8. Hierdoor wordt op deze hardware alleen Windows geladen.

Maar dit is te omzeilen, zodat software zonder certificaat als malware alsnog geladen kan worden. Via kwetsbaarheden in applicaties als Java en Flash kunnen de onderzoekers zich adminrechten toe-eigenen binnen het besturingssysteem. Vervolgens wordt een exploit uitgevoerd om toch andere software te kunnen booten na een herstart.

 

Disclosure van kwetsbaarheden

Het drietal onderzoekers geeft geen informatie over het gat dat wordt gebruikt, omdat het nog maar net is ontdekt. Om het publiek te beschermen tegen hackers die dezelfde exploit gebruiken, geven de onderzoekers ook geen informatie over specifieke modellen die vatbaar zijn voor de aanval. Wel zijn fabrikanten al een jaar geleden op de hoogte gesteld van hun brakke Secure Boot-implementatie.

Overigens stelt Bulygin wel dat enkele Asus-moederborden zijn op dezelfde manier kwetsbaar zijn als de Asus VivoBook Q200E waarop de hack is gedemonstreerd. De hackers zeggen meerdere issues te hebben gevonden met de UEFI-functie en hebben zowel Microsoft als het UEFI Forum daarvan op de hoogte gesteld.

 

Ophef om bootslot

De controverse die daaruit volgde was dat met deze feature hardware die wordt geproduceerd door OEM's die Windows-machines maken - zeg maar gerust het overgrote deel van de PC's die je bij de retailer haalt - alleen Windows draaiden. Een alternatief besturingssysteem werd in die situatie niet geverifieerd en startte op die PC's niet op. Vandaar dat Secure Boot ook wel eens 'bootslot' werd genoemd.

 

De paniek om deze feature is inmiddels grotendeels overgewaaid, omdat de soep niet zo heet gegeten werd als hij werd opgediend. Microsoft leverde een dienst waarmee bijvoorbeeld Linux-distro's werden geverifieerd. Grote distributies als Fedora, Red Hat, Ubuntu en openSUSE hanteren dit systeem om te booten met Secure Boot.

Verder doet het probleem zich uiteraard niet voor bij kale hardware die niet is uitgeleverd met Windows en Secure Boot was veelal in de UEFI-utility simpelweg uit te schakelen.

 

Windows 10-slot

Dat laatste is overigens met de komst van Windows 10-hardware niet meer het geval. In het verleden verplichtte Microsoft voor x86-systemen dat fabrikanten een uitschakeloptie opnamen in hun UEFI-implementatie, mede om de gemoederen rond het bootslot te sussen.

 

Die verplichting om Secure Boot uit te kunnen schakelen is inmiddels verdwenen, waardoor het kan voorkomen dat kopers van een Windows 10-machine die willen experimenteren met een OS dat niet is geverifieerd of - het komt nog heel af en toe voor - zelf een besturingssysteem schrijven niet aan de slag kunnen met deze PC's.

 

Los van het Secure Boot-verhaal, UEFI is duidelijk de toekomst, nu je al bijna geen PC's meer kunt vinden die nog uit de fabriek komen met een BIOS. Een x64-ysteem of een PC met Windows 8 of later heeft sowieso UEFI nodig om soepel te kunnen starten.

 

Diverse legacy-systemen en gespecialiseerde machines hanteren nog gewoon BIOS en zullen dat blijven doen, maar als hobbyist zul je het steeds minder tegenkomen, tot het straks vrijwel volledig is verdwenen.

Bron:

http://computerworld.nl/hardware/94136-waarom-het-bios-moest-verdwijnen

 

vrijdag 19 augustus 2016