coreboot | |
---|---|
Sorts | inbäddad programvara , operativsystemladdare och gratis programvara med öppen källkod |
Författare | Ronald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer och coreboot-communityt |
Skrivet i | C och assemblerspråk |
Första upplagan | september 1999 [2] |
Hårdvaruplattform | ARM , IA-32 och x86_64 |
senaste versionen |
|
stat | uppdaterad, under utveckling |
Licens | GNU GPL 2 |
Hemsida | coreboot.org _ |
Mediafiler på Wikimedia Commons |
coreboot (tidigare LinuxBIOS [3] ) är ett gratis firmware-projekt för ett antal datorer som godkänts av Free Software Foundation . Målet med projektet är att ersätta de proprietära och slutna BIOS- och UEFI- systemen som används av de flesta persondatorer med ett lättviktigt system som är designat exklusivt för att starta och köra moderna 32-bitars och 64-bitars operativsystem .
Eftersom coreboot initierar hårdvaran måste designen skräddarsys för varje chipset och varje moderkort . Som ett resultat är coreboot endast tillgänglig för ett begränsat antal hårdvaruplattformar och moderkortsmodeller.
En variant av coreboot är Libreboot , en variant av coreboot som syftar till att helt eliminera proprietär firmware (Blobs) .
Den typiska uppgiften för coreboot är att ladda Linux -kärnan , men dessutom kan coreboot ladda och köra ELF- körbara filer , vanligtvis kallade nyttolaster . Nyttolasten kan till exempel vara Etherboot , som kan starta Linux över nätverket, eller SeaBIOS , en gratis BIOS-implementation som låter dig starta upp Windows 2000/XP/Vista/7 och *BSD-system (tidigare användes ADLO- belastningen för detta ). Coreboot kan starta operativsystemet från vilken enhet som helst som Myrinet , QsNet eller SCSI .
Coreboot utför hårdvaruinitiering, vilket operativsystemet inte kan utföra fullt ut, varefter det överför kontrollen till Payload-modulen, som kan utföra ytterligare OS-laddning eller utföra några andra användbara åtgärder.
Coreboot stöder arkitekturerna x86 , x86-64 , ARM , ARM64, MIPS och RISC-V .
Skillnaden mellan coreboot och Legacy BIOS är att x86-versionen startar i skyddat läge efter att ha kört endast sexton processorinstruktioner, medan typiska x86 BIOS körs mestadels i processorns verkliga läge. Kombinationen av dessa faktorer och enkelheten i den interna designen gör uppstarten från Coreboot mycket snabb (för närvarande är kallstartsrekordet med CoreBoot cirka 3 sekunder).
Även om LinuxBIOS hade ordet Linux i sitt namn, kunde LinuxBIOS också ladda andra operativsystemkärnor. Till exempel kan LinuxBIOS ladda Plan 9 -kärnan direkt . Därför har den bytt namn till coreboot .
Coreboot i sig är bara ett litet program som initierar hårdvaran på moderkortet, sedan överförs kontrollen till ett av nyttolastprogrammen:
Eftersom coreboot måste initiera hårdvaran måste den anpassas för att stödja varje systemkontroller ( chipset ) och varje kort baserat på en sådan kontroller. Att lägga till stöd för ett nytt kort är komplicerat av felsökningssvårigheter: felsökningsinformation matas ut med hjälp av den eller den hårdvaran, men hur organiserar man utmatningen när utdatamedlet ännu inte har initierats?
Coreboot använder flera enheter och knep för att göra felsökning enklare:
Den mest komplexa delen av coreboot är koden som initierar RAM-minnet och RAM-styrenheten. Faktum är att tills RAM-minnet är initierat kan det inte användas. Det uppenbara sättet att initiera RAM-styrenheten och själva RAM-minnet utan att komma åt det är att använda processorns allmänna register. För att förenkla denna komplexa uppgift utvecklades en speciell C -språkkompilator - romcc ( eng. romcc ) , som genererar kod som inte gör RAM-åtkomster under dess arbete. romcc kompilerar kod som initierar RAM genom att komma åt SPD ROM på DIMM över SMBus . Efter exekvering av denna kod kan RAM-minnet användas.