Hvad er coreboot?

Som beskrevet på Wikipediasiden:

coreboot, tidligere kendt som LinuxBIOS, er et softwareprojekt, der har til formål at erstatte proprietær firmware (BIOS eller UEFI), der findes i de fleste computere, med en letvægtsfirmware, der er designet til kun at udføre det minimale antal opgaver, der er nødvendige for at indlæse og køre et moderne 32-bit eller 64-bit styresystem.

Det er i bund og grund et initiativ, der har til formål at “åbne” og forenkle firmware-niveauet i moderne computere. Jeg tror, at så meget som muligt af det er fri software; der kræves dog binære blobs for at det kan fungere på nogle hardwareenheder. Libreboot er en version af Coreboot, som er helt uden blokeringer og derfor 100 % fri software. Men på grund af dette vil Libreboot kun fungere på en mere restriktiv delmængde af hardware.

Hvorfor skulle nogen ønske at bruge Coreboot? Jeg kan komme i tanke om flere grunde:

Hvis de er interesserede i at blive involveret i udvikling af pc-firmware, så vil de måske skifte deres proprietære firmware ud med Coreboot, da det er Open Source. På den måde (i lighed med GNU/Linux generelt) kan de rode rundt i koden og forsøge at lære om, hvordan den fungerer. Så det kunne være godt ud fra et uddannelsesmæssigt synspunkt.

Hvis nogen går op i fri software, vil de måske foretrække at bruge Coreboot eller Libreboot af den grund. Hvis du har binære blobs i din firmware, ved du ikke, hvad de indeholder – i teorien kan de indeholde kode, der kan kompromittere dit privatliv/sikkerhed. Free Software Foundation støtter kun systemer, der kører med Libreboot-firmware.

En anden ting jeg kan komme i tanke om er, at hvis nogen udvikler en ny enhed, så kan det ses som enklere at portere Coreboot til den end at skrive deres egen firmware fra bunden, eller at skulle betale for proprietær firmware. Coreboot er meget slank, hurtig og effektiv, fordi den kun indeholder det absolutte minimum af kode, der kræves for at få et system op at køre. Det er værd at bemærke, at Coreboot ikke i sig selv leverer nogen BIOS- eller UEFI-tjenester – det initialiserer blot hardwaren og overlader derefter kontrollen til noget andet. Så hvis et operativsystem kræver nogen af disse tjenester, skal de leveres af en payload (nævnt nedenfor).

Har det indflydelse på muligheden for at installere andre operativsystemer?

For det første installeres det primære operativsystem generelt ikke på kortet (medmindre der er tale om et indlejret system). Normalt er det installeret på en ekstern lagerenhed (dvs. harddisk). Så så længe Coreboot kan opsætte nok af et grundlæggende miljø til at kunne få adgang til lagerenheden og kalde hoved OS’et, tror jeg ikke der er nogen grund i teorien til, at det ikke skulle kunne starte et hvilket som helst OS op. Der er flere payloads til rådighed til den, som hjælper med at lette det. En payload er dybest set en bootloader, der er indbygget i firmwaren, i modsætning til at blive gemt på eksternt lager. F.eks. kan GRUB indbygges i Coreboot som en payload, som bestemt er i stand til at starte Linux og Windows op. Jeg er ikke sikker på, om der findes en payload-mulighed, der kan boote MacOS, men det ville ikke overraske mig, hvis der gør det.

Leave a Reply