Baasvahetussüsteem

Allikas: Vikipeedia
PhoenixBIOS D686. BIOS on salvestatud kiibi peale, mis on omakorda PLCC pesas.

Baasvahetussüsteem (inglise keeles basic input/output system ehk BIOS) hõlmab endas madala taseme tarkvara, mis kontrollib süsteemi riistvara, ja on ühtlasi operatsioonisüsteemi ja riistvara vaheliseks liideseks. Paljud inimesed teavad seda terminit teise nimetuse järgi – seadmedraiverid või lihtsalt draiverid. Teiste sõnadega, baasvahetussüsteem tervikuna on kõikvõimalikud draiverid, mis on oma põhiolemuselt ühenduslüliks riistvara ja tarkvara vahel.[1]

Baasvahetussüsteem ise on tarkvara, mida käitatakse mälus, ja see hõlmab endas erinevaid draivereid, mis liidestavad riistvara operatsioonisüsteemiga. Baasvahetussüsteem on unikaalne, võrreldes tavalise tarkvaraga selles mõttes, et osa sellest on eellaetud püsimällu (inglise keeles read only memory ehk ROM) ja ülejäänud on laetud muutmällu (inglise keeles random access memory ehk RAM) kettalt.[1]

Baasvahetussüsteem on esimene programm, mis arvuti sisselülitamisel tööle hakkab. Baasvahetussüsteemi esmane ülesanne on tuvastada, testida ja käivitada riistvara, näiteks kõvaketast, videokaarti jne. BIOS viib arvuti seisu, kus kasutaja tarkvara saab tööle hakata. Arvuti kasutajal ei ole baasvahetussüsteemile juurdepääsu, kuid tavaliselt on selles vahendid, mis võimaldavad seda konfigureerida. Ka BIOS-i konfigureerimissüsteemile ei ole harilikult lihtne ligi pääseda.

Personaalarvuti baasvahetussüsteem saab pärineda kolmest võimalikust asukohast:

Esimesed baasvahetussüsteemid[muuda | redigeeri lähteteksti]

Kui personaalarvutit esmakordselt tutvustati, siis baasvahetussüsteemi tarkvara, mis hõlmas endas kõiki draivereid kogu süsteemi jaoks, "kõrvetati" kõik korraga ühte või enamasse säilmälu kiibile, mis asetses emaplaadil. Sisuliselt olid need draiverid iseseisvad, eellaetud mällu ja kättesaadavad igal ajal, kui arvuti oli sisse lülitatud. See püsimälu kiip sisaldas ka käivitustesti (inglise keeles power-on self test ehk POST) ja alglaadurit (inglise keeles bootstrap loader). Alglaadeprogramm oli disainitud, kontrollimaks alglaadesektori olemasolu ja laadima operatsioonisüsteemi disketilt või selle puudumisel kõvakettalt. Pärast operatsioonisüsteemi laadimist võis see välja kutsuda baasvahetussüsteemis asuvaid madala taseme arvutiprogramme (seadmedraivereid) suhtlemaks süsteemi riistvaraga. Varastel aegadel säilitati kõik baasvahetussüsteemi seadmedraiverid emaplaadi püsimälus. Nendeks olid draiverid klaviatuuri, videokaardi, jada- ja rööpvärati, disketiseadme ja kõvaketta kontrolleri, juhtkangi ning kella jaoks.[1]

Emaplaadi püsimälu baasvahetussüsteem[muuda | redigeeri lähteteksti]

Kõikidel emaplaatidel asetseb spetsiaalne kiip, mida kutsutakse püsimälu baasvahetussüsteemiks. See koondab endasse alglaadimisprogramme ja draivereid, mida on vaja süsteemi käitamiseks, ja mis liidestaks riistvara. Süsteemi käivitamisel testib käivitustest ka kõiki süsteemi põhilisi komponente. Lisaks on võimalik käivitada ka seadistusprogramm, mis salvestab süsteemiseadeid CMOS kiibil (inglise keeles complementary metal-oxide semiconductor ehk komplementaarne metalloksiid-pooljuht), mida varustatakse energiaga emaplaadil asetsevast patareist. Seda CMOS muutmälu nimetatakse sageli ka säilmäluks, sest see tarvitab oma tööks ühte mikroamprit voolu nii, et see suudab aastaid säilitada andmeid, kui seda toita ühe tillukese liitiumpatareiga.[1]

Emaplaadi püsimälu sisaldab programmide kogumit, mis asetsevad ühel või enamatel kiipidel, sõltuvalt arvuti arhitektuurist. Need programmid käivitatakse esimesena arvuti sisselülitamisel, enne operatsioonisüsteemi. Enamuste personaalarvutite baasvahetussüsteemid täidavad peamiselt nelja funktsiooni:

  • Käivitustest (POST) – käivitustest testib arvuti protsessorit, mälu, kiibistikku, videokaarti, kettakontrollereid, kettaid, klaviatuuri ja teisi elutähtsaid komponente.
  • Häälestamine – süsteemi konfigureerimis- ja seadistusprogramm on tavaliselt menüüde abil juhitav programm, mis aktiveerub teatud spetsiaalse klahvi vajutamisel käivitustesti ajal ja see võimaldab seadistada emaplaadi ning kiibistiku seadeid koos kuupäeva ja aja, paroolide, kettaseadmete ning teiste põhiliste süsteemiseadetega. Siin saab muuta toitehaldust ja (ketta)seadmete järjekorda alglaadimisel, mõnedel süsteemidel ka protsessori aega ja taktsageduse kordajat. Mõnedel vanematel 286 ja 386 süsteemides ei olnud häälestusprogrammi püsimälus, mistõttu pidi neid käitama spetsiaalsetelt alglaadeketastelt ja mõned uuemad süsteemid kasutavad Windowsi-baasil töötavat rakendust, et ligi pääseda baasvahetussüsteemi seadetele.
  • Alglaadimine – programm, mis loeb mitmete kettaseadmete esimest füüsilist sektorit, otsides korrektset peabuutsektorit (inglise keeles master boot sector ehk MBR). Kui üks neist vastab teatud kindlale tingimusele (sektor lõppeb signatuurbaitidega 55h ja AAh), siis käivitatakse sektori alguse ja signatuuribaitide vahel asetsev programmkood. Peabuutsektori programm jätkab alglaadeprotsessi lugedes sisse esimese füüsilise sektori buuditavalt köitelt (füüsiliselt salvestusüksusest, näiteks kõvaketas, flopiketas, CD-ROM jne), mis on köite buutsektori (inglise keeles volume boot sector ehk VBR) alguseks. Köite buutsektor laeb siis järgmiseks esimese operatsioonisüsteemi faili, milleks on tavaliselt IO.SYS (Windows 9x/Me), ntldr (Windows XP/2000/NT), või bootmgr (Windows 7/Vista). Sellest alates kontrollib ja viib edasi alglaadeprotsessi juba operatsioonisüsteem.
  • Baasvahetussüsteem (BIOS) – see viitab tegelikele draiverite kogumile, mis on põhiliideseks operatsioonisüsteemi ja riistvara vahel, kui süsteem on käigus. Kui käitada DOS’i või Windowsi operatsioonisüsteemi nn. turvalises režiimis (inglise keeles safe mode), siis süsteemi käitatakse peaagu vaid püsimälu baasvahetussüsteemi draiverite abil, sest ükski draiveritest ei ole laetud ketta pealt.[1]

Püsimälu riistvara[muuda | redigeeri lähteteksti]

Püsimälu (ROM) on teatavat tüüpi mälu, mis saab püsivalt või poolpüsivalt hoida andmeid. Seda kutsutakse püsivaks, sest sellele on võimatu või keeruline kirjutada. Püsimälu kutsutakse ka säilmäluks, sest andmed, mis on salvestatud püsimälusse, jäävad alles ka siis, kui toide on välja lülitatud, mis teeb sellest ideaalse koha, kuhu paigutada personaalarvuti käivitamisinstruktsioonid ehk tarkvara, mis laeb süsteemi üles.[1]

Kui personaalarvuti käivitatakse, siis „hüppab“ selle protsessor automaatselt mäluaadressile FFFF0h, lootes sealt leida eest instruktsioone, mida protsessor peaks järgmisena täitma. See asukoht on täpselt 16 baiti enne esimese megabaidi lõppu muutmälus ja samas tähistab see ka püsimälu lõppu. Kui see koht oleks ühendatud tavaliste muutmälu kiipidega, siis mistahes sinna salvestatud andmed oleksid kadunud, kui toide on eelnevalt välja lülitatud ja protsessor ei leia järgnevalt ühtegi instruktsiooni, mida täita järgmine kord, kui toide lülitatakse sisse. Püsimälu kiibi paigutamisel just sellele aadressile on alglaadeprogramm püsivalt laetud püsimällu ja kättesaadav iga kord, kui süsteem lülitatakse sisse.[1]

Tavaliselt algab süsteemi püsimälu aadressilt E0000h või F0000h, mis on 128KB või 64KB enne esimese megabaidi lõppu. Kuna püsimälu kiibi suurus on tavaliselt kuni 128KB, siis püsimälu programmid võivad enda alla haarata terve viimase 128KB ploki esimesest megabaidist, kaasa arvatud kriitilise FFFF0h alglaadeinstruktsiooni asukoha aadressi, mis asetseb 16 baidi kaugusel enne baasvahetussüsteemi lõppu. Mõnede emaplaatide püsimälu kiibid on suuremad, olles kuni 256KB või 512KB suurused. Nendes olev täiendav kood on loodud käituma videokaardi püsimäluna (aadressivahemik C0000h-C7FFFh) emaplaatidel, kus videokaart on sisseehitatud ja võivad isegi sisaldada püsimälu draivereid aadressivahemikus C8000h kuni DFFFFh, et toetada teisigi sisseehitatud seadmeid, nagu näiteks SCSI, või võrguseadmeid.[1]

Laienduskaartide püsimälud skaneeritakse ja loetakse automaatselt emaplaadi püsimälu poolt varases alglaadeprotsessi etapis – nimelt käivitustesti ajal. Emaplaadi püsimälu skaneerib spetsiaalset muutmälu ala, mis on reserveeritud laienduskaartide püsimälule (aadressid C0000h-DFFFFh, otsides 55AAh signatuurbaite. See ala viitab püsimälu algusele.[1]

Kõik laienduskaartide püsimälud peavad algama baitide 55AAh-ga, muidu ei tunne emaplaat neid ära. Kolmas bait viitab püsimälu suurusele 512-baidistes ühikutes, mida kutsutakse paragrahvideks, ja neljas bait on tegelik draiveriprogrammide algus. Suuruse baiti kasutatakse emaplaadi püsimälu poolt testimise eesmärgil. Emaplaadi püsimälu liidab kõik püsimälude peal olevad baidid kokku ja siis jagab saadud summa baitide arvuga. Selle tulemusel peaks tekkima jääk, mis on 100h. Seega, kui luuakse püsimälu laienduskaardile, siis programmeerija kasutab tavaliselt „täitebaite“, et kontrollsumma (inglise keeles checksum) tuleks õige. Kasutades kontrollsummat, testib emaplaat käivitustesti ajal igat laienduskaardi püsimälu ja märgib ära kõik need, mis on rikutud.[1]

Emaplaadi püsimälu käivitab kõik skaneerimise ajal leitud programmid, mis asetsevad laienduskaartide püsimäludes. Seda näeb enamikes süsteemides kui neid käivitada ja ka käivitustesti ajal, kui videokaardi baasvahetussüsteem initsialiseerib ja annab teada oma kohalolekust.[1]

Püsimälu varjutamine[muuda | redigeeri lähteteksti]

Püsimälu kiibid oma olemuses on väga aeglased, omades 150 nanosekundilist pöördumisaega, võrreldes dünaamilise muutmälu (inglise keeles dynamic random access memory ehk DRAM) pöördumisajaga, mis on enamus süsteemides alla 10 nanosekundi. Seetõttu praktiliselt kõikides süsteemides olevad püsimälud on varjutatud, mis tähendab, et nad on kopeeritud muutmällu alglaadimise ajal, seda kiirema juurdepääsu saavutamise eesmärgil tavapärase kasutamise ajaks. Varjutamise protseduur kopeerib püsimälu muutmällu ja määrab siis muutmälule sama aadressi, mida püsimälu eelnevalt kasutas, blokeerides protsessi käigus tegeliku püsimälu. Seda võib vaadelda ka kui püsimälu, mis töötab muutmälu kiirusega.[1]

Jõudluse kasv laienduskaartide varjutamisel on väga vähene ja võib tekitada probleeme, kui see pole korrektselt seadistatud. Seetõttu enamustel juhtudel oleks mõistlik varjutada ainult emaplaadi püsimälu (ja võib-olla ka videokaardi oma) ja jätta teised rahule.[1]

Tüüpiliselt on varjutamine kasulik ainult 16-bitiste operatsioonisüsteemide kasutamisel, näiteks DOS ja Windows 3.x puhul. Kui käitada 32-bitist või 64-bitist operatsioonisüsteemi, siis varjutamine on praktiliselt kasutu, sest need operatsioonisüsteemid ei kasuta töötamise ajal 16-bitist püsimälu koodi. Selle asemel need operatsioonisüsteemid laevad draiverid muutmälusse, mis asendavad 16-bitist püsimälu koodi, mida kasutatakse ainult alglaadimisel.[1]

Püsimälu kiibitüübid[muuda | redigeeri lähteteksti]

Neli põhilist püsimälu tüüpi, mida on kasutatud personaalarvutites on:

  • püsimälu (ROM);
  • programmeeritav püsimälu (PROM);
  • ümberprogrammeeritav püsimälu (EPROM);
  • elektriliselt ümberprogrammeeritav püsimälu (EEPROM), tuntud ka välk-püsimälu (flash ROM) nime all.

Olenemata püsimälu tüübist, mida süsteem kasutab, on selles salvestatud andmed püsivad ja jäävadki selleks, juhul, kui neid meelega ei kustutata ega kirjutata üle (nendes, kus on see võimalik).[1]

Kuni 1990. alguseni salvestati BIOS ROM ja PROM kiipide peale, mida ei saa ümber programmeerida. Kui süsteemid läksid keerulisemaks ja ümberprogrammeeritavad mälud muutusid odavamaks, hakati kasutama EEPROM ja flash mälu seadmeid.

Püsimälu baasvahetussüsteemi tootjad[muuda | redigeeri lähteteksti]

Mitmed populaarsed baasvahetussüsteemide tootjad tänasel turul varustavad valdava osa emaplaatide ja süsteemide tootjate püsimälusid oma koodiga.[1]

Mitmed kompaniid on spetsialiseerunud ühilduva püsimälu baasvahetussüsteemi toote arendamisele. Kolm suuremat nendest on American Megatrands, Inc. (AMI), Phoenix Technologies ja Award Software (nüüdne omanik on Phoenix Technologies). Iga kompanii litsentsib oma püsimälu baasvahetussüsteemi emaplaadi tootjatele nii, et tootjad saavad keskenduda pigem riistvarale kui tarkvarale. Saamaks ühte sellist püsimälu oma emaplaadi peale, peab originaalseadmete tootja (inglise keeles original equipment manufacturer ehk OEM) vastama paljudele küsimustele süsteemi disaini kohta, mis võimaldaks arendada või valida olemasolevate hulgast sobivat baasvahetussüsteemi. Püsimälu baasvahetussüsteemi kombineerimine ei ole õnnele toetuv ülesanne, samas ei ole ka olemas ühte kindlat ja üldist ning kõigega ühilduvat püsimälu. AMI, Award ja Phoenix tarnivad mitmeid variatsioone oma baasvahetussüsteemi koodist paljudele emaplaaditootjatele, igaüks neist on valminud eritellimusena spetsiifilisele emaplaadile.[1]

Üle aastate on toimunud suured muutused baasvahetussüsteemitööstuses. Intel, võib-olla suurim baasvahetusüsteemide klient, on vahetanud nende tarnijat Phoenixi ja AMI vahel oma enamuse emaplaatide jaoks. Intel kasutas algupäraselt Phoenix’i baasvahetussüsteemi tuuma oma emaplaatidel 1995. aasta lõpuni, pärast mida see vahetati AMI vastu. AMI omi kasutati kuni aastani 1997, pärast mida vahetati nende tarnija tagasi Phoenix’i vastu. Aastal 1999 Intel vahetas jälle, tol korral jälle AMI vastu. Pole vahet, kas Intel sai oma baasvahetussüsteemi tuuma Phoenix’ilt või AMI’lt, on need tugevalt kohandatud vastavalt eraldiseisvate emaplaatide jaoks, kuhu nad on paigaldatud.[1]

Teine suur areng toimus hilja 1998. aastal, kui Phoenix ostis Award’i. Sellest alates on Phoenix müünud mõlemaid Phoenix’i ja Award’i baasvahetussüsteemi erinevate toodetena. Award’i baasvahetussüsteemi müüakse kui standardset toodet, samal ajal kui Phoenix’i baasvahetussüsteemi müüakse kui võimalusterohket baasvahetussüsteemi keerulistemate süsteemide jaoks. Hetkel on baasvahetussüsteemiturg enamuselt jagatud AMI ja Phoenix’i vahel, aga Phoenix ei arenda ainult baasvahetussüsteemi mitmetele süsteemidele, vaid on ka esmane baasvahetussüsteemi arendaja, kes vastutab uute baasvahetussüsteemide arenduse ja nende stardardimise eest.[1]

Baasvahetussüsteemi tarkvara ja riistvara[muuda | redigeeri lähteteksti]

Mõned väga tähtsad draiverid peavad olema aktiivsed süsteemi alglaadimise ajal, seega peaks olema minimaalne hulk kõvaketta draivereid eellaetud kas emaplaadi või laienduskaardi püsimällu, et süsteem oleks võimeline alglaadima.[1]

Paljud järgnevad laienduskaardid on alati varustatud püsimäluga:

  • Videokaart – kõik on varustatud baasvahetussüsteemiga.
  • RAID (Redundant Array of Independent Disks ehk sõltumate ketaste liiasmassiiv) kaardid – laienduskaardid, mis võimaldavad lisada palju kettaseadmeid ja paigutada neid erinevatel viisidel, tõhustamaks usaldusväärsust, liiasust ja/või jõudlust. Need laienduskaardid vajavad sama kaardi peal asetsevat baasvahetussüsteemi, mis võimaldaks sellel kettamassiivil olla alglaetav.
  • Võrgukaardid – need, mis võimaldavad alglaadimist teostada otse failiserverist, omavad sellist püsimälu, mida tavaliselt nimetatakse alglaade püsimäluks (inglise keeles boot ROM) või alglaaduriks (inglise keeles initial program load). See võimaldab personaalarvutit seadistada kohtvõrgus töötavaks kettata tööjaamaks – mida kutsutakse võrguarvutiteks, õhukesteks klientideks või isegi nutikateks terminalideks.
  • ATA/SATA või disketiseadmete uuenduskaardid – kaardid, mis võimaldavad ühendada rohkem või erinevaid kettaseadmeid, mida tavaliselt toetab ainult emaplaat. Need kaardid vajavad samuti sama kaardi peal asetsevat baasvahetussüsteemi, mis võimaldaks neil ketastel olla alglaetavad.
  • SCSI adapterid – sellised, mis võimaldavad alglaadimist SCSI kõvaketastelt või optilistelt seadmetelt.
  • Y2K kaardid – Kaardid, mis hõlmavad endas baasvahetussüsteemi parandusi, uuendamaks sajandibaiti CMOS muutmälus. Nendel kaartidel on väike draiver baasvahetussüsteemis, mis jälgib aastabaidi muutumist 99-st 00-ks. Kui see juhtub, siis see draiver uuendab sajandibaiti 19-st 20-ks, parandades viga, mis esineb mõnedes vanemates emaplaatide püsimälu baasvahetussüsteemides.[1]

Viited[muuda | redigeeri lähteteksti]

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 1,15 1,16 1,17 1,18 1,19 1,20 1,21 Scott Mueller, Upgrading and Repairing PCs 19th edition, Que Publishing, 2010 ISBN 0789739542, leheküljed 313–328

Välislingid[muuda | redigeeri lähteteksti]