# Coreboot

coreboot (anciennement LinuxBIOS) est un projet de logiciel libre d'amorçage. Il vise à remplacer les BIOS propriétaires trouvés dans la plupart des ordinateurs par un système dont la fonction exclusive est de charger un système d'exploitation moderne à 32 ou 64 bits.

## Histoire

Le projet coreboot a été lancé en 1999 au Laboratoire national de Los Alamos (LANL), dans le cadre de travaux de recherches sur les Grappe de serveurs, sous le nom de LinuxBIOS. L'objectif était un BIOS au démarrage rapide, gérant les erreurs de manière intelligente. Le logiciel est distribué sous licence publique générale GNU. Les principaux contributeurs ont été jusqu'à présent le LANL, AMD, coresystems GmbH et Linux Networx, Inc. Les fabricants de cartes mères MSI, Gigabyte et Tyan ont offert leur soutien en distribuant coreboot à côté de leur BIOS standard ou en fournissant les spécifications de certaines cartes mères récentes. Google a aussi soutenu le projet, ainsi que CME Group. Le support de l'architecture ARM dans coreboot provient de Das U-Boot, un autre firmware libre.
Le 6 mars 2007, un développeur, Alan Carvalho de Assis, a franchi une étape avec l'élaboration d'un BIOS contenant un noyau Linux, un interpréteur de commandes, un serveur graphique, un gestionnaire de fenêtres et un terminal sur une puce de seulement 2 Mo.
coreboot équipe notamment les ordinateurs fournis par l'association One Laptop per Child (un portable par enfant).
À l'Intel Developer Forum de Pékin d'avril 2012, Google a présenté des Chromebooks utilisant des processeurs Intel – Netbooks exécutant Chrome OS – sans BIOS propriétaire. Leur version de coreboot initialise le matériel et enclenche le démarrage du système d'exploitation avant que le processeur Sandy Bridge ne démarre en quelques secondes seulement. Les versions des Chromebook utilisant des SoC ARM, utilisent originellement Das U-Boot lui-même, qui boot en quelques dixièmes de seconde. Aujourd'hui ces ordinateurs utilisent coreboot aussi.

## Plateformes supportées

Les ordinateurs qui peuvent être préchargés avec coreboot ou un de ces dérivés, inclut certains Chromebooks, les Libreboot X200 et T400 (rebaptisés à partir des ThinkPad X200 et T400). Tous les Librem 13, 14, 15, Mini et Server, à l’exception du Librem 5 sont vendus avec coreboot$^,$. Certains ordinateurs portables de System76 sont vendus avec coreboot.

## Charges utiles

La fonction de coreboot est de charger et démarrer une charge utile, c'est-à-dire un logiciel plus élaboré. La charge utile peut être :
* un chargeur d'amorçage : GRUB, GRUB 2, SeaBIOS, FILO, Etherboot (en), Open Firmware, OpenBIOS, Tiano Core
* un système d'exploitation : Linux (d'autres systèmes d'exploitation peuvent être chargés par un chargeur d'amorçage)
* divers logiciels : Memtest86, Bayou, tint, GRUB invaders

## Variantes

Libreboot est une variante de coreboot dont le but est de supprimer tout blob propriétaire de la séquence de boot. Cela peut poser certains problèmes avec certains BIOS vidéo qui ne sont toujours pas, ou que partiellement, libre et qui doivent être initialisés dans cette phase, notamment pour afficher la séquence de boot à l'écran. Cela peut aussi poser des problèmes si le pilote réseau, pouvant être nécessaire dans certains cas spécifiques comme le boot sur un système distant, par exemple, n'est pas présent. Il a cependant l'avantage d'être pré-installé par certains vendeurs d'ordinateurs.
oreBoot est une réécriture d'oreboot en langage Rust, et non en langage C.
LinuxBoot est un boot utilisant directement le noyau Linux, afin, notamment, de ne pas à avoir à réintégrer les pilotes déjà présent dans le noyau une seconde fois, comme le font CoreBoot,Libreboot et oreBoot. L'utilisation de Devicetree, à la fois dans Linux et dans Coreboot et ses variantes, facilite toutefois cette réintégration.