Käynnistäminen

kytkimet ja kaapelit, joita käytetään ENIACin (1946) ohjelmointiin

lyhyen alkuohjelman lataamiseen tietokoneeseen on monia eri menetelmiä. Nämä menetelmät ulottuvat yksinkertaisesta, fyysisestä syötöstä siirrettävään mediaan, johon mahtuu monimutkaisempia ohjelmia.

Pre integrated-circuit-ROM examplesEdit

Early computersEdit

Early computersedit

Early computers in 1940s and 1950s were one-of-a-kind engineering efforts that could take weeks to program and program loading was one of many problems that had to be solved. Varhaisessa tietokoneessa, ENIACISSA, ei ollut ohjelmaa tallennettuna muistiin, vaan se oli luotu kutakin ongelmaa varten yhteenliitettävien kaapeleiden konfiguraatiolla. Bootstrapping ei koskenut ENIACia, jonka laitteistokokoonpano oli valmis ongelmien ratkaisemiseen heti virran tultua käyttöön.

edsac-järjestelmä, toinen rakennettu tallennetun ohjelman tietokone, käytti astinkytkimiä siirtämään kiinteän ohjelman muistiin, kun sen käynnistysnappia painettiin. Tälle laitteelle tallennettu ohjelma, jonka David Wheeler sai valmiiksi loppuvuodesta 1948, latasi reikänauhalta lisäohjeita ja toteutti ne sitten.

First commercial computersEdit

ensimmäisissä kaupallisessa myynnissä olleissa ohjelmoitavissa tietokoneissa, kuten UNIVAC I: ssä ja IBM 701: ssä, oli toimintoja, jotka helpottivat niiden toimintaa. Ne sisälsivät tyypillisesti ohjeet, jotka suorittivat täydellisen tulo-tai ulostulotoiminnon. Samalla laitteistologiikalla voitiin ladata boolikortin (tyypillisimmät) tai muun bootstrap-ohjelman sisältäneen syöteaineen, kuten magneettirummun tai magneettinauhan, sisältöä yhtä nappia painamalla. Tätä käynnistyskonseptia kutsuttiin eri nimillä IBM: n tietokoneille 1950-luvulla ja 1960-luvun alussa, mutta IBM käytti termiä ”Initial Program Load” IBM 7030 stretchillä ja käytti sitä myöhemmin keskustietokoneissaan, alkaen System/360: stä vuonna 1964.

IBM 1130 (1965)

IBM 701-tietokoneessa (1952-1956) oli ”Load” – painike, joka aloitettiin ensimmäisen 36-bittisen sanan lukeminen päämuistiin kortinlukijan reikäkortista, nauha-aseman magneettinauhasta tai magneettirumpuyksiköstä kuorman valitsimen Kytkimen asennosta riippuen. Tämän jälkeen toteutettiin ohjeena vasen 18-bittinen puolisana, joka yleensä luki lisäsanat muistiin. Tämän jälkeen toteutettiin loaded boot-ohjelma, joka puolestaan latasi suuremman ohjelman kyseisestä mediasta muistiin ilman ihmisoperaattorin lisäapua. Termiä ”saapas” on käytetty tässä merkityksessä ainakin vuodesta 1958.

IBM System / 3-konsoli 1970-luvulta.

muissakin tuon aikakauden IBM-tietokoneissa oli samanlaisia ominaisuuksia. Esimerkiksi IBM 1401-järjestelmä (k. 1958) käytti kortinlukijaa ohjelman lataamiseen reikäkortilta. Reikäkorttiin tallennetut 80 merkkiä luettiin muistipaikkoihin 001-080, minkä jälkeen tietokone haarautui muistipaikalle 001 lukemaan ensimmäisen tallennetun ohjeensa. Tämä ohje oli aina sama: siirrä näiden ensimmäisten 80 muistipaikan tiedot kokoontumisalueelle, jossa reikäkorttien 2, 3, 4 ja niin edelleen tiedot voitiin yhdistää tallennetun ohjelman muodostamiseksi. Kun nämä tiedot olisi siirretty kokoontumisalueelle, kone haarautuisi paikkaan 080 (Lue kortti) ja seuraava kortti luettaisiin ja sen tiedot käsiteltäisiin.

