Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

BIOS - 1. díl: přítel, který nezradí

15.5.2008, Petr Stránský, článek
BIOS - 1. díl: přítel, který nezradí
Souhlasíte s názvem tohoto článku nebo toto tvrzení odmítáte a s BIOSem, coby základním programem, který různou měrou ovlivňuje správnou činnost počítače jako celku, nechcete mít nic společného? Víte ale vůbec, o co všechno v takovém případě přicházíte?
Celý systém je rozdělen do několika vrstev - oblastí, s rozdílným určením. Všechny vrstvy dohromady zajišťují jedinou, zato velmi důležitou věc a sice správnou komunikaci mezi operačním systémem a instalovaným hardwarem. BIOS je tedy jakýmsi převaděčem, díky kterému se OS vůbec nemusí zajímat o technické parametry disku nebo třeba DVD mechaniky. Důležité pro něj tak zůstává pouze to, že na pevný disk může zapisovat a z mechaniky přehrávat filmy.

Je zřejmé, že komponenty různých výrobců nejsou a ani nemohou být stejné. Díky BIOSu se ale tento problém jisté vzájemné nekompatibility do značné míry stírá a HW se vůči operačnímu systému tváři stále stejně. To je také jedna z jeho velkých předností.

Po spuštění počítače nejprve dojde k rozpoznání všech použitých komponent, z nichž jsou některé vypsány na obrazovku. Poté je otestována jejich správná funkčnost, příp. zkontrolováno, zda jsou k systému připojena všechna základní zařízení, bez nichž by s počítačem nebylo možné nic dělat (např. klávesnice, myš či paměťové moduly). V závislosti na použitém hardware a nastavení, které bylo převzato z paměti CMOS, jsou následně všechna zařízení nakonfigurována a zařízením typu Plug and Play (PnP) jsou také přiděleny odpovídající systémové zdroje (IRQ, DMA, I/O) a nakonec je celá práce předána operačnímu systému. Ten v ní může pokračovat, ale také nemusí.

Dnešní operační systémy jsou totiž navrženy tak, aby obcházely některé služby poskytované BIOSem a komunikovaly s připojeným hardwarem přímo. To je také důvod, proč vždy, když v dnešní době skočíte do BIOSu, jsou všechny systémové zdroje nastavené úplně jinak než ve Windows. Ty jsou totiž samy o sobě dost tvrdohlavé a přesvědčit je o vaší svrchovanosti může být někdy opravdu dost obtížné.


Flash PROM - tady bydlí BIOS


V modulu je uložen jak samotný program BIOSu, tak i informace o jednotlivých možných komponentách, které lze k systému přidat - to proto, aby bylo v budoucnu možné je jednoduše po připojení rozpoznat a pracovat s nimi.

Dnes se bez výjimky používají čipy Flash PROM, které se vyznačují tou výhodou, že je lze jednoduše a bez jakýchkoliv dalších nástrojů jednoduše přeprogramovat, což u dřívějších obměn zdaleka tak jednoduché nebylo. Tato nevýhoda vyplývá již ze samotného názvu paměti ROM (Read Only Memory, paměť pouze pro čtení). Výhoda takovýchto čipů je ale přece jen jasná a drtivě převyšuje nad všemi nevýhodami - jejich obsah totiž není závislý na vlastním napájení a zůstává tak uložen dokonce i po úplném vypnutí počítače.

Do pamětí ROM bylo tedy možné zapsat pouze jednou a to rovnou během samotného výrobního procesu. V závislosti na postupném vývoji techniky a rostoucím požadavkům začali ale výrobci čipů opět koketovat s myšlenkou, která by jim umožnila přehrát již jednou zapsaný obsah paměti ROM a přišli hned s několika řešeními, které by jim toto přání pomohlo realizovat.




dnes se ve většině případů setkáte pouze s pouzdry PLCC


Během určitého časového intervalu se na trhu začaly objevovat moduly pamětí PROM (Programmable ROM), které dovolovaly uživateli zapsat si do patřičného čipu informace svépomocí, protože byly již z výroby zcela čisté a to tak, že každé paměťové místo obsahovalo vlastní tavnou pojistku, jejímž přepálením (přivedením vyššího napětí) byla vodivá cesta přerušena a tím sem zapsána hodnota logické nuly. Z uvedeného jasně vyplývá, že po opuštění výrobní linky musela být na všech paměťových buňkách přítomna úroveň 1 a ne 0, jak by se mohlo na první pohled mylně zdát.

Dalším vývojovým stádiem se stala paměť EPROM (Erasable PROM), kterou bylo už možné dokonce i mazat. Celý proces byl ale velice zdlouhavý, protože bylo nutné celý modul vyjmout z patice a umístit na nějaké dobře osvětlené místo, na které dopadalo dostatek UV světelného záření. Po určité době, která se pohybovala typicky v řádech jednotek až desítek minut, bylo možné celé zařízení vzít a po vložení do speciálního zařízení (tzv. programátoru) do něj opětovně zapsat požadovaná data. K tomuto procesu se opět využívá několikanásobně vyššího napětí než je nutné pro obyčejné čtení.

EPROM paměti poznáte jednoduše podle malého okénka, sloužícího právě k propuštění a usměrnění UV paprsků. Některé revize jím ale ani tak nedisponují. Pro takové se brzy vžilo všeříkající označení OTP (One-Time Programmable). OTP se fyzicky velice podobají původním pamětem PROM. Technologicky jsou ale někde úplně jinde, protože pro uložení bitové informace využívají technologie MOSFET s nábojem zanechaným na izolovaném hradle. Samotný náboj se na plovoucí hradlo tranzistoru dostane speciálním postupem, kterému se říká (pro nás Čechy oblíbeným termínem) tunelování z hradla řídícího.




EPROM v celé své kráse - www.wikipedia.org


Jelikož měly tyto paměti poměrně slibnou budoucnost, bylo navrženo jejich vylepšení, které pro vymazání dat počítalo s obyčejným elektrickým proudem (EEPROM, Electronically EPROM), díky čemuž již nebylo nutné paměťový modul vyjímat z patice a navíc byla celá operace oproti původnímu typu provedena velice rychle. Další výhodu představovala skutečnost, že bylo možné kompletně vymazat pouze určitý blok předem stanovených adres. Ostatním byl jejich původní obsah zachován. K výrobě EEPROM bývá nejčastěji využito technologie CMOS.

Moduly EEPROM se tedy chovají jako klasické RAM (RWM) paměti. Jejich nasazení v této oblasti ale bohužel není možné, protože zápis vyžaduje poměrně vysoký časový interval - dlouhých několik milisekund. Stále ale existují aplikace, v kterých není pomalý zápis žádnou překážkou. Příkladem může být například obyčejný seznam uložených televizních programů nebo informace o posledně nastavené úrovni hlasitosti ve vašem televizoru.

U některých základních desek mohou dokonce tyto typy paměti suplovat nejpoužívanější typ paměti CMOS sloužícího pro odkládání uživatelských dat (viz dále). I tak by ovšem bylo nutné, aby taková základní deska záložní baterii obsahovala také - ta by potom sloužila k zajištění korektního běhu systémových hodin.

Dosud posledním vývojovým stupněm a zároveň také největším tržním tahákem se staly paměti Flash PROM, které opět není nutné pro účely vlastního přeprogramování vyjímat z patice základní desky. Oproti modulům EEPROM mají také mnohem vyšší kapacitu, a proto se tato technologie začala používat pro ukládání dat v dalších odvětvích počítačového průmyslu. Hitem posledních měsíců jsou například disky SSD (Solid State Drive), které tak konečně posílají největší brzdu dnešních počítačů - mechanický pevný disk - do propadliště dějin. Je skvělé, že poslední dobou dochází k velmi příznivému poklesu cen všech výrobků, jež jsou na této pokrokové technice založeny.





Největší nevýhodou technologie je ale velmi omezený počet přepsání každé buňky, po jejichž překročení přestává paměťové místo pracovat. Tato hodnota ani dnes nedosahuje příznivých hodnot, což by mohlo být pro SSD smrtelné. Naštěstí si však jejich integrovaný řadič sám hlídá životnost jednotlivých segmentů a zajišťuje optimální využití celé přítomné kapacity, dokonce je schopen příp. i zařídit patřičné vypnutí pokažené buňky.

Vlastní mazání celého modulu probíhá poměrně rychle, protože se vždy upravují větší celky (bloky paměťových buněk) - typicky mezi 128 B a 32 kB najednou, což může být ale podobně jako u pamětí EPROM považováno také za určitou nevýhodu, protože je vždy nutné smazat zároveň také všechna ostatní zainteresovaná paměťová místa. Flash čipy ke své práci využívají Fowler-Nordheimova tunelového jevu. Smazaná paměť má v každé buňce uloženu hodnotu FFh a zápisem ji můžeme nulovat.

V poslední kapitole se dále setkáme ještě s další, sériovou, alternativou EEPROM čipů - SEEPROM (Serial EEPROM) čili několika za sebou zapojených čipů. Ty disponují neodmyslitelnou výhodou. Mohou být totiž osazeny do pouzdra s minimálním počtem vývodů (nejčastěji 8) namísto typických 24 a více u klasických EEPROM. Počet vývodů je u takových čipů závislý na celkové kapacitě paměti. Protože jsou ale SEEPROM kapacitně mnohem menší, bývají nejčastěji používány pouze pro uložení nějaké konfigurace. Jejich výhodu naopak představuje mnohem menší vlastní spotřeba a také skutečnost, že na DPS zabírají jen velmi málo místa, které tak může být využito jinak.

Během dlouhých let vývoje samozřejmě přišlo na svět mnoho dalších typů pamětí ROM, jejichž kompletní výčet je bohužel nad naše možnosti, ale pro úplnost si zde neodpustím zmínit ještě dvě poslední - WOM (Write Only Memory) a paměti NVRAM (Non Volatile RAM čili RAM nezávislá na napájení).

Nasazení pamětí WOM se může zdát naprosto nereálné - opravdu je možné na ně pouze zapisovat. I tak jsou ale dodnes využívány jako paměti pro realizaci registrů informujících o přetečení aritmetických operací. Jejich nejčastější využití může být ale mnohem prozaičtější. Přemýšleli jste například někdy, jakým způsobem jsou realizovány tzv. černé skřínky letadel?

Moduly NVRAM jsou zase zajímavé tím, že se skládají jak z buněk klasické RAM, tak i pamětí EEPROM. Z venku je přístupná pouze paměť RAM, ale pro každou její buňku existuje určité dvojče v druhém typu paměti, do kterých se ukládá simultánně. Žádný výpadek napětí tak nevede k hrůzostrašnému riziku ztráty dat a využívá se například u různých síťových prvků, jakými mohou být třeba síťové směrovače a podobně. Zajímavé také je, že i paměti Flash jsou ve své prapůvodní podstatě vlastně také pouhé podmnožiny čipů NVRAM.


Směrovač Cisco 1801/K9 využívá také celkem 2MB paměti NVRAM


Možná by se zdálo, že je to pouhý rozmar techniky a přepsání BIOSu novější verzí k ničemu není, ale opak je bohužel pravdou. Pro příklad nemusíme chodit daleko - již na začátku článku je nastíněná situace, v které nebyl řadičem korektně rozpoznán připojený disk, resp. nebyla adresována celá jeho kapacita. Takovou situaci pak mohla vyřešit právě aktualizace BIOSu.

Pro upřesnění je ještě třeba říci, že paměť ROM je ve své podstatě také RAM (Random Access Memory) - tedy paměť s náhodným přístupem. Jednotlivé moduly operační paměti na základní desce by se tak správně měly nazývat termínem RWM (Read Write Memory), což je souhrnný název celé skupiny typů pamětí, do kterých lze stejně jednoduše zapisovat i z nich číst. Vedle modulů RAM do této hlavní skupiny náleží také paměti se sekvenčním přístupem (magnetooptická média).


CMOS - řešení bezvýchodné situace


V době, kdy nebylo možné paměti ROM přepisovat, ale ukládání dat bylo i přesto poměrně důležité a ani tak mocný program, jakým BIOS bezesporu je, si nemohl dovolit tuto operaci ignorovat, přišli výrobci s elegantním řešením. Navrhli použití dalšího typu paměti postavené na jiné technologii s velmi nízkým odběrem, která by byla udržována při životě záložní baterií. Touto pamětí se staly již výše zmíněné čipy CMOS, které se k těmto účelům také využívají dodnes.

Technologie CMOS se dnes používá v elektrotechnice pro tvorbu většiny integrovaných obvodů - uplatnění nachází jednak při výrobě procesorů nebo jednočipových mikropočítačů, ale také například pro výrobu obrazových senzorů. Její největší předností je poměrně vysoká odolnost proti vnějším vlivům rušení. Písmeno C někteří lidé překládají také jako Complementary-symetric, z čeho můžeme usoudit, že je při jejich výrobě použito symetrických párů MOSFET (Metal Oxide Semiconductor Field Effect Tranzistor) tranzistorů typu N i P.

CMOS čip ale musí být neustále zálohován elektrickou energií, a proto na každé základní desce nalezneme také maličkou lithiovou baterii CR2032. Výjimkou mohou být jen velice staré desky, které měly baterii jiného typu dokonce natvrdo připájenu na společném integrovaném obvodě s hodinovými pulsy. CR2032 zpravidla přežívá samotnou základní desku, její životnost se pohybuje zhruba kolem tří let (samozřejmě v závislosti na průběžném odběru napájecího proudu), a tudíž není nutné výměnu této komponenty ve valné většině případů řešit. I tak jsem se ale s jejím vybitím několikrát setkal. Pokud by se vám něco podobného také stalo, vězte, že stačí navštívit nějakou dobrou prodejnu s elektrickými spotřebiči a zakoupit baterii jinou.





Firmware aneb jsem kdo jsem


Třetí a zároveň též poslední vrstvu, jež určitým způsobem souvisí s prací systému BIOS, tvoří programová vybavení všech instalovaných zařízení a dalších použitých komponent. Takovému vybavení se říká firmware a bývá velice úzce vázán na konkrétní kus hardwaru a jen díky němu je pak počítač schopen rozeznat danou komponentu, protože obsahuje kromě jiného také množství různých informací o samotném zařízení, na kterém je přítomen. Jsou v něm také uloženy informace, jak se má komponenta v určitých situacích zachovat. Jen díky němu tak vlastně vypalovačka umí vypalovat a TV karta přijímat obrazový a zvukový signál.

Informace o komponentách ale nemusí využívat pouze operační systém. K vlastnímu obohacení je můžete využít i sami a to s použitím speciálních testovacích nástrojů a utilit. Za všechny jmenujme například placenou SiSoft Sandru nebo freewarovou verzi softwaru Everest Home Edition. Tato revize již ale není na webu výrobce k dispozici ke stažení, protože byla nahrazena jeho placenou alternativou. I tak je ale možné stáhnout si z nějakého alternativního umístění starší a neplacenou verzi 2.20. Po stažení je jen nutné smířit se s daleko menším množstvím funkcí oproti placené alternativě.






API a HAL - navěky a navždy


Ze všech výše zmíněných vrstev si BIOS sám vytvoří tzv. API (Application Programming Interface, Aplikační programové rozhraní), které tvoří sada všech možných instrukcí a funkcí, jež lze s instalovaným hardwarem provádět. API pak tvoří jednotné prostředí pro zabezpečení korektní komunikace mezi aplikací a operačním systémem. Výhody API jsou zřejmé především pro programátory, dovoluje jim zaměřit se přímo na řešení konkrétního problému a neřešit např. takové "banality" jako je zápis na pevný disk a jiné. Při takovém požadavku stačí pouze zadat konkrétní příkaz aplikačnímu rozhraní, které se o vše potřebné již postará samo.

Komunikace a práce s fyzickými zařízeními se tak maximálně zjednodušuje. Aplikace totiž komunikuje pouze s operačním systémem. Pokud by navíc chtěl nějaký ovladač komunikovat přímo s fyzickým zařízením, použil by k tomu jiné rozhraní s pojmenováním HAL (Hardware Abstraction Layer). Pokud by během komunikace došlo k nesprávnému volání funkce, která neexistuje, bude tato operace regulována či rovnou potlačena. V opačném případě by mohlo dojít k nesprávnému chování systému či rovnou jeho pádu.

V případě MS Windows vyvolává takováto chyba velice známou modrou obrazovku - BSOD (Blue Screen Of Death). Tito nechvalně proslulí zabijáci neuložených dokumentů se vyskytují nejvíce ve starších operačních systémem rodiny 9x. Takové totiž (na rozdíl od systémů řady NT a XP) žádnou takovou korekcí kvůli jistému urychlení práce nedisponují a přístup k samotným fyzickým zařízením tak probíhá na velice nízké hardwarové úrovni, což může být v některých případech velmi nebezpečné. Pokud navíc vezmeme v úvahu Murphyho zákony, vyjde nám zajímavé zjištění. Takové chyby totiž přicházejí zrovna v tu nejnevhodnější dobu.




Ano, je zřejmé, že naprosto vše funguje přesně tak, jak má :-)