Volání přerušení systému BIOS - BIOS interrupt call
Volání přerušení systému BIOS je nástroj, který operační systémy a aplikační programy používají k vyvolání zařízení softwaru Basic Input/Output System na počítačích kompatibilních s IBM PC . Volání systému BIOS tradičně používají hlavně programy DOS a některý další software, jako jsou zavaděče (včetně, většinou historicky, relativně jednoduchého aplikačního softwaru, který se spouští přímo a běží bez operačního systému - zejména herního softwaru). BIOS běží v režimu skutečné adresy (Real Mode) x86 CPU, takže programy, které volají BIOS, musí buď běžet také v reálném režimu, nebo se musí přepnout z chráněného režimu do reálného režimu, než zavoláte BIOS a poté se přepnete zpět. Z tohoto důvodu moderní operační systémy, které používají CPU v chráněném nebo dlouhém režimu, obecně nepoužívají volání přerušení systému BIOS k podpoře funkcí systému, ačkoli používají volání přerušení systému BIOS ke zjišťování a inicializaci hardwaru během spouštění . Skutečný režim má omezení paměti 1 MB, moderní zavaděče (např. GRUB2 , Windows Boot Manager ) používají nereálný režim nebo chráněný režim (a provádějí volání přerušení systému BIOS v režimu Virtual 8086 , ale pouze pro spouštění operačního systému), aby získali přístup až 4 GB Paměť.
Ve všech počítačích řídí softwarové pokyny fyzický hardware (obrazovka, disk, klávesnice atd.) Od okamžiku zapnutí napájení. V počítači BIOS převzatý z ROM na základní desce přebírá kontrolu bezprostředně po resetování procesoru, a to i během zapnutí, při stisknutí tlačítka pro reset hardwaru nebo při kritickém selhání softwaru ( trojitá chyba ). způsobí, že obvody základní desky automaticky spustí hardwarový reset. BIOS testuje hardware a inicializuje jeho stav; vyhledá, načte a spustí zaváděcí program (obvykle zavaděč operačního systému a historický ROM BASIC ); a poskytuje základní hardwarové ovládání softwaru běžícího na počítači, což je obvykle operační systém (s aplikačními programy), ale může to být přímo zaváděcí jediná softwarová aplikace.
Pokud jde o IBM, poskytly při programování raných modelů počítačů IBM (před PS/2) všechny informace potřebné k úplnému využití systému BIOS nebo k přímému využití hardwaru a úplnému vyhýbání se systému BIOS. Od začátku měli programátoři na základě hardwaru a periferie na výběr, zda použijí BIOS nebo ne. IBM důrazně podporovala autorství „dobře vychovaných“ programů, které přistupovaly k hardwaru pouze prostřednictvím volání BIOS INT (a volání služby DOS), aby podporovaly kompatibilitu softwaru se současnými a budoucími modely počítačů s odlišným periferním hardwarem, ale IBM to pochopila u některých vývojáři softwaru a zákazníci hardwaru, byla podmínkou schopnost uživatelského softwaru přímo ovládat hardware. Částečně to bylo proto, že služby systému BIOS neodhalily významnou podmnožinu všech hardwarových funkcí a funkcí. U dvou příkladů (mezi mnoha) jsou adaptéry MDA a CGA schopné posouvání hardwaru a sériový adaptér PC je schopen přenášet data na základě přerušení, ale systém IBM BIOS nepodporuje ani jednu z těchto užitečných technických funkcí.
Dnes BIOS v novém PC stále podporuje většinu, ne -li všechny, volání funkcí přerušení BIOSu definovaná IBM pro IBM AT (zavedeno v roce 1984), spolu s mnoha dalšími novějšími a rozšířením některých originálů ( např. rozšířené rozsahy parametrů) vyhlášené různými jinými organizacemi a kolaborativními průmyslovými skupinami. To v kombinaci s podobným stupněm hardwarové kompatibility znamená, že většina programů napsaných pro IBM AT může i dnes na novém PC fungovat správně, za předpokladu, že vyšší rychlost provádění je přijatelná (což obvykle platí pro všechny kromě her, které používají Časování na základě CPU). Navzdory značným omezením služeb přístupných prostřednictvím přerušení systému BIOS se ukázaly jako extrémně užitečné a odolné technologickým změnám.
Účel volání systému BIOS
Volání přerušení systému BIOS provádějí hardwarovou kontrolu nebo I/O funkce požadované programem, vracejí do systému informace o systému nebo dělají obojí. Klíčovým prvkem účelu volání systému BIOS je abstrakce - volání systému BIOS provádějí obecně definované funkce a konkrétní podrobnosti o tom, jak jsou tyto funkce prováděny na konkrétním hardwaru systému, jsou zapouzdřeny v systému BIOS a skryty z programu. Například program, který chce číst z pevného disku, nemusí vědět, zda je pevným diskem jednotka ATA , SCSI nebo SATA (nebo v dřívějších dobách jednotka ESDI nebo jednotka MFM nebo RLL s možná řadič Seagate ST-506 , možná jeden z několika typů ovladačů Western Digital , nebo s jiným proprietárním ovladačem jiné značky). Program potřebuje pouze identifikovat BIOSem definované číslo disku, ke kterému chce přistupovat, a adresu sektoru, který potřebuje číst nebo zapisovat, a BIOS se postará o převedení tohoto obecného požadavku do konkrétní posloupnosti požadovaných elementárních operací k dokončení úkolu prostřednictvím konkrétního hardwaru řadiče disku, který je připojen k dané jednotce. Program je zbaven nutnosti vědět, jak na nízké úrovni ovládat každý typ pevného disku (nebo grafický adaptér, rozhraní portu nebo periferie hodin reálného času), ke kterému může potřebovat přístup. To jednak usnadňuje programování operačních systémů a aplikací, jednak zmenšuje programy a omezuje duplikaci programového kódu, protože funkce, které jsou součástí systému BIOS, nemusí být součástí každého programu, který to potřebuje; v programech jsou místo toho zahrnuta relativně krátká volání do systému BIOS. (V operačních systémech, kde se nepoužívá BIOS, volání služeb poskytovaná samotným operačním systémem obecně plní stejnou funkci a účel.)
Systém BIOS také osvobozuje konstruktéry počítačového hardwaru (do té míry, že jsou programy psány tak, aby používaly výhradně BIOS), aby nemuseli při navrhování nových systémů udržovat přesnou hardwarovou kompatibilitu se starými systémy, aby byla zachována kompatibilita se stávajícím softwarem. Například hardware klávesnice na IBM PCjr funguje velmi odlišně než hardware klávesnice na dřívějších modelech IBM PC, ale u programů, které používají klávesnici pouze prostřednictvím systému BIOS, je tento rozdíl téměř neviditelný. (Jako dobrý příklad na druhé straně tohoto problému značný podíl počítačových programů používaných v době, kdy byl PCjr představen, nepoužíval výhradně klávesnici prostřednictvím systému BIOS, takže IBM do PCjr zahrnula také hardwarové funkce pro emulaci jak funguje původní hardware klávesnice IBM PC a IBM PC XT . Emulace hardwaru není přesná, takže ne všechny programy, které se pokoušejí přímo použít hardware klávesnice, budou na PCjr fungovat správně, ale všechny programy, které používají pouze služby klávesnice systému BIOS, budou .)
Kromě poskytnutí přístupu k hardwarovým zařízením poskytuje BIOS další zařízení, která jsou implementována v softwaru BIOS. Například BIOS udržuje oddělené pozice kurzoru až pro osm stránek zobrazení textu a zajišťuje výstup podobný TTY s automatickým zalamováním řádků a interpretací základních řídicích znaků, jako je návrat na začátek řádku a posun řádku, zatímco hardware pro textový displej kompatibilní s CGA má pouze jeden globální kurzor zobrazení a nemůže kurzor automaticky posunout dopředu, použijte pozici kurzoru k adresování paměti displeje (abyste určili, která buňka znaků bude změněna nebo prozkoumána) nebo interpretujte řídicí znaky. Jiným příkladem je, že rozhraní klávesnice systému BIOS interpretuje mnoho úhozů a kombinací kláves, aby sledovalo různé stavy posunu (levý a pravý Shift , Ctrl a Alt ), aby po stisknutí Shift + PrtScrn zavolalo službu Print Screen a restartovalo se po stisknutí Ctrl + Alt + Del systém sleduje stav zámku (Caps Lock, Num Lock a Scroll Lock) a v počítačích třídy AT ovládá odpovídající indikátory stavu zámku na klávesnici a provádět další podobné interpretační a manažerské funkce pro klávesnici. Naproti tomu běžné možnosti standardního hardwaru klávesnice PC a PC-AT jsou omezeny na hlášení systému každé primitivní události stisknutí nebo uvolnění jednotlivé klávesy (tj. Přechod ze stavu „uvolněno“ do stavu „stlačeno“ stav nebo naopak), provedení příkazového resetu a autotestu klávesnice a u klávesnic třídy AT provedení příkazu z hostitelského systému k nastavení absolutních stavů indikátorů stavu zámku (LED).
Volání systému BIOS: Software BIOS se přeruší
Operační systémy a další software komunikují se softwarem BIOS za účelem ovládání nainstalovaného hardwaru prostřednictvím softwarových přerušení. Softwarové přerušení je specifickou rozmanitostí obecného konceptu přerušení. Přerušení je mechanismus, kterým lze CPU přesměrovat tak, aby zastavilo provádění programu hlavní řady a místo toho okamžitě spustilo speciální program, nazývaný Interrupt Service Routine (ISR). Jakmile ISR skončí, CPU pokračuje v hlavním programu. Když na CPU x86 dojde k přerušení, ISR pro volání je nalezeno vyhledáním v tabulce adres počátečního bodu ISR (nazývané „vektory přerušení“) v paměti: Tabulka vektorů přerušení (IVT). Přerušení je vyvoláno jeho typovým číslem od 0 do 255 a číslo typu je použito jako index do tabulky přerušení vektoru a v tomto indexu v tabulce je nalezena adresa ISR, která bude spuštěna v reakci na přerušení. Softwarové přerušení je jednoduše přerušení, které je spuštěno softwarovým příkazem; proto softwarová přerušení fungují jako podprogramy, s hlavním rozdílem, že program, který provádí volání přerušení softwaru, nemusí znát adresu ISR, pouze jeho číslo přerušení. To má výhody pro modularitu, kompatibilitu a flexibilitu v konfiguraci systému.
Volání přerušení systému BIOS lze považovat za mechanismus pro předávání zpráv mezi systémem BIOS a klientským softwarem systému BIOS, například operačním systémem. Zprávy požadují data nebo akci ze systému BIOS a vracejí volajícímu požadovaná data, informace o stavu a/nebo produkt požadované akce. Zprávy jsou rozděleny do kategorií, z nichž každá má své vlastní číslo přerušení, a většina kategorií obsahuje podkategorie, nazývané „funkce“ a identifikované „čísly funkcí“. Klient systému BIOS předává většinu informací systému BIOS v registrech CPU a většinu informací přijímá zpět stejným způsobem, ale data příliš velká na to, aby se vešla do registrů, jako jsou tabulky řídicích parametrů nebo data diskového sektoru pro přenosy disků, jsou předávána přidělením vyrovnávací paměti. (tj. nějaký prostor) v paměti a předávání adresy bufferu v registrech. (Někdy může být v datové struktuře v paměti předáno více adres datových položek v paměti, přičemž adresa této struktury je předána systému BIOS v registrech.) Číslo přerušení je zadáno jako parametr instrukce přerušení softwaru (v jazyce sestavení Intel (instrukce „INT“) a číslo funkce je uvedeno v registru AH; to znamená, že volající nastaví registr AH na číslo požadované funkce. Služby systému BIOS odpovídající každému číslu přerušení fungují nezávisle na sobě, ale funkce v rámci jedné služby přerušení jsou zpracovávány stejným programem BIOS a nejsou nezávislé. (Tento poslední bod je relevantní pro reentrancy .)
Software BIOS se obvykle vrací volajícímu s chybovým kódem, pokud není úspěšný, nebo se stavovým kódem a/nebo požadovanými údaji, pokud je úspěšný. Samotná data mohou být tak malá, jak jeden bit, nebo až 65 536 bajtů celých sektorů surového disku (maximum, které se vejde do jednoho segmentu paměti v reálném režimu). BIOS byl v průběhu let mnohokrát rozšířen a vylepšen mnoha různými firemními entitami a bohužel výsledkem tohoto vývoje je, že ne všechny funkce systému BIOS, které lze nazvat, používají konzistentní konvence pro formátování a komunikaci dat nebo pro hlášení výsledků. Některé funkce systému BIOS hlásí podrobné informace o stavu, zatímco jiné nemusí hlásit ani úspěch nebo neúspěch, ale pouze se vracejí potichu, takže volající předpokládá úspěch (nebo testuje výsledek jiným způsobem). Někdy může být také obtížné určit, zda je v určitém počítači systémem BIOS podporováno určité volání funkce systému BIOS nebo jaké jsou limity parametrů volání v tomto počítači. (U některých neplatných čísel funkcí nebo platných čísel funkcí s neplatnými hodnotami klíčových parametrů - zejména u starší verze systému IBM BIOS - systém BIOS nemusí dělat nic a vrátit se bez chybového kódu; pak je [nepohodlnou, ale nevyhnutelnou] odpovědností volající se buď vyhne tomuto případu neprováděním takovýchto hovorů, nebo bude pozitivně testovat očekávaný účinek hovoru, místo aby předpokládal, že hovor byl účinný. Protože se BIOS v průběhu své historie v mnoha krocích značně vyvinul, je tato funkce platná v jedna verze systému BIOS od určitého dodavatele nemusí platit v dřívější nebo odlišné verzi systému BIOS od stejného dodavatele nebo ve verzi systému BIOS - jakéhokoli relativního věku - od jiného dodavatele.)
Protože volání přerušení systému BIOS používají předávání parametrů na základě registru CPU, jsou volání orientována na vytváření z jazyka sestavení a nelze je přímo provádět z většiny jazyků vysoké úrovně (HLL). Jazyk vysoké úrovně však může poskytnout knihovnu obalových rutin, které překládají parametry z formuláře (obvykle založeného na zásobníku) používaného jazykem na vysoké úrovni do registrového formuláře požadovaného systémem BIOS, a poté zpět do konvence volání HLL po BIOS se vrátí. V některých variantách C lze volání systému BIOS provádět pomocí vloženého jazyka sestavení v rámci modulu C. (Podpora pro vložený jazyk sestavení není součástí standardu ANSI C, ale je jazykovým rozšířením; proto jsou moduly C, které používají vložený jazyk sestavení, méně přenosné než čisté moduly C standardu ANSI.)
Vyvolání přerušení
Vyvolání přerušení lze provést pomocí instrukčního jazyka sestavovacího jazyka INT x86 . Chcete -li například vytisknout znak na obrazovku pomocí přerušení systému BIOS 0x10, lze provést následující pokyny pro jazyk sestavení x86:
mov ah, 0x0e ; function number = 0Eh : Display Character
mov al, '!' ; AL = code of character to display
int 0x10 ; call INT 10h, BIOS video service
Přerušit tabulku
Seznam běžných tříd přerušení systému BIOS naleznete níže. Všimněte si toho, že některé BIOSy (zvláště ty staré) neimplementují všechny tyto třídy přerušení.
Systém BIOS také používá některá přerušení k přenosu přerušení hardwarových událostí do programů, které se rozhodnou je přijímat nebo směrovat zprávy pro vlastní použití. Níže uvedená tabulka obsahuje pouze ta přerušení BIOSu, která mají být volána programy (pomocí instrukce přerušení softwaru sestavovacího jazyka "INT") k vyžádání služeb nebo informací.
Přerušit vektor | Popis | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
05h
|
Provede se při stisknutí obrazovky Shift- Print , stejně jako když BOUND instrukce detekuje vázané selhání.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
08h
|
Toto je přerušení hodin v reálném čase. Střílí 18,2krát za sekundu. Během tohoto přerušení systém BIOS zvýší čítač denní doby. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
09h
|
Toto je přerušení klávesnice. To se obecně spouští při stisknutí klávesy na klávesnici. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10h
|
Video služby
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11h
|
Vrátí seznam vybavení | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12h
|
Vrátit konvenční velikost paměti | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13h
|
Nízkoúrovňové diskové služby
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14h
|
Služby sériového portu
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15h
|
Různé systémové služby
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16h
|
Služby klávesnice
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17h
|
Služby tiskárny
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18h
|
Execute Cassette BASIC : Na počítačích IBM až do rané řady PS/2 by toto přerušení spustilo ROM Cassette BASIC. Klony tuto funkci neměly a různé počítače/BIOSy by prováděly řadu různých akcí, pokud by byl spuštěn INT 18h, nejčastěji chybová zpráva uvádějící, že nebyl k dispozici žádný zaváděcí disk. Moderní stroje by se pokusily zavést ze sítě prostřednictvím tohoto přerušení. Na moderních počítačích bude toto přerušení zpracovávat BIOS jako signál ze zavaděče, že se mu nepodařilo dokončit svůj úkol. Systém BIOS pak může provést příslušné další kroky. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19h
|
Po POST toto přerušení používá BIOS k načtení operačního systému. Program může toto přerušení zavolat, aby restartoval počítač (ale musí zajistit, aby přerušení hardwaru nebo operace DMA nezpůsobily zablokování nebo selhání systému během opětovné inicializace systému systémem BIOS nebo zaváděcího procesu). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
Hodinové služby v reálném čase
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
Služby PCI - implementovány BIOSy podporujícími PCI 2.0 nebo novější
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Bh
|
Ctrl-Break handler - volána INT 09 při Ctrl- break bylo stisknuto
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ch
|
Obsluha časovače zaškrtnutí časovače - volá INT 08
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Dh
|
Nesmí být volán; jednoduše ukazatel na VPT (Tabulka parametrů videa), která obsahuje data o režimech videa | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Eh
|
Nesmí být volán; jednoduše ukazatel na DPT (Diskette Parameter Table), obsahující celou řadu informací týkajících se disketových jednotek | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Fh
|
Nesmí být volán; jednoduše ukazatel na VGCT (Video Graphics Character Table), která obsahuje data pro znaky ASCII 80h doFFh
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
41h
|
Ukazatel adresy: FDPT = Tabulka parametrů pevného disku (1. pevný disk) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
46h
|
Ukazatel adresy: FDPT = Tabulka parametrů pevného disku (2. pevný disk) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4Ah
|
Volán RTC pro poplach |
INT 18h
: spustit BASIC
INT 18h
tradičně skočil na implementaci Cassette BASIC (dodává Microsoft) uloženou v Option ROM . Toto volání by bylo obvykle vyvoláno, pokud by systém BIOS nemohl při spuštění identifikovat žádné svazky spouštěcího disku.
V době, kdy byl v roce 1981 vydán původní počítač IBM PC (stroj typu IBM 5150), byl BASIC in ROM klíčovou funkcí. Současné populární osobní počítače, jako je Commodore 64 a řada Apple II, měly také Microsoft Cassette BASIC v ROM (ačkoli Commodore přejmenoval jejich licencovanou verzi na Commodore BASIC), takže na podstatné části svého zamýšleného trhu potřeboval počítač IBM BASIC ke konkurenci. Stejně jako v těchto jiných systémech, ROM ROM IBM PC BASIC sloužil jako primitivní bezdiskový operační systém, který uživateli umožňoval načítat, ukládat a spouštět programy a také je zapisovat a vylepšovat. (Původní IBM PC byl také jediným počítačovým modelem od IBM, který, stejně jako jeho výše uvedení dva konkurenti, obsahoval hardware kazetového rozhraní. Základní model IBM PC měl pouze 16 KiB RAM a žádné diskové jednotky [ jakéhokoli druhu ], takže kazeta rozhraní a BASIC v ROM byly zásadní pro to, aby byl použitelný základní model.Počítač IBM s méně než 32 KiB RAM není schopen bootovat z disku.Z pěti osmi čipů ROM KiB v původním počítači IBM, celkem 40 KiB, čtyři obsahují BASIC a pouze jeden obsahuje BIOS; když je nainstalováno pouze 16 KiB RAM, ROM BASIC tvoří více než polovinu celkové systémové paměti [4/7, přesněji].)
Jak šel čas a BASIC již nebyl dodáván na všech počítačích, toto přerušení by jednoduše zobrazilo chybovou zprávu indikující, že nebyl nalezen žádný spouštěcí svazek (slavně „No ROM BASIC“ nebo více vysvětlujících zpráv v novějších verzích systému BIOS); v jiných verzích systému BIOS vyzve uživatele, aby vložil spouštěcí svazek a stiskl klávesu, a poté, co uživatel stiskl klávesu, přeskočí zpět do zavaděče bootstrapu (INT 19h) a pokusí se znovu spustit.
Digital's Rainbow 100 B INT 18h
nazýval svůj BIOS, který nebyl kompatibilní s IBM BIOS. Turbo Pascal , Turbo C a Turbo C ++ přepracovaly INT 18 pro přidělování paměti a stránkování. Jiné programy také znovu použily tento vektor pro své vlastní účely.
BIOS háčky
DOS
V systémech DOS IO.SYS nebo IBMBIO.COM zavěsí INT 13 pro detekci změny diskety, sledování volání formátování, opravu chyb hranic DMA a řešení problémů v ROM BIOSu IBM „01/10/84“ s kódem modelu 0xFC před první hovor.
Vynechání systému BIOS
Mnoho moderních operačních systémů (například Linux a Windows NT ) po spuštění obchází volání přerušení systému BIOS, jádro operačního systému při spuštění přepne procesor do chráněného režimu nebo dlouhého režimu , přičemž k ovládání upřednostňuje použití vlastních programů (například ovladačů jádra ) připojený hardware přímo. Důvodem bylo především to, že tyto operační systémy provozují procesor v chráněném nebo dlouhém režimu, zatímco volání volání přerušení systému BIOS vyžaduje přepnutí do reálného režimu nebo do neskutečného režimu nebo pomocí režimu Virtual 8086 . Skutečný režim, neskutečný režim a virtuální režim 8086 jsou pomalé. Existují však také vážné bezpečnostní důvody, proč nepřepnout do skutečného režimu, a kód BIOS reálného režimu má omezení funkčnosti i rychlosti, které motivují návrháře operačních systémů, aby za něj našli náhradu. Omezení rychlosti systému BIOS ve skutečnosti dělalo běžné i v éře DOS, že jej programy obcházely, aby se vyhnuly omezením výkonu, zejména pro zobrazení grafické grafiky a rychlou sériovou komunikaci. Problémy s funkčností systému BIOS zahrnují omezení v rozsahu definovaných funkcí, nekonzistenci v podmnožinách těchto funkcí podporovaných na různých počítačích a rozdíly v kvalitě BIOSů (tj. Některé BIOSy jsou úplné a spolehlivé, jiné jsou zkrácené a chybné). Převzetím věcí do vlastních rukou a vyhýbáním se spoléhání na BIOS mohou vývojáři operačních systémů eliminovat některá rizika a komplikace, se kterými se potýkají při psaní a podpoře systémového softwaru. Na druhou stranu se tím vývojáři stanou zodpovědnými za poskytování „holého“ ovladače softwaru pro každý jiný systém nebo periferní zařízení, s nimiž zamýšlejí pracovat pro svůj operační systém (nebo za navádění výrobců hardwaru k poskytování těchto ovladačů). Mělo by tedy být zřejmé, že kompaktní operační systémy vyvinuté s nízkými rozpočty budou mít tendenci používat BIOS ve velké míře, zatímco velké operační systémy postavené obrovskými skupinami softwarových inženýrů s velkými rozpočty by se častěji rozhodly psát své vlastní ovladače místo použití BIOSu - tj. , a to i bez ohledu na problémy s kompatibilitou systému BIOS a chráněného režimu.
Viz také
- Přerušení hovoru DOS
- Tabulka deskriptoru přerušení
- Vstupní/výstupní základní adresa
- Seznam přerušení Ralfa Browna
Reference
- Seznam přerušení x86 (aka RBIL, Ralf Brown's Interrupt List)
- Uživatelská příručka integrovaného systému BIOS
- PhoenixBIOS 4.0 Uživatelská příručka
- Technická reference rozhraní IBM Personal System/2 a Personal Computer BIOS Interface , IBM, 1988, OCLC 20737442
- System BIOS for IBM PCs, Compatibles, and EISA Computers , Phoenix Technologies , 1991, ISBN 0201577607
- Programmer's Guide to the AMIBIOS , American Megatrends , 1993, ISBN 0070015619
- Programátorova PC zdrojová kniha od Thoma Hogana, Microsoft Press, 1991 ISBN 155615321X