toinen esimerkki oli IBM 650 (1953), desimaalikone, jonka operaattoripaneelissa oli kymmenen 10-paikkaisen Kytkimen ryhmä, joka oli osoitettavissa muistisanana (osoite 8000) ja joka voitiin toteuttaa ohjeena. Näin Kytkimet 7004000400 ja painamalla asianmukaista painiketta lukisi ensimmäinen kortti kortinlukija muistiin (op koodi 70), alkaen osoitteesta 400 ja sitten hypätä 400 aloittaa ohjelman suorittamisen kyseisellä kortilla.

IBM: n kilpailijat tarjosivat myös yhden painikkeen ohjelmalatausta.

  • CDC 6600 (suom. 1964) oli dead start paneeli 144 vipukytkimet; dead start kytkin tuli 12 sanaa vipukytkimet muistiin perifeerinen prosessori (PP) 0 ja aloitti kuorman sekvenssi. PP 0 latasi tarvittavan koodin omaan muistiinsa ja alusti sitten muut PPs: t.
  • GE 645: ssä (k. 1965) oli ”SYSTEM BOOTLOAD”-painike, joka painettaessa sai yhden I / O-ohjaimista lataamaan 64-sanaisen ohjelman muistiin vain diodin lukumuistista ja tuottamaan keskeytyksen, joka aiheutti ohjelman käynnistymisen.
  • PDP-10: n ensimmäisessä mallissa oli ”READ IN”-painike, joka painettaessa nollasi suorittimen ja aloitti I / O-toiminnon ohjauspaneelin kytkimien määrittämässä laitteessa, jossa luki 36-bittisessä sanassa, joka antoi kohdeosoitteen ja laski myöhempiä sananlukuja varten; kun luku oli valmis, prosessori alkoi suorittaa luettua koodia hyppäämällä viimeiseen luettuun sanaan.

huomionarvoinen variaatio tästä löytyy Burroughs B1700: sta, jossa ei ole bootstrap-ROM-tai hardwired IPL-operaatiota. Sen sijaan, kun järjestelmä on nollattu se lukee ja suorittaa opcodes peräkkäin nauha-asema asennettu etupaneeliin; tämä perustaa käynnistyskuormaaja RAM, joka sitten suoritetaan. Koska tämä kuitenkin tekee vain vähän oletuksia järjestelmästä, sitä voidaan yhtä hyvin käyttää vianmääritysnauhojen lataamiseen (Huoltotestausrutiini), jotka näyttävät ymmärrettävän koodin etupaneelissa jopa tapauksissa, joissa CPU on epäkunnossa.

IBM System/360 ja seuraajasedit

IBM System/360: ssä ja sen seuraajissa, mukaan lukien nykyiset z / Architecture-koneet, käynnistysprosessi tunnetaan nimellä Initial Program Load (IPL).

IBM keksi tämän termin 7030: lle (Stretch), elvytti sen System / 360: n suunnittelua varten ja käyttää sitä edelleen nykyisissä ympäristöissä. System / 360-suorittimissa tietokoneoperaattori käynnistää IPL: n valitsemalla kolme heksadesimaalilukuista laitteen osoitetta (cu; C=I/O-Kanavaosoite, UU=Ohjausyksikkö ja laitteen osoite), minkä jälkeen painetaan latauspainiketta. High end System / 360-malleissa, useimmissa System/370-malleissa ja joissakin myöhemmissä järjestelmissä kytkinten ja latauspainikkeen toiminnot simuloidaan grafiikkakonsolin, usein IBM 2250: n kaltaisen laitteen tai IBM 3270: n kaltaisen laitteen näytöllä olevilla valittavilla alueilla. Esimerkiksi System / 370-mallissa 158 näppäimistöjärjestys 0-7-X (nolla, seitsemän ja X, tässä järjestyksessä) johtaa IPL: ään laitteen osoitteesta, joka oli näppäilty tuloalueelle. Amdahl 470V / 6 ja siihen liittyvät suorittimet tukivat neljää heksadesimaalilukua niissä suorittimissa, joihin oli asennettu valinnainen kakkoskanavayksikkö, yhteensä 32 kanavaa. Myöhemmin IBM tukisi myös yli 16 kanavaa.

IPL-funktio System / 360: ssä ja sen seuraajissa sekä sen yhteensopivissa, kuten Amdahlin, lukee 24 tavua operaattorin määrittämästä laitteesta päätallennukseen alkaen reaaliosoitteesta nolla. Toinen ja kolmas ryhmä kahdeksan tavua käsitellään Channel Command Words (CCWs) jatkaa lataamista käynnistysohjelman (ensimmäinen CCW on aina simuloitu CPU ja koostuu lukea IPL komento, 02h, komento ketjuttamalla ja tukahduttaa virheellinen pituus merkintä on voimassa). Kun I / O-kanavan komennot ovat valmiit, ensimmäinen kahdeksan tavun ryhmä Ladataan prosessorin Ohjelmatilasanaan (PSW) ja käynnistysohjelma aloittaa suorituksen kyseisen PSW: n osoittamassa paikassa. IPL-laite on yleensä levyasema, mistä johtuu 02h-lukutyyppisen komennon erityinen merkitys, mutta täsmälleen samaa menettelyä käytetään myös muiden tulotyyppisten laitteiden, kuten nauha-asemien tai jopa kortinlukijoiden IPL: ään laiteriippumattomasti, mahdollistaen esimerkiksi käyttöjärjestelmän asentamisen upouuteen tietokoneeseen käyttöjärjestelmän alkujakelumagneettinauhalta. Levyohjaimissa 02h-komento aiheuttaa myös sen, että valittu laite pyrkii sylinteriin 0000h, Pää 0000h, simuloi Hakusylinteriä ja pääkomentoa, 07h, ja hakee tietuetta 01h, simuloiden Hakutunnuksen yhtäläistä komentoa, 31h; hakuja ja hakuja ei simuloida nauha-ja korttiohjaimilla, sillä näissä laiteluokissa 02h-komento on yksinkertaisesti peräkkäinen lukukomento, ei luettu IPL-komento.

levyn, nauhan tai korttipakan tulee sisältää erityinen ohjelma varsinaisen käyttöjärjestelmän tai erillisen apuohjelman lataamiseksi päätallennukseen, ja tätä erityistä tarkoitusta varten ”IPL Text” asetetaan levylle erillisellä dasdi-ohjelmalla (Direct Access Storage Device Initialization) tai vastaavalla ohjelmalla, joka toimii käyttöjärjestelmän alla, esim.ICKDSF, mutta IPL-kykenevät nauhat ja korttipakat jaetaan yleensä jo tällä ”IPL-tekstillä”.

MinicomputersEdit

PDP-8/E etupaneeli, jossa näkyvät bootstrap-ohjelman lataamiseen käytetyt Kytkimet

Minicomputers, alkaen digitaalisesta Equipment Corporation (DEC) PDP-5 ja PDP-8 (1965) yksinkertaistivat suunnittelua käyttämällä suoritinta Tulo-ja tulostustoimintojen avustamiseen. Tämä säästi kustannuksia, mutta teki käynnistämisestä monimutkaisempaa kuin yhden painikkeen painaminen. Minitietokoneissa oli tyypillisesti jokin tapa vaihtaa lyhyitä ohjelmia manipuloimalla etupaneelin kytkimiä. Koska varhaiset minitietokoneet käyttivät magneettista ydinmuistia,joka ei menettänyt tietojaan virran ollessa pois päältä, nämä bootstrap-kuormaajat pysyisivät paikoillaan, ellei niitä poistettaisi. Poistaminen tapahtui joskus vahingossa, kun ohjelmavirhe aiheutti silmukan, joka ylikuormitti kaiken muistin.

muita näin yksinkertaisen käynnistysmuodon omaavia minitietokoneita ovat Hewlett-Packardin HP 2100-sarja (1960-luvun puolivälissä), alkuperäinen Data General Nova (1969) ja DEC: n PDP-11 (1970).

DEC lisäsi myöhemmin PDP-11: een valinnaisen diodimatriisin lukumuistin, joka tallensi jopa 32 sanan (64 tavua) bootstrap-ohjelman. Se koostui painetun piirikortin, M792, että kytketty Unibus ja piti 32 16 joukko puolijohdediodeja. Kun kaikki 512 diodia olivat paikoillaan, muisti sisälsi kaikki ”yksi” bitit; kortti ohjelmoitiin katkaisemalla jokainen diodi, jonka bitin piti olla ”nolla”. DEC myi kortista myös versioita, BM792-Yx-sarjaa, joka oli esiohjelmoitu monille vakiosyöttölaitteille yksinkertaisesti jättämällä tarpeettomat diodit pois.

vanhemman lähestymistavan mukaisesti aikaisemmassa PDP-1: ssä on laitteistokuormaaja siten, että käyttäjän tarvitsee vain painaa ”load” – kytkintä ohjatakseen paperinauhalukijaa lataamaan ohjelman suoraan ydinmuistiin. Data General Supernova käytti etupaneelin kytkimiä, jotta tietokone lataisi automaattisesti ohjeet muistiin etupaneelin datakytkimien määrittelemästä laitteesta ja sitten hyppäisi ladatulle koodille; Nova 800: ssa ja 1200: ssa oli kytkin, joka latasi ohjelman päämuistiin erityisestä lukumuistista ja hyppäsi siihen.

Early minicomputer boot loader examplesEdit

in minicomputer with a paper tape reader, the first program to run in the boot process, the boot loader, would read into core memory either the second-stage boot loader (kutsutaan usein Binary Loader) that could read paper tape with checksum or the operating system from an outside storage medium. Käynnistyskuormaajan pseudokoodi voi olla niinkin yksinkertainen kuin seuraavat kahdeksan ohjetta:

  1. Aseta P-Rekisteri 9
  2. Tarkista paperinauhalukija valmiina
  3. Jos ei ole valmis, hyppää 2
  4. Lue tavu paperinauhalukijalta akkuun
  5. säilytä akku P-rekisteriin
  6. Jos nauhan loppu, hyppää 9
  7. hyppää 2

vastaava esimerkki perustuu Nicolet instrument Corporationin 1970-luvun minitietokoneen kuormaajaan, joka käyttää paperinauhalukija-Punch-yksikköä teletyypin model 33 ASR-teleprinterissä. Sen toisen vaiheen lataajan tavut luetaan paperinauhalta käänteisessä järjestyksessä.

  1. Aseta P-Rekisteri arvoon 106
  2. Tarkista paperinauhalukija valmiiksi
  3. Jos ei ole valmis, hyppää 2
  4. Lue tavu paperinauhalukijalta varaajalle
  5. säilytä varaaja käsittelemään P-rekisteriin
  6. hyppää 2

toisen vaiheen kuormaajan pituus on sellainen, että lopullinen tavu korvaa sijainti 7. Kun ohje paikassa 6 suorittaa, sijainti 7 aloittaa toisen vaiheen kuormaajan suorittamisen. Toisen vaiheen kuormaaja odottaa sitten, että paljon pidempi, käyttöjärjestelmän sisältävä nauha laitetaan nauhanlukijaan. Ero käynnistyskuormaajan ja toisen vaiheen kuormaajan välillä on tarkistuskoodin lisääminen paperinauhan lukuvirheisiin, joita esiintyy usein suhteellisen edullisilla, ”osa-aikaisilla” laitteistoilla, kuten Teletyypillä Model 33 ASR. (Friden Flexowriters olivat paljon luotettavampia, mutta myös verrattain kalliita.)

ensimmäisen mikrotietokoneen käynnistäminen

varhaisimmissa mikrotietokoneissa, kuten Altair 8800: ssa (julkaistiin ensimmäisenä vuonna 1975) ja vielä aikaisemmassa, vastaavassa koneessa (joka perustui Intel 8008-suorittimeen) ei ollut bootstrapping-laitteistoa sellaisenaan. Käynnistettäessä suoritin näkisi muistia, joka sisältäisi suoritettavaa koodia, joka sisältäisi vain binäärisiä nollia—muisti tyhjennettiin nollaamalla käynnistettäessä. Näiden koneiden etupaneeleissa oli Vaihtokytkimet osoitteiden ja tietojen syöttämiseksi, yksi kytkin tietokoneen muistin sana-ja osoiteväylän bittiä kohden. Yksinkertaiset lisäykset laitteistoon mahdollistivat yhden muistipaikan kerrallaan lataamisen näistä kytkimistä bootstrap-koodin tallentamiseksi. Samaan aikaan suoritinta estettiin yrittämästä suorittaa muistisisältöä. Kun suoritin oli ladattu oikein, se pystyi suorittamaan bootstrapping-koodin. Prosessi oli työläs ja sen piti olla virheetön.

Integrated circuit read-only memory eraEdit

Intel 2708 EPROM ”- siru” piirilevyllä.

minitietokoneiden ja mikrotietokoneiden käynnistysprosessi mullistui integroidun piirilukumuistin (ROM) käyttöönotosta monine muunnelmineen, mukaan lukien maskiohjelmoidut Rom-romit, programmable Rom (prom), pyyhittävät programmable Rom-Rom (EPROM) ja flash-muisti. Nämä mahdollistivat firmware boot-ohjelmien sisällyttämisen osaksi tietokonetta. (Ulkoisen) ROM: n käyttöönotto tapahtui italialaisessa ”Gruppi Speciali” – nimisessä puhelinvaihteen kehittelijässä, jonka CSELTIN tutkija Alberto Ciaramella patentoi vuonna 1975. Gruppi Speciali oli vuodesta 1975 alkaen täysin yksipainikkeinen kone, joka käynnistyi käyttöjärjestelmään ROM-muistista, joka koostui puolijohteista, ei ferriittiytimistä. Vaikka ROM-laitetta ei ollut natiivisti upotettu Gruppi Specialin tietokoneeseen, koneen muotoilun vuoksi se mahdollisti myös yhden painikkeen ROM-käynnistyksen koneissa, joita ei ollut suunniteltu sitä varten (siksi tämä ”bootstrap-laite” oli arkkitehtuurista riippumaton), esimerkiksi PDP-11. Myös koneen tilan tallentaminen kytkemisen jälkeen oli paikallaan, mikä oli toinen kriittinen ominaisuus puhelimen kytkentäkilpailussa.

tyypillisesti jokainen mikroprosessori suorittaa nollauksen tai virransyötön jälkeen käynnistysprosessin, joka yleensä tapahtuu muodossa ”aloita löydetyn koodin suoritus alkaen tietystä osoitteesta” tai ”etsi monitavuinen koodi tietystä osoitteesta ja hyppää ilmoitettuun paikkaan aloittaakseen suorituksen”. Tätä mikroprosessoria käyttäen rakennetussa järjestelmässä pysyvä ROM miehittää nämä erityiset sijainnit niin, että järjestelmä alkaa aina toimia ilman käyttäjän apua. Esimerkiksi Intel x86-suorittimet aloittavat aina F000:FFF0-alkuiset ohjeet, kun taas MOS 6502-suorittimen alustus alkaa lukemalla kahden tavun vektoriosoitteen $FFFD (MS byte) ja $fffc (LS byte) ja hyppäämällä kyseiseen sijaintiin käynnistämään bootstrap-koodin.

Apple Inc.’s ensimmäinen tietokone, Apple 1 käyttöön vuonna 1976, esillä PROM sirut, jotka poistivat tarpeen etupaneelin boot prosessi (kuten oli Altair 8800) kaupallisessa tietokoneessa. Applen ilmoituksen mukaan ” ei enää kytkimiä, ei enää valoja … firmware PROMS voit syöttää, näyttää ja debug ohjelmia (kaikki hex) näppäimistöltä.”

silloisen lukumuistin kustannuksella Apple II-sarja käynnisti levykäyttöjärjestelmänsä käyttäen sarjaa hyvin pieniä askeleita, joista jokainen siirsi kontrollin eteenpäin vähitellen monimutkaisemman käynnistysprosessin seuraavaan vaiheeseen. (Katso Apple DOS: Boot loader). Koska niin vähän levyn käyttöjärjestelmä tukeutui ROM, laitteisto oli myös erittäin joustava ja tuki monenlaisia räätälöityjä levyn kopiosuojausmekanismeja. (Katso Software Cracking: History.)

