You are on page 1of 8

87

4.0 BIOS
BIOS (Basic Input Ouput Systém) znamená základní systém vstupů a výstupů. Tvoří rozhraní mezi hardwarem a
vyššími vrstvami programového vybavení. Je to vlastně soubor ovladačů základních součástí systému. Struktura
softwarového vybavení na počítači by se pak dala zobrazit tak, že každá vrstva má kontakt s dalšími podvrstvami
(obr. 4.1). Programy, které přímo kontaktují hardware nejsou vůbec, nebo jen velmi málo univerzální vůči typu
počítače. BIOS je pak programová část počítače velice závislá na typu počítače a jeho technickém uspořádání.
Kvůli tomu je pak pro každý typ a složení třeba jiný BIOS. Z toho vyplývá, že je součástí každého počítače typu
PC.

Obr. 4.1 Struktura počítače

Jeho velkou výhodou je, že představuje standardizované programové rozhraní, protože vstupní body a parametry
procedur jsou jednoznačně definovány, nezávisí tedy na typu obsluhované periférie, nebo na vývoji počítače.
Tento standart ze strany vyšších vrstev je dán tím, že pro přístup k BIOSu je vyhrazená část přerušovacích
vektorů (programové přerušení realizované instrukcí INT), z nichž část je určena pro přístup k datovým
strukturám. Toto řešení pak umožňuje daný podprogram úplně změnit pouhým přesměrováním vektorů
přerušení.
Jeho jedna část je uložena v paměti typu ROM (nazývá se též firmware), další části jsou umístěny v dalších
pamětech typu ROM na rozšiřujících se deskách. Zbytek ovladačů je uložený na pevném disku spouštěný při
startu zaváděcího systému. Úplný BIOS se skládá tedy z :
• BIOSu základní desky,
• BIOSu rozšiřujících desek,
• Ovladačů uložených na pevném disku.

Takovýto způsob realizace má umožnit činnost daného operačního systému a aplikací při různém hardwaru. To
proto, aby 2 počítače s různými procesory mohly používat stejného programového vybavení. Navíc hardware
obou počítačů může být odlišný a BIOS musí být navržen tak, aby komunikoval se specializovaným hardwarem
na jedné straně a současně vytvořil standardizované rozhraní pro operační systém na straně druhé. Z toho pak
vyplývá, že určitá aplikace bude komunikovat s operačním systémem přes aplikační programové rozhraní API
(Application Programming Interface). Přitom je API závislé na operačním systému a je tvořené funkcemi a
příkazy, které rozhraní vykonává pro danou aplikaci. Takže aplikace komunikuje jen s operačním systémem a ne
s hardwarem. Operační systém komunikuje s BIOSem sestávajícím se z nejrůznějších ovladačů. Ty jsou
umístěny mezi operačním systémem a skutečným hardwarem, takže operační systém nekomunikuje
s hardwarem, ale jen s ovladači.
Umístění BIOSu na pevném disku je výhodné z toho důvodu, že je třeba s každým novým zařízením další BIOS
v další paměti ROM. Proto je ROM BIOS základní desky navržen tak, že prohledá rozšiřující desky s pamětí
ROM a načte obsah těchto pamětí. Jedná se o desky, které mají ROM BIOS vždy, což jsou následující desky :
• videokarta,
• řadiče SCSI podporující často je pevné disky,
• síťové karty, které umožňují spouštění přímo ze serveru a slouží hlavně pro připojení bezdiskových
stanic,
• desky s aktualizací IDE či disketových mechanik.
Jedná se vlastně o podporu mechanik nepodporovaných základní deskou.

4.1 BIOS základní desky
BIOS musí plnit i další funkce:
• provádí úvodní text po spuštění počítače,
• umožňuje nastavit základní parametry počítače,
• zavádí operační systém,
• poskytuje operačnímu sytému prostředky pro realizaci víceúrovňového prostředí.
88

Po zapnutí provádí BIOS šest základních kroků:
• nastaví konfiguraci počítače z paměti CMOS,
• provede autonomní test počítače,
• inicializace periférie,
• nainstaluje obslužné rutiny přerušení BIOSu,
• vyhledá svoje rozšíření na přídavných deskách a provádí instalaci těchto rozšiřujících rutin,
• spustí zavádění operačního systému.

Jak bylo již výše řečeno, jsou programy uloženy v ROM BIOS. Jejich součástí jsou ovladače a programy určené
jednak spuštění systému a jednak pro vytvoření rozhraní základního hardwarového systému. BIOS obsahuje
převážně 4 základní funkce :

• POST (Power On Self Test), což je speciální testovací program aplikovaný při každém spuštění
počítače a který provádí následující základní testování :

9 procesoru,

9 ROM BIOSU,

9 pamětí,

9 čipové sady,

9 grafické karty,

9 řadiče disku, klávesnice

9 a dalších částí.
Po dobu těchto testů neprovádí žádné hlášení. Pokud se vyskytne chyba, je uživatel informován o ní
pípnutím. Následuje zobrazení hlášení o verzi BIOSu a autorských právech. Pak se testuje a zjišťuje
velikost paměti, kterou pak zobrazí v hlášení. Testují se jednotlivé periférie připojené k počítači v tomto
pořadí:
¾ klávesnice,
¾ sériové porty,
¾ paralelní porty,
¾ řadič FD a HD.

Pokud odhalí chybu při těchto testech zobrazí odpovídající hlášení.
• SETUP, který slouží pro konfiguraci systému. Obsahuje nabídky, které lze spustit po stisknutí příslušné
klávesy (dle výrobce BIOSu) v průběhu testu POST. Jedná se o nastavení času, data, hesla apod.

• Zaváděč (Bootstrap loader), který vyhledává na pevných discích hlavní spouštěcí sektor (Master Boot
Sector). Pokud je nalezen, pak je realizována činnost nalezená v tomto sektoru. To znamená, že načte
spouštěcí sektor operačního systému a začíná načítat základní soubory operačního systému.

• BIOS, což je soustava základních ovladačů nezbytných pro realizaci rozhraní mezi operačním
systémem a hardwarem v průběhu spouštění systému.

Procesor PC po zapnutí vždy přečte obsah startovací adresy FFFF0H, což je adresa umístěná 16 B před koncem
1 MB operační paměti. Tam nachází instrukce, pomocí nichž pokračuje v práci.

Systémová paměť ROM začíná běžně na adrese E0000H (velikost 128 kB) nebo F0000H (velikost 64 kB). Do
tohoto adresovacího prostoru je umístěna i startovací adresa FFFF0H, což je již oněch výše zmíněných 16 B. Na
této adrese je umístěna instrukce JMP na počáteční adresu paměti ROM obsahující z větší části BIOS. Z tohoto
důvodu se tato paměť nazývá ROM BIOS.

Paměti ROM rozšiřujících desek se pak vyhledávají pomocí BIOSu základní desky v průběhu testu POST.
BIOS základní desky povinně prohledává část operační paměti rezervované pro paměť ROM rozšiřujících desek
(obvykle C0000H až DFFFFh), kde hledá povinný byte 55AAH. Povinný byte proto, že kdyby tato paměť ROM
89

začínala jiným bytem, pak by se nejednalo o paměť ROM. Třetí byte v pořadí za povinným bytem se přidává do
paměti ROM kvůli testování zda nedošlo k poškození kódu. Čtvrtý byte je již vlastní obsah paměti ROM.

BIOS základní desky postupně spouští všechny programy nalezené v pamětech ROM různých adaptérů, což se
pozná po spuštění BIOSu například zobrazením informací na obrazovce třeba o použité videokartě.

4.2 Stínování paměti ROM

Protože jsou paměti ROM oproti pamětem DRAM minimálně o řád pomalejší, používalo se často stínování
paměti ROM. To proto, aby se zajistilo rychlejší čtení kódu. Proto se často zajišťoval nejprve přepis paměti
ROM do operační paměti RAM na stejné adresy jako měla paměť ROM. Poté bylo zakázáno číst paměti ROM.

