Alglaadimine

Allikas: Vikipeedia

Alglaadimine (slängis buutimine) on protsess, mis käivitab arvuti sisselülitamisel arvutis oleva operatsioonisüsteemi. Buutimisjärjekord on esialgne nimekiri toimingutest, mida arvuti teeb, kui ta käivitada.

Alates 1950. aastate keskpaigast ja IBM 701'st kuni tänapäevani on Buutimist (edaspidi alglaadimist) kasutatud operatsioonisüsteemi laadimiseks arvuti põhimälusse. Mida sisaldavad suurarvutitid, väikearvutid ja personaalarvutid.

Sõna "boot" (ingl. k. saabas) ise tuleb sõnast "bootstrap", mis tähendab saapasääre tagaserva külge kinnitatud aasa, mis aitab saabast hõlpsasti jalga tõmmata. See mõiste viitab paradoksile, et arvuti ei suuda käivituda ilma alglaadimistarkvarata, kuigi peab töötama enne, kui tarkvara saab laetud. [1]

Ajalugu[muuda | redigeeri lähteteksti]

1950-ndate aastate arvutitel oli üsna huvitav omapära – vajutades alglaadimisnuppu, hakkas sisseehitatud programm lugema alglaadimisülesandeid perfokaardilt, mis asus enamasti kaardilugejas, magnetlindil, magnetmälus või magnetkõvakettal. Pärast info sisselugemist või töötlemist käivitati alglaadimisprogramm, mille abil laeti suuremad programmide süsteemid vastavatelt meediumitelt mällu, ilma et operaator oleks pidanud midagi vajutama. [2][3]

Terminit "boot" on kasutatud sellises tähenduses alates 1958. aastast. [4] Näiteks arvutil IBM 701 (eksisteeris aastatel 1952–1956) oli laadimisnupp, mis alustas koodi lugemist esimesest 36-bitisest sõnast perfokaardilt, magnetlindilt või magnettrumlilt. Vasakpoolne 18-bitine poolsõna oli sel juhul antud juhisena, mille abil oli võimalik lugeda täiendavad sõnad mällu. [5] Sarnaselt kasutas ka IBM 1401 (aastal 1958) kaardilugejat selleks, et laadida programm arvutisse perfokaardilt. 80 tähemärki perfokaardilt olid loetud mällu asukohtadesse 001'st kuni 080'ni. Pärast seda sai arvuti alustada mälu lugemist asukohast 001 (st kõige algusest) esimese juhise sisselugemiseks. See juhis oli alati sama: liigutada informatsiooni nendes 80-s esimeses asukohas, et kokku panna ala, kus informatsioon perfokaardi positsioonidelt 2, 3, 4, jne. oli kombineeritud programmilt. Kui informatsioon oli liikunud kokkusaamiskohta, siis pidi masin käivitama juhise asukohas 080 (st. kaardi lugemine), selleks et järgmine kaart saaks loetud ning informatsioon töödeldud. Sisuliselt oli selles protsessis iga järgnev kaart "bootstrappitud" mälusse eelmise perfokaardi poolt.

Alglaadur[muuda | redigeeri lähteteksti]

Arvuti keskne protsessor saab käivitada ainult programmi koodi, mis leidub lugemismälus (ROM), muutmälus (RAM) või (arvutites 1950. aastatest kuni 1970. aastateni) lülitites, mis asusid operaatori esipaneelil. Modernsetes operatsioonisüsteemides on rakenduste kood ja andmed kogutud seadmetele, mis suudavad infot hoida ka siis, kui need seadmed pole vooluvõrgus või sisse lülitatud. Nendeks on enamasti kõvakettad, CD-d, DVD-d, flash-mälud (SD-kaardid), USB pulgad ja flopi-disketid. Kui arvuti esimest korda sisse lülitada, siis tavaliselt ei ole operatsioonisüsteem salvestatud ei ROM'i ega muutmälu (RAM). Arvuti peab esmalt käivitama suhteliselt väikese programmi, mis on paigaldatud ROM'i minimaalsete andmetega, see on vajalik mittepöörlevate seadmete lugemiseks, mille abil operatsioonisüsteemi programmid ja andmed laetakse RAM'i.

PDP-8/E ja sellel asuvad lülitid, mida kasutatakse alglaadimisel.

See väike programm on alglaadur (ka buudilaadur ja "bootstrap"), mille töö on kontrollida ka raudvara töövõimelisust ja ühendatud seamete olemasolu jne, laadida andmeid ja programme, mis seejärel käivitakse RAM'i poolt. Tihti on mitmeetapilised alglaadurid kasutusel samal ajal kui mitmed keerulise ülesehitusega programmid. Sel juhul laetakse need protsessid üksteise järel ahellaadimisena.

Varasematel arvutitel (IBM 650, DEC PDP-5'st kuni PDP-8'ni, PDP-11 varasemad mudelid ja algsed mikroarvutid, nagu näiteks Altair 8800), oli rida valikuid ja lüliteid esipaneelil, mis lubasid operaatoril manuaalselt sisestada alglaadimisjuhised mällu, seejärel võttis CPU juhtimise enda kanda. Nende valikute ja lülitite abil saab ka juhiseid otse kanda CPU'le. Huvitaval kombel omas PDP-1 riistvarasse sisseehitatud laadurit – sellist, kus operaator pidi ainult vajutama "laadmislülitit" ja perfolindi lugeja luges automaatselt koodi otse tuumamälusse.

Mõnedes arvutisüsteemides on peale alglaadimissignaali saamist inimoperaatorilt või mõnelt väliselt seadmelt võimalus laadida väike arv fikseeritud instruktsioone kindlatesse asukohtadesse mälus, initsialiseerides sellega vähemalt ühe CPU. Seejärel suunatakse CPU'd ja alustatakse juhiste täitmist. Need juhised juhinduvad tavaliselt sisendoperatsioonist või käsust, mis tuleneb mõnest välisseadmest (võivad olla ka valikuliselt lülitatavad operaatori poolt). Ülejäänud süsteemid võivad saata riistvarast käsklusi otse välisseadmetele või I/O kontrolleritele, mis tekitavad äärmiselt lihtsaid sisendoperatsioone (näiteks "loe nullsektor süsteemi seadmelt mällu, alustades asukohast 1000"). See on üks võimalus, kuidas efektiivselt laadida väike arv alglaadimisjuhiseid mällu. Lõplikku signaali I/O seadmelt võib kasutada juhiste täitmise alustamiseks CPU poolt.

Väiksemad arvutid kasutavad tihti vähempaindlikke, kuid rohkem automatiseeritud alglaadimismehhanisme, et kindlustada arvuti võimalikult kiire käivitus ja etteantud tarkvara konfiguratsiooni normaalne üleslaadimine. Paljudes töölauaarvutites käivitub alglaadimisprotsess siis, kui CPU käivitab tarkavara, mis asub ROM-il (näiteks BIOS IBM PC'l) (ka mõned CPU'd, kaasaarvatud Inteli x86 seeria, on disainitud seda tarkvara käivitama ka pärast lähtestamist. Ning seda ilma välise abita). See tarkvara sisaldab algelist funktsiooni, mis otsib alglaadimisel osalevaid seadmeid. Seega laevad nad väikese programmi kõige lootustandvama seadme spetsiaalsest sektsioonist (enamasti alglaadimissektsioonist). Mõned operatsioonisüsteemid (eriti tähelepanuväärsed olid enne 1995. aastat tehtud Macintosh'i süsteemid Apple'lt) olid väga lähedaselt sõltuvuses riistvaraga, nii et oli võimatu kasutada mõnda teist operatsioonisüsteemi peale standardse). See on muidugi ekstreemne näide alglaadimise kasutamisest; see on väga jäik, aga suhteliselt veavaba ja lollikindel, aga ainult seni, kuni riistvara töötab normaalselt. Üldine lahendus sellises situatsioonis on disainida alglaadur, mis töötab programmina ning kuulub standardsesse operatsioonisüsteem'i. Seejärel kaaperdab alglaadur süsteemi ja laeb alternatiivse OS'i. Selline tehnika oli kasutuses ka Apple'l A/UX Unix'i implementeerimisel ning seda kopeeriti mitmesuguste vabavaraliste operatsioonisüsteemide ja BeOS Personal Edition 5 poolt.

Üldiselt peamised alglaadurid sisaldavad:

Teise taseme alglaadur:[muuda | redigeeri lähteteksti]

Teise taseme alglaadurid (näiteks GRUB, BOOTMGR, Syslinux, LILO või NTLDR) enamasti ei ole operatsioonisüsteemid, ent samas on need võimelised operatsioonisüsteemi käivitama ja on võimelised juhtimist operatsioonisüsteemidele üle andma. Operatsioonisüsteemid ise on võimelised ennast initsialiseerima ja laadima arvutiriistvarale draivereid. Draiverid on eelkõige vajalikud riistvaraga suhtlemiseks. Kui draiverid on laetud, hakkab operatsioonisüsteem laadima tavaliselt süsteemis olevaid progamme.

Mitmeid alglaadureid (nt GRUB, BOOTMGR, LILO, ja NTLDR) saab konfigureerida nii, et kasutajal on võimalus valida operatsioonisüsteem, mida ta soovib käivitada. Need alglaadurid tekitavad iseseisvalt nimekirja erinevatest operatsioonisüsteemidest, mis on kõvakettale paigaldatud. Veel on võimalus valida erinevaid versioone ühest operatsioonisüsteemist ning valida ja seadistada erinevate operatsioonisüsteemide alglaadimisparameetreid (näiteks alglaadimine taasterežiimis või alglaadimine mõne vanema tuuma ehk kerneliga). Ka mõned eraldiseisvad operatsioonisüsteemita käivituvad programmid (nt mälutesterid (memtest86+) ja mängud) tunneb alglaadur muretult ära. Tavaliselt on alglaadimisel vaikimisi teatud ajaline viivitus, mille käigus kasutaja saab vajutada mõnda klahvi, et muuta alglaadimisseadeid. Lisaks on võimalus valida alglaadimisnimekirjast ise, mida või millelt buutida. Pärast seda viivitust hakkab alglaadur automaatselt laadima operatsioonisüsteemi või mõnda teist alglaadimist vajavat programmi ilma, et oleks vaja vahele segada. Alglaadur käivitab programmi, mis on eelisjärjekorras.

Alglaadimisprotsessi võib lugeda lõpetatuks, kui arvuti on võimeline suhtlema kasutajaga või operatsioonisüsteem on võimeline iseseisvalt käivitama ja töös hoidma programme ning protsesse. Tüüpilise kaasaegse arvuti alglaadimine võtab aega kuni üks minut ning see aeg väheneb tänu tehnika ja tarkvara kiirele arengule. Sellest ajast umbes 15 sekundit võtab omale power-on self test (POST) või video BIOS'e laadimine. Suurtel serveritel kulub mitmeid minuteid, kuni süsteem saab tehtud kõik vajalikud alglaadimised. Paljud sisseehitatud süsteemid teevad alglaadimist viivitamatult. Näiteks kui digitelevisiooni või GPS-seadme alglaadimine võtaks aega üle minuti, siis ilmselgelt kasutajad sellega rahul ei oleks. Seepärast on sellistes süsteemides tarkvara otse laetud ROM'i või mõnda kiiresse flash-mällu, nii et seade hakkaks toimima võimalikult kiiresti.

Alglaadimine Internetist:[muuda | redigeeri lähteteksti]

Windows To Go alglaadimisvõimeline flash-ketas, Live USB näitel.

Enamik arvutitest on võimelised tegema alglaadimist üle võrgu. Sellisel juhul on operatsioonisüsteem salvestatud serveri kõvakettale. Enamasti toimub suhtlus kliendi ja serveri vahel üle lihtsa protokolli, milleks on Trivial File Transfer Protocol. Peale teatud etappe kliendi ja serveri vahel võtab alglaadimisel operatsioonisüsteem sujuvalt juhtimise üle.

Alglaadimisseadmed (IBM PC):[muuda | redigeeri lähteteksti]

Alglaadimisseade on seade, millelt operatsioonisüsteem laetakse. Moodsad PC BIOS'ed toetavad alglaadimist mitmelt seadmelt, tavaliselt kõvakettalt (või partitsioonidelt, mis asuvad kõvakettal), optilistelt seadmetelt, USB-seadmetelt, mälukaartidelt ja ka võrguseadmetelt, kasutades PXE'd. Vanemad, vähemlevinud alglaadimisseadmed sisaldasid flopi-kettaid, SCSI-seadmeid, Zip-kettaid ja LS-120-kettaid. Tavaliselt võimaldab BIOS kasutajal muuta alglaadimisjärjekorda. Näiteks kui alglaadimisjärjekorras panna esimeseks DVD-drive, teiseks kõvaketas, siis BIOS vaikimisi teeb alglaadimise DVD-seadmelt. Kui see ebaõnnestub (juhul kui pole DVD plaati sisestatud või kui plaat ei toeta alglaadimist), proovib BIOS teha automaatselt alglaadimist järgmiselt seadmelt nimekirjas, antud näites on selleks kõvaketas.

Võtame näiteks arvuti, mille kõvakettale on paigaldatud Windows XP ja enne Linuxi Live CD sisetamist määrab kasutaja alglaadimisjärjekorra nii nagu kirjeldati eelnevalt. Selleks, et proovida süsteemi korrasolekut ilma kõvakettale paigaldamata, hakkab Linuxi Live CD automaatselt buutima ehk alglaadima sellepärast, et DVD-drive sai määratud esimeseks alglaadimisjärjekorras. See on üks näide mitmikalglaadimisest, sest siin saab kasutaja valida, millist operatsioonisüsteemi ta kasutada tahab. Antud näites saab kasutaja reguleerida mitmikalglaadimist järgnevalt: sisestades ja väljavõttes plaati CD-lugejast. Aga see pole hea mõte. Lihtsamalt saab alglaadimist reguleerida vajutades klaviatuurilt mingit klahvi (enamasti F11 või ESC klahvi) ning avanenud nimekirjast valitakse ise, milliselt seadmelt tehakse alglaadimine. Klahv millelt alglaadimisjärjekord ette manada, on igal arvutil muidugi erinev.

Ülejäänud bootimisjärjekorrad[muuda | redigeeri lähteteksti]

Mõnedel protsessoritel on teisi buutimise režiime.

CPU ja mikrokontrollerite buutimiseks on olemas alternatiivseid tehnikaid.

  • Mõnedes kaasaegsetes protsessorites ja mikrokontrollerites (näiteks TI OMAP ja DSP) võib olla alglaadimis-ROM, millel on alglaadimiskood integreeritud otse ränisse. Nendeks võivad olla protsessorid, mis suudavad täita üsna keerukaid alglaadimisjärjekordasid ning laadida alglaadimisprogramme erinevatele seadmetele nagu näiteks NAND flash, SD või MMC. Seetõttu on raske riistvaralist loogikat kasutada paljudes seadmetes. Alglaadimis-ROM'i kasutamine võimaldab paindlikumaid alglaadimisjärjestusi, mida riistvaraline loogika ei suudaks pakkuda. Näiteks alglaadimis-ROM'il on võimalus teostada alglaadimist mitmetest alglaadimiskohtadest. Samuti on alglaadimis-ROM sageli võimeline laadima alglaaduri või diagnoosimisprogrammi läbi serial-liideste, nendeks võiksid olla näiteks UART, SPI, USB jt ühendusmeetodid. Seda funktsiooni kasutatakse sageli süsteemi taastamiseks, kui mingil põhjusel on tavalise buutimistarkvara püsimälu kustunud või kahjustunud. Lisaks saab seda tehnikat kasutada ka esialgse mittepöörleva (flash) mälu programmeerimisel.
  • Lisaks on võimalus kontrollida süsteemi, kasutades riistvara silumise keskkonda, milleks on JTAG. Selliseid liideseid kasutatakse alglaadimisprogrammi alglaaditavasse mittepöörlevasse mällu (nagu flash) kirjutamiseks. Seejärel juhendatakse protsessori tuumasid, et täita vajalikud ülesanded. Alternatiivselt on silumiskeskkond vajalik selleks, et laadida mõnda alglaadimiskoodi RAM'i ning protsessori tuuma käivitamisel juhendatakse üleslaetud kood käivitamisele. Mõned mikrokontrollerid suudavad pakkuda spetsiaalseid riistvara liideseid. Neid seadmeid ei saa suvaliselt enda kontrolli alla võtta ega saa ka koodi otse riistvaralt käivitada. Tavaliselt on sellistele mikrokontrolleritele võimalik sisestada alglaadimiskood buutivasse mittepöörlevasse mällu (nagu flash) lihtsate protokollidega. Pärast süsteemi taaskäivitamist või lähtestamist käivitab mikrokontroller FLASH-mällu programmeeritud koodi nii nagu tavaliselt kasutavad protsessorid ROM'i alglaadimisel.

Vaata ka[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]

  1. "Phrase Finder". phrases.org.uk.
  2. "Bootstrap". Dictionary.com.
  3. "Bootstrap". TheFreeDictionary.com.
  4. Oxford English Dictionary. Oxford University. 
  5. From Gutenberg to the Internet, Jeremy M. Norman, 2005, page 436, ISBN 0-930405-87-0