Hlavní navigace

BIOS pro Linux

Sdílet

Petr Krčmář 5. 9. 2006

Velkou část práce BIOSu při bootu zabere příprava podpory pro MS-DOS. Pokud bootujeme Linux, je to jen ztracený čas. Mnoho projektů jako LinuxBIOS nebo Open Firmware se snaží nahradit proprietární BIOS vlastním kódem, který jen zavede a spustí linuxové jádro. Článek na IBM.com se snaží celý problém rozebrat a popsat jednotlivá řešení.

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 5. 9. 2006 20:20

    anonymní
    bez mučenia sa priznám, že štart OS a jeho vzťah k BIOS-u je pre mňa záhodou. Ale keď sme už pritom, mám zopár otázok. Aký je vzťah medzi DSDT a štartom Linuxu? Nezavádzajú moderné distrá niečo ako vlastný bios (niečo ako oembios.bin vo Windows)? A má teda ešte dnes zmysel editovať a nanovo kompilovať DSDT pre dané PC?
    http://www.whoopy.it/linux/ACPI_problem_linux_resolved.html
  • 5. 9. 2006 22:57

    frr
    Když si vezmu, kolik mají dnešní čipsety GPIO pinů nebo pinů s několika alternativními funkcemi, a jaký všechen nedetekovatelný hardware se na to dá navěšet, moc nevěřím, že by se dalo obejít bez proprietárního bootstrapu, který to všechno nastaví. Třeba jenom generátory hodin a regulátory napájení... nahrajete verzi open-source BIOSu s nějakou chybkou a odejde vám CPU nebo nějaký DC-DC konvertor na desce. A to nemluvím o tom, že si výrobce boardu může polibosti nadrátovat PCI aj. IRQčka, v čipsetu je potřeba nakonfigurovat ISA IOmem (na LPC a na případné diskrétní PCI-to-ISA bridge) a to tady jenom tak povrchně kecám, protože tomu nerozumím do hloubky.

    Za druhé si všichní asijští výrobci hardwaru dávají veliký pozor na své "duševní vlastnictví" - proto k ničemu není dokumentace, jenom chybovatý binární driver pro Windows, nebo chybovatý BIOS.

    Ostatně nemusíme se bavit o motherboardech - například už jenom získat datasheet od čipsetu je problém. Jediný, kdo má trochu slušnou dokumentaci veřejně na webu, je Intel. Zkuste hledat datasheet třeba u firmy VIA...

    Že má Soekris nějaký vlastní taky-BIOS, pro svoje vlastní železo, to nic moc nedokazuje.
    Až bude IBMka dávat k dispozici kompletní zdrojáky BIOSu pro svoje servery, tak začnu věřit, že se něco děje :-)

    No asi bych měl nechat planého teoretizování a podívat se na zmiňované projekty, čeho vlastně reálně dosáhly :-)

    Podle mého to celé vede spíš tím směrem, že se zahodí dědictví IBM PC, a bude možné jednotně bootovat Linux na platformách, na kterých DOS v životě nepoběží. Těžko říct, jak moc se tohle punkové hnutí mezi výrobci hardwaru prosadí.

    V této souvislosti si vybavuji poznámky někde okolo kernelu v tom smyslu, že v režimu AMD64 už se nepoužívá ISA. Nepamatuji si kontext, patrně se to týká jenom nějakého dílčího aspektu. Nedovedu si dost dobře představit, jak by PCčko fungovalo třeba bez PS2 klávesnice a myši :-)
  • 6. 9. 2006 13:17

    kerala (neregistrovaný)
    Na začátku roku Apple začal ve svých noteboocích MacBook používat intelovské procesory a EFI (nástupce BIOSu). Bohužel MS Windows Vista podporuje pouze BIOS, nikoliv EFI. Takže výrobci motherboardu nadále budou používat v deskách BIOS.
  • 7. 9. 2006 22:38

    frr
    Díky za tuto poznámku, konečně vím, odkud vítr fouká :-)
    http://en.wikipedia.org/wiki/Extensible_Firmware_Interface
    (Viděl jsem to v menuconfigu a doteď jsem to považoval za něco obskurního od embedded architektur jako ARM nebo MIPS.)

    V kontextu původní zprávičky, ta věc obsahuje části které jsou potenciálně open, a části které zařizují nezbytný closed-source proprietární bootstrap.

    Teď uhnu od původního tématu - zaujalo mě, co všechno má EFI umět a podporovat.
    OS-independent drivery, memory management apod. jsou na první pohled zajímavé, ale osobně tomu opět moc nevěřím. Dnešní nejmodernější OS pro PC jsou založeny na myšlence "vytěžit maximum z toho, že si OS všechno řídí sám", tj. především memory management, plánování procesů, ovladače sahající přímo na hardware, to vše v koordinaci se SMP... Kouzlo open-source OS je právě v tom, že k tomu všemu jsou navíc zdrojáky - často lepší než metr dokumentace.

    Jedinečnost různých OS spočívá právě v tom, že si každý tyto zásadní oblasti řeší po svém, svým charakteristickým způsobem, podle svých vlastních pravidel, s ohledem na své vlastní cíle: jaké druhy paměti se rozlišují, co je kde potřeba zamknout, jaké API zavolat, čeho se vyvarovat, jak je řešena bezpečnost, plánovač procesů apod. Ovladače hardwaru musí úzkostlivě spolupracovat se SMP frameworkem, který je charakteristický pro daný OS. Moc mi nejde do hlavy, jak vyrobit např. OS-independent hardwarové drivery, které budou zároveň univerzálně SMP-safe - ledaže by SMP bylo taky svěřeno "firmwaru".

    Co by z dnešního open-source OS zbylo, pokud by přístup k hardwaru, memory management a SMP zařizoval jakýsi closed-source firmware, daný shůry výrobcem hardwaru? Tenká slupka, která bude v mantinelech daných SMP-aware firmwarem víceméně trpně udržovat seznam procesů a vytvářet své charakteristické prostředí pro běh user-space aplikací?
    Mimochodem, to je na hranici s "hypervisory" a virtualizací několika instancí OS na jednom železe...

    Dá se vůbec spolehnout na nějaký proprietární closed-source firmware v oblastech, jako je správa paměti a hardwarové ovladače? V kombinaci s takovým mocným firmwarem ztratí původně plně open-source OS určitou část svého lesku a průzračnosti. Hlavně když vidím, kolik bugů mají výrobci v tak relativně jednoduchém softwaru, jakým je PC BIOS, tak moc nevěřím, že by dokázali uchodit plnou implementaci všech vlastností EFI.

    Fakt se těším, co z EFI nakonec reálně přežije a prosadí se :-)

    Pokud jde o to, přitesat Linuxový kernel do podoby EFI modulu (přidat mu správný header a případně obsloužit pár callbacků) s cílem mít kernel flashnutý v ROMce, tak tomu zase vcelku rozumím. Tak jako dneska člověk rozpárá BIOS CBROMem aby do něj vložil své vlastní logo, tak v budoucnu bude moci vypárat z EFI firmwaru zbytečné moduly a do uvolněného místa flashnout kernel - to zní rozhodně zajímavě :-) Teoreticky by mohl zbýt holý nezbytný HW-specific bootstrap a pak už jenom kernel. Dnešní kapacita BIOSových flashek se k velikosti kernelu pomalu blíží.