V případě 32bitových operačních systémů je ale stínování zbytečné, protože nepoužívají 16bitový kód, ale své
32bitové ovladače přepisované přímo do operační paměti.

4.3 Nastavení voleb v programu SETUP

Po startu počítače při testu POST po stisknutí příslušné klávesy (dle výrobce) se spustí program SETUP.
Nabídky tohoto programu jsou :

• MAITENANCE obsahující volby pro rychlost procesoru, zrušení hesla pro přístup do programu
SETUP.

• MAIN, která obsahuje volby pro nastavení mechanik, systémového času a typu grafické karty.

• ADVANCED, která umožňuje nastavení specifických vlastností dané čipové sady.

• SECURITY, která umožňuje nastavení 2 hesel umožňující jak přístup k SETUPu, tak i vlastnímu
počítači :

9 Supervizor pro správce,

9 User pro uživatele.

Délka hesla smí být maximálně 7 až 8 znaků.

• POWER MANAGEMENT, která realizuje úsporný režim v případě, kdy není počítač aktivně užíván.
Existují 2 způsoby správy napájení :

9 APM (Advanced Power Management) používaný již u procesorů 80486 a řízený přímo
hardwarem,

9 ACPI (Advanced Configuration and Power Interface) používaný od roku 1999 a řízený přímo
BIOSem operačního systému.

• BOOT, která určuje způsob spouštění systému a pořadí mechanik.

• EXIT, která určuje ukončení programu SETUP a uložení vybraných změn.

4. 4 Bios podporující technologie Plug-and-Play

Tyto technologie byly vytvořeny proto, aby odstranily problémy při rozšiřování počítače různými přidávanými
kartami. Každý výrobce používá 3místný identifikační kód dodavatele (Vendor ID). Tento kód nesmí být použit
pro jiné zařízení. Podle něj operační systém jednoznačně rozpozná daná zařízení.
90

Podpora technologie Plug-and-Play se zajišťuje 13 systémovými voláními, které jsou součástí rozšířeného testu
POST. Jedná se o následující kroky :

• BIOS zakáže všechna konfigurovatelná zařízení,

• BIOS se snaží najít všechna zařízení pracující se sběrnicemi ISA či PCI,

• přiděluje zdroje pro porty, přerušení, kanály DMA a paměť,

• povoluje I/O zařízení,

• BIOS kontroluje paměti ROM všech zařízení se sběrnicí ISA,

• konfiguruje všechna zařízení pro načítání programů ze kterých se zavádí operační systém,

• povoluje činnost konfigurovatelných zařízení včetně přidělení zdrojů,

• spouští zaváděč operačního systému, předá řízení operačnímu systému.

4.5 Volání služeb

4.5.1 Volání funkcí MS-DOSu
Pro volání funkcí MS-DOSDu se používá interrupt 21H.

Volání
Do registru AH se zapíše číslo funkce. Pokud se používají jiné registry, pak jejich použití závisí na dané funkci.
Návrat
Při návratu pak opět podle funkce

Funkce MS-DOSu

01H – vstup z klávesnice s kopií na obrazovku
volání AH – 01H
návrat AL – kód klávesy v rozšířeném ASCII kódu

02H – zobraz znak
volání AH – 02H
DL – kód znaku v ASCII

05H – tiskni znak
volání AH – 05H
DL – kód znaku v ASCII

08H – čti klávesnici
volání AH – 08H
návrat AL – znak v ASCII kódu

09H – zobraz řetězec
volání AH – 09H
DS:DX – ukazatel řetězce k zobrazení – řetězec musí končit znakem “$”
nový řádek 0DH (CR,13)
začátek řádky 0AH (LF, 10)
91

0AH – buferovaný vstup řetězce z klávesnice
volání AH – 0AH
DS:DX – ukazatel na buffer pro vstupující data
řetězec ukončit CR

4CH – ukončit proces
volání AH – 4CH
AL – návratový kód je 00H

4.5.2 Volání služeb VIDEO
Pro volání funkcí služeb VIDEO se používá interrupt 10H. Toto přerušení je používáno k obsluze požadavků
VIDEO. Obsahuje řadu různých funkcí, jejíž volání se provádí přiřazením čísla funkce do registru AH. Tyto
služby jsou prováděny jak ROM Biosem tak i Biosem na video kartě.

Tab. Xx.1 Tabulka módů
Bázová
AL-mód Typ módu Formát obrazu Počet barev Adaptér Použitelný monitor
adresa
00h Textový 40*25 znaků 16/8 (šedá) CGA,EGA B800h Kompozitní
01h Textový 40*25 znaků 16/8 CGA,EGA B800h Kompozitní,CGA,EGA
02h Textový 80*25 znaků 16/8 (šedá) CGA,EGA B800h CGA
03h Textový 80*25 znaků 16/8 CGA,EGA B800h Kompozitní,CGA,EGA
04h Grafický 320*200 bodů 4 CGA,EGA B800h Kompozitní,CGA,EGA
05h Grafický 320*200 bodů 4(šedá) CGA,EGA B800h Kompozitní
06h Grafický 640*200 bodů 2 CGA,EGA B800h Kompozitní,CGA,EGA
07h Textový 80*25 znaků černá, bílá, jas MGA,EGA B800h MGA
0Dh Grafický 320*200 bodů 16 EGA A000h CGA
0Eh Grafický 640*200 bodů 16 EGA A000h CGA
0Fh Grafický 640*350 bodů černá, bílá, jas EGA A800h MGA,EGA
10h Grafický 640*350 bodů 4 nebo 16 EGA A800h EGA
13h Grafický 320*200 bodů 16 ze 64 EGA A000h EGA
14h Grafický 640*200 bodů černá, bílá, jas EGA A000h EGA
15h Grafický 640*350 bodů černá, bílá, jas EGA A000h EGA
16h Grafický 640*350 bodů 16 ze 64 EGA A000h EGA
18h Grafický 640*480 bodů 16 z 262144 VGA A000h VGA
19h Grafický 320*200 bodů 256 z 262144 VGA A000h VGA

00H – nastavení módu VIDEO
1. Vymaže obrazovku
2. Dle hodnoty AL nastaví VIDEO mód následovně :
• 13H - jedná se o grafický mód pro adaptér EGA s rozlišením 320 x 200 bodů a 16 barev. Bázová adresa
je A000H, která se musí nastavit v DS jako video dw 0A000h.
• 03H – jedná se o textový mód pro adaptér EGA (CGA) s rozlišením 80 x 25 znaků pro 8/16 barev.
Bázová adresa je B800H. Barvy jsou : 0 – červená
1 – modrá
2 – zelená
10 – zelená
11 – bleděmodrá
12 – červená
13 – fialová
14 – žlutá
15 – bílá
92

Obr. xx.2 Souřadnice znaků
01H – nastavení velikosti kurzoru
Jako parametr vstupují 2 hodnoty. Pro textový mód platí :
• vstupy se definují v CH :
v bitech 0-4 je číslo linky řádku na které kurzor začíná,
bity 5,6 určují chování kurzoru : 00B – nebliká
01B – není zobrazen
10B – bliká pomalu
11B – bliká rychle
• CL určuje na které lince znaku kurzor končí

Obr. Xx.3 adresace na videostránce

02H – nastav pozici kurzoru
Funkce provede nastavení pozice kurzoru na obrazovce v textovém módu, kdy kurzor vždy bliká.

volání • BH je číslo videostránky,
• DH je číslo řádky, pokud je nastaven na 25 kurzor se nezobrazí,
• DL je číslo sloupce (0 – 80).

03H - čti pozici kurzoru
Tato funkce zjistí pozici a velikost kurzoru na obrazovce. Vstupem přitom je číslo video stránky v BH. Na
výstupu z funkce je v registru DH řádek a registru DL sloupec pozice kurzoru. A v registru CH počáteční a v
registru CL koncová linka kurzoru uvnitř znaku.
výstup • BH je číslo videostránky,
• DH je řádek pozice
• DL je sloupek pozice,
• CH je počáteční linka,
• CL je koncová linka.

05H - vyber aktivní stránku
Aktivuje se videostránka, jejíž číslo je v registru AL.

• AL je číslo stránky

0AH – zapiš znak
Zapíše se znak s kódem v registru AL na aktuální pozici kurzoru ve videostránce udané registrem BH. Přičemž
ponechává původní atribut této pozice. V registru CX pak je počet opakování tisku znaku vedle sebe.

vstupy • AL je kód znaku,
• BH je číslo videostránky,
• CX je počet opakování.
93

0CH – zapiš bod grafiky
Zapíše grafický atribut bodu. Jejím vstupem je číslo videostránky v registru BH, XY-ová souřadnice bodu v
registrech CX,DX a hodnota atributu v registru AL. Jeli u něho nastaven bit D7, pak je prováděn XOR
původních hodnot s požadovanými hodnotami.

vstupy • AL je atribut zobrazovaného bodu (např. 01H je modrá na černém pozadí),
• BH je číslo videostránky,
• CX je x-ová souřadnice,
• DX je x-ová souřadnice.

0DH - čti hodnotu bodu grafiky
Pokud se této funkci vloží do registrů BH číslo videostránky a do CX,DX souřadnice X a Y bodu, v registru AL
vrátí grafické atributy specifikovaného bodu.

výstup • AL je výstupní hodnota atributu
vstupy • BH je číslo videostránky,
• CX je x-ová souřadnice,
• DX je x-ová souřadnice.

0EH - zapiš znak do aktivní videostránky s posuvem kurzoru
Funkce zapíše do aktuální stránky na aktuální pozici kurzoru znak s kódem v AL a barvou tištěného znaku v BL.
Kurzor se pak posune o jednu pozici. Pokud je na konci řádky přejde na další, na konci obrazovky posune
obrazovky o řádek nahoru a zapisuje na začátek spodní řádky. Znaky s kódy 7,8,10,12 nejsou zobrazovány ale
přímo prováděny.
vstupy • AL je kód znaku
• BL je barva tisknutého znaku.

0F - čti video mód
Tato funkce má na výstupu tři parametry, a to v AL číslo aktuálního video módu, v AH počet znaků na řádce v
textovém režimu, v BH je číslo aktuální videostránky.
výstupy • AL je číslo módu,
• AH je počet znaků v řádce textu,
• BH je videostránka.

4.5.3 NetBIOS
S NetBIOSem se setkáváme zejména ve spojení se souborovými a tiskovými službami „sítí“ Microsoft. Jsou to
sítě založené na protokolu SMB postaveném nad NetBIOSem. Vznik NetBIOSu je spjat s firmou IBM, která pro
IBM PC vyvinula a v roce 1984 představila lokální počítačovou síť IBM PC Network. Hardwarové zázemí
zajišťoval adaptér od firmy Sytek Inc. a rychlost přenosu dosahovala pouhých 2 Mb za sekundu. Přenos byl sice
pomalý, ale pro běžné potřeby tehdejších počítačů taková kapacita dostačovala.
Síťový adaptér firmy Sytek obsahoval mimo jiné i software, který zajišťoval komunikaci – NetBIOS. Název je
odvozen od názvu BIOS – Basic Input Output Systém, který je umístěn v paměti ROM počítače PC dodnes.
NetBIOS na tom byl obdobně, ale paměť ROM byla na síťovém adaptéru. Jeho úkolem bylo vytvářet rozhraní
mezi samotnou sítí a aplikačním vybavení PC. V žádném případě tedy NetBIOS není protokol, ale pouhé
programové aplikační rozhraní – API. Co je pod ním, to programy, které ho využívají, nemusejí vědět.
Po roce firma IBM představila novou síť s přenosem příznaků a při té příležitosti došlo k přesunu NetBIOSu z
paměti ROM síťového adaptéru do softwarového ovladače, který byl uložen na datovém médiu počítače PC.
Samotné rozhraní zůstalo zachováno a bylo kompatibilní s předchozí verzí. S uvedením IBM PS/2 došlo k
dalším změnám NetBIOSu. Přibyl k němu ještě podpůrný software pro veškerá rozhraní IBM LAN.
Samotný protokol, který je „pod“ rozhraním NetBIOSu, není nijak definován a může být velice rozdílný. V
podstatě je zaručena kompatibilita jen na úrovní NetBIOS API, na úrovních nižších žádná kompatibilita
neexistuje. Implementace může být tak závislá i na konkrétní linkové vrstvě, ale může používat i kteroukoliv
vrstvu některého jiného protokolu. Velice častým případem je implementace NetBIOSu nad TCP/IP (nebo IPX).
Ve Windows je k nalezení i implementace NetBIOSu nad NetBEUI.
94

NetBIOS nabízí 4 kategorie služeb :
• Jmenné služby – jsou služby určené pro pojmenovávání NetBIOS zdrojů. Pro tyto účely poskytuje NetBIOS
dvě skupiny názvů a to :
9 jedinečná jména zdrojů,
9 skupinová jména.
Pro práci s pojmenovací službou NetBIOS jsou určeny čtyři příkazy NetBIOS rozhraní: ADD_NAME,
ADD_GROUP_NAME, DELETE_NAME a FIND_NAME.
• Služba datagramů – tato služba je určena pro přenos bez spojení, při níž není ovšem zaručeno doručení. To
si musí pohlídat aplikace sama. Jednotlivé pakety nemohou být větší než 512 bajtů. Příkazy této služby jsou :
9 SEND_DATAGRAM,
9 SEND_BROADCAST,
9 RECEIVE_DATAGRAM,
9 RECEIVE_BROADCAST_DATAGRAM.
• Služby relace – jsou služby, které zajišťují vytvoření virtuálních okruhů, v jejichž rámci lze přenášet zprávy
o velikosti až 64 kB. Tato služba je spolehlivá a lze ji monitorovat. Příkazy umožňující použít tuto službu
jsou:
9 CALL,
9 LISTEN,
9 SEND,
9 SEND_NO_ACK,
9 RECIVE,
9 RECIVE_ANY,
9 HANG_UP
9 SESSION_STATUS.
• Všeobecné služby - všeobecné příkazy lze označit jako za „všechno ostatní“. Do této kategorie spadají jen
čtyři příkazy:
9 RESET – nastaví výchozí nastavení NetBIOSu,
9 CANCEL – zruší asynchronní příkazy,
9 ADAPTER_STATUS – podá informace o stavu adaptéru,
9 UNLINK – odpojení od inicializačního serveru (bootstrap u bezdiskových stanic).

4.6 NetBEUI
Jaký je rozdíl mezi NetBEUI a NetBIOSem ? Jde o dvě zcela zásadně rozdílné věci, protože NetBIOS je
rozhraní a NetBEUI je komunikační protokol. Vztah mezi NetBIOSem a NetBEUI existuje. Zkratka NetBEUI
znamená NetBIOS Extended User Interface, což dává jasně na vědomí spojitost s NetBIOSem. NetBEUI je
protokol původně navržený firmou IBM pro sítě IBM Token Ring.
Přesto se role NetBIOSu a NetBEUI jakoby zdánlivě prolínají. NetBIOS byl navržen tak, že měl komunikovat až
s těmi nejnižšími vrstvami. Díky tomu byl také implementačně závislý na tom, co bylo považováno za „nejnižší
vrstvu“. Původně to byl přímo hardware, dnes jsou to spíše protokoly jako IPX, TCP/IP a NetBEUI. Samotný
protokol NetBEUI je navržen tak, aby implementační závislosti skryl. Na jedné straně nabízí jeho implementace
vždy stejné prostředí pro NetBIOS, ale na druhé komunikuje se standardními protokoly nižších vrstev, jako je
IEEE 802.2 Logical Link Control a posouvá původní myšlenku NetBIOsu, která sahala přes tři vrstvy
referenčního modulu OSI (relační, prezentační, aplikační) někam trochu jinam.