Jotkut käyttöjärjestelmät, erityisesti ennen vuotta 1995 Applen Macintosh-järjestelmät, ovat niin tiiviisti sidoksissa laitteistoonsa, että on mahdotonta käynnistää natiivisti muuta kuin tavallista käyttöjärjestelmää. Tämä on edellä mainittujen kytkimien käyttämän skenaarion päinvastainen ääripää; se on erittäin joustamaton, mutta suhteellisen virheetön ja idioottivarma niin kauan kuin kaikki laitteet toimivat normaalisti. Yleinen ratkaisu tällaisissa tilanteissa on suunnitella käynnistyskuormaaja, joka toimii tavalliseen käyttöjärjestelmään kuuluvana ohjelmana, joka kaappaa järjestelmän ja lataa vaihtoehtoisen käyttöjärjestelmän. Tätä tekniikkaa Apple käytti a / UX Unix-toteutuksessaan ja sitä kopioivat useat ilmaisohjelmistojen käyttöjärjestelmät ja BeOS Personal Edition 5.

jotkin koneet, kuten Atari ST-mikrotietokone, olivat ”pika-on”, jossa käyttöjärjestelmä toimi ROM-ROM-käyttöjärjestelmällä. Käyttöjärjestelmän nouto toisen tai kolmannen asteen kaupasta poistettiin siten yhtenä bootstrappingille ominaisena toimintona. Jotta järjestelmän muokkaukset, lisälaitteet ja muut tukiohjelmistot voitiin ladata automaattisesti, Atarin levykeasemalta luettiin lisää komponentteja käynnistyksen aikana. Oli aikakatkaisuviive, joka antoi aikaa lisätä levykkeen manuaalisesti järjestelmän etsiessä ylimääräisiä komponentteja. Tämä voitaisiin välttää lisäämällä tyhjä levy. Atari ST-laitteisto suunniteltiin myös niin, että kasettipaikka voisi tarjota natiivin ohjelmatoteutuksen pelaamiseen Atarin perintönä tehden elektronisia pelejä; lisäämällä Spectre GCR-kasetin Macintosh system-ROMilla pelipaikkaan ja käynnistämällä Atarin, se voisi ”natiivisti käynnistää” Macintosh-käyttöjärjestelmän Atarin omien TOS: ien sijaan.

IBM: n henkilökohtainen tietokone sisälsi BIOS-nimisen ROM-pohjaisen laiteohjelmiston; yksi tämän laiteohjelmiston tehtävistä oli suorittaa virrankulutus itse, kun kone käynnistyi, ja sitten lukea ohjelmia käynnistyslaitteesta ja suorittaa se. IBM Personal Computerin BIOSin kanssa yhteensopivaa firmwarea käytetään IBM PC-yhteensopivissa tietokoneissa. Intelin kehittämä Extensible Firmware-käyttöliittymä oli alun perin Itanium-pohjaisia koneita varten, ja sitä käytettiin myöhemmin myös BIOSin vaihtoehtona x86-pohjaisissa koneissa, mukaan lukien Intel-suorittimia käyttävät Apple Macit.

Unix-työasemissa oli alun perin toimittajakohtainen ROM-pohjainen firmware. Sun Microsystems kehitti myöhemmin OpenBootin, joka tunnettiin myöhemmin nimellä Open Firmware, joka sisälsi Forth-tulkin, jossa suuri osa firmwaresta kirjoitettiin Forth-tulkkiin. IEEE standardoi sen IEEE-standardiksi 1275-1994; kyseistä standardia toteuttavaa firmwarea käytettiin PowerPC – pohjaisissa Maceissa ja joissakin muissa PowerPC-pohjaisissa koneissa sekä Sunin omissa SPARC-pohjaisissa tietokoneissa. Advanced RISC Computing specification määritteli toisen firmware-standardin, joka toteutettiin joissakin MIPS-ja Alpha-pohjaisissa koneissa ja SGI Visual Workstation x86-pohjaisissa työasemissa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *