coreboot | |
---|---|
Tyyppi | sulautetut ohjelmistot , käyttöjärjestelmän latausohjelma ja ilmaiset avoimen lähdekoodin ohjelmistot |
Tekijä | Ronald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer ja coreboot-yhteisö |
Sisään kirjoitettu | C ja assembly-kieli |
Ensimmäinen painos | Syyskuu 1999 [2] |
Laitteistoalusta | ARM , IA-32 ja x86_64 |
uusin versio |
|
Osavaltio | ajan tasalla, kehitteillä |
Lisenssi | GNU GPL 2 |
Verkkosivusto | coreboot.org _ |
Mediatiedostot Wikimedia Commonsissa |
coreboot (aiemmin LinuxBIOS [3] ) on Free Software Foundationin hyväksymä ilmainen laiteohjelmistoprojekti useille tietokoneille . Projektin tavoitteena on korvata useimpien henkilökohtaisten tietokoneiden käyttämät patentoidut ja suljetut BIOS- ja UEFI -järjestelmät kevyellä järjestelmällä, joka on suunniteltu yksinomaan nykyaikaisten 32- ja 64-bittisten käyttöjärjestelmien käynnistämiseen ja käyttämiseen .
Koska coreboot alustaa laitteiston, suunnittelu on räätälöitävä kullekin piirisarjalle ja jokaiselle emolevylle . Tämän seurauksena coreboot on saatavilla vain rajoitetulle määrälle laitteistoalustoja ja emolevymalleja.
Yksi corebootin muunnelma on Libreboot , corebootin muunnelma, jonka tarkoituksena on poistaa patentoidut laiteohjelmistot (Blobs) kokonaan .
Tyypillinen corebootin tehtävä on ladata Linux - ydin , mutta lisäksi coreboot voi ladata ja suorittaa ELF - suoritettavat tiedostot , joita kutsutaan yleisesti hyötykuormiksi . Hyötykuorma voi olla esimerkiksi Etherboot , joka pystyy käynnistämään Linuxin verkon kautta, tai SeaBIOS , ilmainen BIOS-toteutus, jonka avulla voit käynnistää Windows 2000/XP/Vista/7 ja *BSD-järjestelmät (aiemmin ADLO- latausta käytettiin tätä varten ). Coreboot voi käynnistää käyttöjärjestelmän mistä tahansa tuetuista laitteista, kuten Myrinet , QsNet tai SCSI .
Coreboot suorittaa laitteiston alustuksen, jota käyttöjärjestelmä ei voi suorittaa täysin, minkä jälkeen se siirtää ohjauksen Payload-moduulille, joka voi suorittaa käyttöjärjestelmän lisälatauksia tai muita hyödyllisiä toimintoja.
Coreboot tukee x86- , x86-64- , ARM- , ARM64-, MIPS- ja RISC-V-arkkitehtuureja .
Ero corebootin ja Legacy BIOSin välillä on se, että x86-versio käynnistyy suojatussa tilassa vain kuudentoista suorittimen käskyn suorittamisen jälkeen, kun taas tyypilliset x86-BIOSit toimivat enimmäkseen prosessorin todellisessa tilassa. Näiden tekijöiden yhdistelmä ja sisäisen suunnittelun yksinkertaisuus tekee käynnistämisestä Corebootista erittäin nopean (tällä hetkellä CoreBootin kylmäkäynnistysennätys on noin 3 sekuntia).
Vaikka LinuxBIOSin nimessä oli sana Linux, LinuxBIOS pystyi lataamaan myös muita käyttöjärjestelmän ytimiä. Esimerkiksi LinuxBIOS voisi ladata Plan 9 -ytimen suoraan . Siksi se on nimetty uudelleen corebootiksi .
Coreboot itsessään on vain pieni ohjelma, joka alustaa emolevyn laitteiston, jonka jälkeen ohjaus siirretään johonkin hyötykuormaohjelmista:
Koska corebootin on alustettava laitteisto, se on mukautettava tukemaan jokaista järjestelmäohjainta ( piirisarjaa ) ja jokaista tällaiseen ohjaimeen perustuvaa korttia. Tuen lisäämistä mille tahansa uudelle levylle vaikeuttavat virheenkorjausvaikeudet: virheenkorjaustiedot tulostetaan käyttämällä tätä tai toista laitteistoa, mutta kuinka järjestää tuloste, kun tulostusvälineitä ei ole vielä alustettu?
Coreboot käyttää useita laitteita ja temppuja helpottaakseen virheenkorjausta:
Ydinkäynnistyksen monimutkaisin osa on koodi, joka alustaa RAM-muistin ja RAM-ohjaimen. Tosiasia on, että ennen kuin RAM on alustettu, sitä ei voi käyttää. Ilmeinen tapa alustaa RAM-ohjain ja itse RAM ilman pääsyä siihen on käyttää prosessorin yleiskäyttöisiä rekistereitä. Tämän monimutkaisen tehtävän yksinkertaistamiseksi kehitettiin erityinen C - kielen kääntäjä - romcc ( eng. romcc ) , joka luo koodia, joka ei käytä RAM-käyttöjä työnsä aikana. romcc kokoaa koodin, joka alustaa RAM-muistin käyttämällä SPD ROM -muistia DIMM:issä SMBus -väylän kautta . Tämän koodin suorittamisen jälkeen RAM-muistia voidaan käyttää.