Opstart

kontakter og kabler, der bruges til at programmere ENIAC (1946)

der er mange forskellige metoder til at indlæse et kort indledende program i en computer. Disse metoder når fra enkle, fysiske input til flytbare medier, der kan indeholde mere komplekse programmer.

pre integrated-circuit-ROM eksempelrediger

tidlige computererediger

tidlige computere i 1940 ‘erne og 1950’ erne var enestående tekniske bestræbelser, der kunne tage uger at programmere, og programindlæsning var et af mange problemer, der skulle løses. En tidlig computer, ENIAC, havde intet program gemt i hukommelsen, men blev oprettet for hvert problem ved en konfiguration af sammenkoblede kabler. Bootstrapping gjaldt ikke for ENIAC, hvis udstyrskonfiguration var klar til at løse problemer, så snart strømmen blev anvendt.

EDSAC-systemet, den anden lagrede programcomputer, der skal bygges, brugte trinafbrydere til at overføre et fast program til hukommelsen, når der blev trykket på startknappen. Programmet, der blev gemt på denne enhed, som David hjul afsluttede i slutningen af 1948, indlæste yderligere instruktioner fra stanset tape og udførte dem derefter.

første kommercielle computereredit

de første programmerbare computere til kommercielt salg, såsom UNIVAC i og IBM 701 inkluderede funktioner, der gjorde deres drift enklere. De omfattede typisk instruktioner, der udførte en komplet input-eller outputoperation. Den samme maskinelogik kunne bruges til at indlæse indholdet af et stempelkort (de mest typiske) eller andre inputmedier, såsom en magnetisk tromle eller magnetbånd, der indeholdt et bootstrap-program ved at trykke på en enkelt knap. Dette opstartskoncept blev kaldt en række navne til IBM-computere fra 1950 ‘erne og begyndelsen af 1960’ erne, men IBM brugte udtrykket “Initial Programbelastning” med IBM 7030 Stretch og brugte det senere til deres mainframe-linjer, startende med System/360 i 1964.

Initial programbelastning stanset kort til IBM 1130 (1965)

IBM 701-computeren (1952-1956) havde en “Load” – knap det indledte læsning af det første 36-bit ord i hovedhukommelsen fra et stanset kort i en kortlæser, et magnetbånd i et bånddrev eller en magnetisk tromleenhed, afhængigt af placeringen af belastningsvælgerkontakten. Det venstre 18-bit halvord blev derefter udført som en instruktion, som normalt læser yderligere ord i hukommelsen. Det indlæste boot-program blev derefter udført, hvilket igen indlæste et større program fra dette medium i hukommelsen uden yderligere hjælp fra den menneskelige operatør. Udtrykket” boot ” er blevet brugt i denne forstand siden mindst 1958.

IBM System / 3-konsol fra 1970 ‘ erne. programbelastningsvælgerkontakten er nederst til venstre; programbelastningskontakten er nederst til højre.

andre IBM-computere i den æra havde lignende funktioner. For eksempel brugte IBM 1401-systemet (c. 1958) en kortlæser til at indlæse et program fra et stanset kort. De 80 tegn, der er gemt på det stansede kort, blev læst på hukommelsessteder 001 til 080, så ville computeren forgrene sig til hukommelsesplacering 001 for at læse sin første lagrede instruktion. Denne instruktion var altid den samme: Flyt oplysningerne i disse første 80 hukommelsessteder til et samlingsområde, hvor oplysningerne i stansede kort 2, 3, 4 osv. Når disse oplysninger blev flyttet til samlingsområdet, forgrenede maskinen sig til en instruktion i placering 080 (læs et kort), og det næste kort blev læst og dets oplysninger behandlet.

et andet eksempel var IBM 650 (1953), en decimalmaskine, der havde en gruppe på ti 10-Positionsafbrydere på operatørpanelet, som kunne adresseres som et hukommelsesord (adresse 8000) og kunne udføres som en instruktion. Ved at indstille kontakterne til 7004000400 og trykke på den relevante knap læses det første kort i kortlæseren i hukommelsen (op-kode 70), startende ved adresse 400 og derefter hoppe til 400 for at begynde at udføre programmet på det kort.IBMs konkurrenter tilbød også en enkelt knap programbelastning.

  • CDC 6600 (c. 1964) havde et dødt startpanel med 144 Vippekontakter; dødstartkontakten indtastede 12 ord fra vippekontakterne til hukommelsen til perifer processor (PP) 0 og startede belastningssekvensen. PP 0 indlæste den nødvendige kode i sin egen hukommelse og initialiserede derefter de andre PPs.
  • GE 645 (c. 1965) havde en “system BOOTLOAD”-knap, der, når den blev trykket, fik en af I/O-controllerne til at indlæse et 64-ordsprogram i hukommelsen fra en diode-skrivebeskyttet hukommelse og levere en afbrydelse for at få dette program til at begynde at køre.
  • den første model af PDP-10 havde en “READ IN” – knap, der, når den blev trykket, nulstillede processoren og startede en I/O-operation på en enhed, der er specificeret af kontakter på kontrolpanelet, læsning i et 36-bit ord, der giver en måladresse og tæller for efterfølgende ordlæsninger; når læsningen var afsluttet, begyndte processoren at udføre koden læst ind ved at hoppe til det sidste ord læst ind.

en bemærkelsesværdig variation af dette findes på Burroughs B1700, hvor der hverken er en bootstrap ROM eller en indbygget IPL-operation. I stedet, efter at systemet er nulstillet, læser og udfører det opkoder sekventielt fra et bånddrev monteret på frontpanelet; dette opretter en boot loader i RAM, som derefter udføres. Men da dette gør få antagelser om systemet, kan det lige så godt bruges til at indlæse diagnostiske (Vedligeholdelsestestrutine) bånd, der viser en forståelig kode på frontpanelet, selv i tilfælde af grov CPU-fejl.

IBM System/360 og efterfølgereredit

i IBM System/360 og dets efterfølgere, herunder de nuværende as / Architecture-maskiner, er opstartsprocessen kendt som Initial Program Load (IPL).IBM opfandt dette udtryk for 7030 (Stretch), genoplivede det til design af systemet/360 og fortsætter med at bruge det i disse miljøer i dag. I System / 360-processorerne initieres en IPL af computeroperatøren ved at vælge de tre seksadecimale cifrede enhedsadresse (CUU; C=I/O-Kanaladresse, UU=styreenhed og enhedsadresse) efterfulgt af at trykke på LOAD-knappen. På high end System/360-modellerne, de fleste System / 370 og nogle senere systemer, simuleres funktionerne på kontakterne og BELASTNINGSKNAPPEN ved hjælp af valgbare områder på skærmen på en grafikkonsol, ofte en IBM 2250-lignende enhed eller en IBM 3270-lignende enhed. For eksempel på System/370 Model 158 resulterer tastatursekvensen 0-7 gange (nul, syv og gange i den rækkefølge) i en IPL fra enhedsadressen, der blev indtastet i inputområdet. Amdahl 470v / 6 og relaterede CPU ‘er understøttede fire sekskantcifre på de CPU’ er, der havde den valgfri anden kanalenhed installeret, i alt 32 kanaler. Senere ville IBM også understøtte mere end 16 kanaler.

IPL-funktionen I System / 360 og dens efterfølgere og dens kompatible såsom Amdahl ‘ er læser 24 bytes fra en operatørspecificeret enhed til hovedlager, der starter ved reel adresse nul. Den anden og tredje gruppe på otte bytes behandles som Kanalkommandoord for at fortsætte med at indlæse startprogrammet (den første CCV simuleres altid af CPU ‘ en og består af en læse IPL-kommando, 02h, med kommandokæde og undertrykke forkert længdeindikation håndhæves). Når I / O-kanalkommandoerne er færdige, indlæses den første gruppe på otte byte derefter i processorens Programstatusord (PSV), og startprogrammet begynder udførelse på det sted, der er angivet af den pågældende PSV. IPL-enheden er normalt et diskdrev, og derfor er den særlige betydning af 02h read-type kommandoen, men nøjagtig den samme procedure bruges også til IPL fra andre input-type enheder, såsom bånddrev eller endda kortlæsere, på en enhedsuafhængig måde, hvilket for eksempel tillader installation af et operativsystem på en helt ny computer fra et OS initial distribution magnetbånd. For diskcontrollere får kommandoen 02h også den valgte enhed til at søge at cylinder 0000h, hoved 0000h, simulere en Søg cylinder og hovedkommando, 07h, og at søge efter post 01h, simulere en Søg ID lige kommando, 31h; søger og søgninger simuleres ikke af bånd-og kortcontrollere, som for disse enhedsklasser er en 02h-kommando simpelthen en sekventiel læsekommando, ikke en læst IPL-kommando.

disken, båndet eller kortdækket skal indeholde et specielt program til at indlæse det faktiske operativsystem eller det selvstændige værktøj i hovedlageret, og til dette specifikke formål placeres “IPL-tekst” på disken af det enkeltstående Dasdi-program (initialisering af direkte adgang til lagerenhed) eller et tilsvarende program, der kører under et operativsystem, f.eks. ICKDSF, men IPL-kompatible bånd og kortdæk distribueres normalt med denne “IPL-tekst”, der allerede er til stede.

Minicomputeredit

PDP-8/E Frontpanel, der viser de kontakter, der bruges til at indlæse bootstrap-programmet

minicomputere, der starter med startprogrammet digital udstyr Corporation (Dec) PDP-5 og PDP-8 (1965) forenklet design ved hjælp af CPU ‘ en til at hjælpe input og output operationer. Denne sparede pris, men gjorde opstart mere kompliceret end at trykke på en enkelt knap. Minicomputere havde typisk en eller anden måde at skifte i korte programmer ved at manipulere en række kontakter på frontpanelet. Da de tidlige minicomputere brugte magnetisk kernehukommelse, som ikke mistede sine oplysninger, da strømmen var slukket, ville disse bootstrap-læssere forblive på plads, medmindre de blev slettet. Sletning skete undertiden ved et uheld, da en programfejl forårsagede en løkke, der overskrev al hukommelse.

andre minicomputere med en så enkel form for opstart inkluderer hp 2100-serien (midten af 1960 ‘erne), den originale Data General Nova (1969) og DEC’ s PDP-11 (1970).

DEC tilføjede senere en valgfri diodematrice skrivebeskyttet hukommelse til PDP-11, der lagrede et bootstrap-program på op til 32 ord (64 byte). Den bestod af et trykt kredsløbskort, M792, der blev tilsluttet Unibus og holdt en 32 med 16 række halvlederdioder. Med alle 512 dioder på plads indeholdt hukommelsen alle “en” bits; kortet blev programmeret ved at afskære hver diode, hvis bit skulle være “nul”. DEC solgte også versioner af kortet, bm792-serien, forprogrammeret til mange standardindgangsenheder ved blot at udelade de unødvendige dioder.

efter den ældre tilgang har den tidligere PDP-1 en maskinlæsser, således at en operatør kun behøver at skubbe “load” – kontakten for at instruere papirtape-læseren om at indlæse et program direkte i kernehukommelsen. Data General Supernova brugte frontpanelafbrydere til at få computeren til automatisk at indlæse instruktioner i hukommelsen fra en enhed, der er specificeret af frontpanelets dataomskiftere, og spring derefter til indlæst kode; Nova 800 og 1200 havde en kontakt, der indlæste et program i hovedhukommelsen fra en speciel skrivebeskyttet hukommelse og sprang til den.

tidlig minicomputer boot loader eksempelredit

i en minicomputer med en papirbåndlæser læste det første program, der kørte i opstartsprocessen, boot loader, i kernehukommelsen enten den anden trin boot loader (ofte kaldet en binær Loader), der kunne læse papirbånd med checksum eller operativsystemet fra et eksternt lagringsmedium. Pseudokode til boot loader kan være så simpelt som følgende otte instruktioner:

  1. Indstil p-registret til 9
  2. kontroller papirbåndlæser klar
  3. hvis ikke klar, Spring til 2
  4. Læs en byte fra papirbåndlæser til akkumulator
  5. Gem akkumulator til adresse i P-register
  6. hvis slutningen af båndet, Spring til 9
  7. Forøg P-registret
  8. Spring til 2

et relateret eksempel er baseret på en læsser til en Nicolet instrument Corporation Minicomputer fra 1970 ‘ erne ved hjælp af paper tape reader-punch unit på en teletype Model 33 Asr teleprinter. Bytes af sin anden-trins loader læses fra papirbånd i omvendt rækkefølge.

  1. Indstil p-registret til 106
  2. kontroller papirbåndlæser klar
  3. hvis det ikke er klar, skal du hoppe til 2
  4. Læs en byte fra papirbåndlæser til akkumulator
  5. Gem akkumulator til adresse I P-register
  6. Formindsk P-registret
  7. Spring til 2

længden af den anden fase loader er sådan, at den endelige byte overskriver placering 7. Når instruktionen i location 6 udføres, starter location 7 den anden fase loader udfører. Den anden fase loader venter derefter på, at det meget længere bånd, der indeholder operativsystemet, skal placeres i båndlæseren. Forskellen mellem boot loader og anden fase loader er tilføjelsen af kontrol kode til fælde papir tape læse fejl, en hyppig forekomst med relativt lave omkostninger, “deltid-duty” udstyr, såsom Teletype Model 33 ASR. (Friden Fleksionsforfattere var langt mere pålidelige, men også relativt dyre.)

opstart af de første mikrocomputereredit

de tidligste mikrocomputere, såsom Altair 8800 (udgivet først i 1975) og en endnu tidligere lignende maskine (baseret på Intel 8008 CPU) havde ingen bootstrapping udstyr som sådan. Når den startede, ville CPU ‘ en se hukommelse, der ville indeholde eksekverbar kode, der kun indeholder binære nuller—hukommelsen blev ryddet ved at nulstille, når den tændes. Frontpanelerne på disse maskiner havde Vippekontakter til indtastning af adresser og data, en kontakt pr. Enkle tilføjelser til udstyret tillod en hukommelsesplacering ad gangen at blive indlæst fra disse kontakter for at gemme bootstrap-kode. I mellemtiden blev CPU ‘ en forhindret i at forsøge at udføre hukommelsesindhold. Når den var korrekt indlæst, blev CPU ‘ en aktiveret til at udføre bootstrapping-koden. Denne proces var kedelig og måtte være fejlfri.

integreret kredsløb skrivebeskyttet hukommelse eraEdit

en Intel 2708 EPROM “chip” på et printkort.

opstartsprocessen for minicomputere og mikrocomputere blev revolutioneret ved introduktionen af integreret kredsløb skrivebeskyttet hukommelse (ROM) med dens mange varianter, herunder maskeprogrammerede Rom ‘er, programmerbare Rom’ er (PROM), sletbare programmerbare Rom ‘ er (EPROM) og flashhukommelse. Disse gjorde det muligt at medtage opstartsprogrammer som en del af computeren. Indførelsen af en (ekstern) ROM var i en italiensk telefon skifte elaborator, kaldet “Gruppi Speciali”, patenteret i 1975 af Alberto Ciaramella, en forsker ved CSELT. Gruppi Speciali var, startende fra 1975, en fuldt enkelt-knap maskine opstart i operativsystemet fra en ROM-hukommelse sammensat af halvledere, ikke fra ferritkerner. Selvom ROM-enheden ikke var indbygget indlejret i computeren til Gruppi Speciali, på grund af maskinens design, tillod den også Rom-opstart med en knap i maskiner, der ikke var designet til det (derfor var denne “bootstrap-enhed” arkitekturuafhængig), f.eks. PDP-11. Opbevaring af maskinens tilstand efter slukning var også på plads, hvilket var en anden kritisk funktion i telefonskiftekonkurrencen.

typisk vil hver mikroprocessor efter en nulstilling eller tændt tilstand udføre en opstartsproces, der normalt tager form af “begynd udførelse af koden, der findes startende ved en bestemt adresse” eller “kig efter en multibyte-kode på en bestemt adresse og spring til det angivne sted for at begynde udførelse”. Et system bygget ved hjælp af denne mikroprocessor vil have den permanente ROM, der besætter disse specielle placeringer, så systemet altid begynder at fungere uden operatørassistance. For eksempel starter Intel 86-processorer altid med at køre instruktionerne, der begynder ved F000:FFF0, mens initialiseringen for MOS 6502-processoren begynder med at læse en to-byte-vektoradresse på $fffd (MS byte) og $fffc (LS byte) og hoppe til det sted for at køre bootstrap-koden.

Apple Inc.’s første computer, Apple 1 introduceret i 1976, indeholdt PROM chips, der eliminerede behovet for et frontpanel til opstartsprocessen (som det var tilfældet med Altair 8800) i en kommerciel computer. Ifølge Apples annonce annoncerer det “ikke flere kontakter, Ikke flere lys … med PROMS kan du indtaste, vise og fejlsøge programmer (alle i sekskant) fra tastaturet.”

på grund af udgifterne til skrivebeskyttet hukommelse på det tidspunkt startede Apple II-serien sine diskoperativsystemer ved hjælp af en række meget små trinvise trin, der hver passerede kontrol videre til næste fase af den gradvist mere komplekse opstartsproces. (Se Apple DOS: Boot loader). Fordi så lidt af diskoperativsystemet var afhængig af ROM, var udstyret også ekstremt fleksibelt og Understøttede en bred vifte af tilpassede diskkopibeskyttelsesmekanismer. (Se Krakning Af Programmer: Historie.nogle operativsystemer, især Macintosh-systemer fra Apple før 1995, er så tæt sammenvævet med deres udstyr, at det er umuligt at starte et andet operativsystem end det standard. Dette er den modsatte ekstreme af scenariet ved hjælp af ovennævnte kontakter; det er meget ufleksibelt, men relativt fejlsikkert og idiotsikkert, så længe alt udstyr fungerer normalt. En fælles løsning i sådanne situationer er at designe en boot loader, der fungerer som et program tilhørende standard OS, der kaprer systemet og indlæser det alternative OS. Denne teknik blev brugt af Apple til dens a/U-implementering og kopieret af forskellige gratis operativsystemer og BeOS Personal Edition 5.

nogle maskiner, som Atari ST-mikrocomputeren, var “instant-on”, hvor operativsystemet blev udført fra en ROM. Hentning af operativsystemet fra sekundær eller tertiær butik blev således elimineret som en af de karakteristiske operationer til bootstrapping. For at tillade systemtilpasninger, tilbehør og andet supportprogram, der skal indlæses automatisk, blev Atari ‘ s diskettedrev læst for yderligere komponenter under opstartsprocessen. Der var en timeout-forsinkelse, der gav tid til manuelt at indsætte en diskette, da systemet søgte efter de ekstra komponenter. Dette kunne undgås ved at indsætte en tom disk. Atari ST-udstyret blev også designet, så patronspalten kunne give indbygget programudførelse til spilformål som et holdover fra Ataris arv, der fremstiller elektroniske spil; ved at indsætte Spectre GCR-patronen med Macintosh-system-ROM ‘ en i spilspalten og tænde Atari, kunne den “indbygget starte” Macintosh-operativsystemet snarere end Ataris egne TOS.IBM ‘ s personlige Computer inkluderede ROM-baserede programmer kaldet BIOS; en af funktionerne var at udføre en selvtest, når maskinen blev tændt, og derefter at læse programmer fra en boot-enhed og udføre den. IBM PC-kompatible computere bruges i IBM PC-kompatible computere. Intel blev udviklet af Intel, oprindeligt til Itanium-baserede maskiner, og senere også brugt som et alternativ til BIOS i 86-baserede maskiner, herunder Apple Macs ved hjælp af Intel-processorer.arbejdsstationer havde oprindeligt leverandørspecifik ROM-baseret firma. Sun Microsystems udviklede senere OpenBoot, senere kendt som Open Firm-program, som inkorporerede en Forth-tolk, hvor meget af firm-programmet blev skrevet i Forth. Det blev standardiseret af IEEE som IEEE standard 1275-1994; firma, der implementerer denne standard, blev brugt i Kraftpc-baserede Mac ‘ er og nogle andre Kraftpc-baserede maskiner såvel som Suns egne SPARC-baserede computere. Den avancerede RISC Computing-specifikation definerede en anden standard, som blev implementeret på nogle MIPS-baserede og Alfa-baserede maskiner og SGI Visual arbejdsstation 86-baserede arbejdsstationer.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *