Opstarten

Schakelaars en kabels die worden gebruikt om ENIAC (1946)

Er zijn veel verschillende methoden beschikbaar om een kort initieel programma in een computer te laden. Deze methoden reiken van eenvoudige, fysieke invoer tot verwijderbare media die complexere programma ‘ s kunnen bevatten.

pre integrated-circuit-ROM examplesEdit

vroege computersEdit

vroege computers in de jaren 1940 en 1950 waren unieke technische inspanningen die weken konden duren om te programmeren en het laden van programma ‘ s was een van de vele problemen die moesten worden opgelost. Een vroege computer, ENIAC, had geen programma opgeslagen in het geheugen, maar werd ingesteld voor elk probleem door een configuratie van verbindingskabels. Bootstrapping was niet van toepassing op ENIAC, waarvan de hardwareconfiguratie klaar was om problemen op te lossen zodra power werd toegepast.

het EDSAC-systeem, de tweede computer met opgeslagen programma ‘ s die gebouwd moest worden, gebruikte stepping-schakelaars om een vast programma naar het geheugen over te brengen wanneer de startknop werd ingedrukt. Het programma opgeslagen op dit apparaat, die David Wheeler voltooid in het einde van 1948, geladen verdere instructies van geponste tape en vervolgens uitgevoerd.

eerste commerciële computersEdit

de eerste programmeerbare computers voor commerciële verkoop, zoals de UNIVAC I en de IBM 701, bevatten functies om hun werking te vereenvoudigen. Ze meestal opgenomen instructies die een volledige input of output operatie uitgevoerd. Dezelfde hardwarelogica kan worden gebruikt om de inhoud van een ponskaart (de meest typische) of andere invoermedia, zoals een magnetische trommel of magneetband, die een bootstrap-programma bevatten, te laden door op een enkele knop te drukken. Dit opstartconcept werd een aantal namen genoemd voor IBM-computers van de jaren 1950 en vroege jaren 1960, maar IBM gebruikte de term “Initial Program Load” met de IBM 7030 Stretch en later gebruikte het voor hun mainframe lijnen, te beginnen met de System/360 in 1964.

initiële programma load ponskaart voor de IBM 1130 (1965)

de IBM 701-computer (1952-1956) had een “Load” – knop die het lezen van het eerste 36-bit woord in het hoofdgeheugen van een ponskaart in een kaartlezer, een magneetband in een bandaandrijving of een magnetische trommeleenheid, afhankelijk van de positie van de belastingsschakelaar. Het linker 18-bit half-woord werd vervolgens uitgevoerd als een instructie, die meestal extra woorden in het geheugen lezen. Het geladen opstartprogramma werd vervolgens uitgevoerd, die op zijn beurt een groter programma van dat medium in het geheugen geladen zonder verdere hulp van de menselijke operator. De term “laars” wordt in deze zin ten minste sinds 1958 gebruikt.

IBM System/3 console uit de jaren 1970. programma load selector switch is linksonder; programma load switch is rechtsonder.

andere IBM-computers uit die tijd hadden vergelijkbare functies. Bijvoorbeeld, het IBM 1401 systeem (c.1958) gebruikte een kaartlezer om een programma van een ponskaart te laden. De 80 tekens die zijn opgeslagen in de ponskaart werden gelezen in geheugenlocaties 001 tot 080, dan zou de computer branch naar geheugenlocatie 001 om de eerste opgeslagen instructie te lezen. Deze instructie was altijd hetzelfde: verplaats de informatie in deze eerste 80 geheugenlocaties naar een montagegebied waar de informatie in ponskaarten 2, 3, 4, enzovoort kon worden gecombineerd om het opgeslagen programma te vormen. Zodra deze informatie werd verplaatst naar de assemblage gebied, de machine zou tak naar een instructie in locatie 080 (lees een kaart) en de volgende kaart zou worden gelezen en de informatie verwerkt.

een ander voorbeeld was de IBM 650 (1953), een decimale machine, die een groep van tien 10-standen schakelaars op het bedieningspaneel had die adresseerbaar waren als geheugenwoord (adres 8000) en als instructie konden worden uitgevoerd. Het instellen van de schakelaars op 7004000400 en het indrukken van de juiste knop zou de eerste kaart in de kaartlezer in het geheugen lezen (op code 70), beginnend bij adres 400 en dan springen Naar 400 om te beginnen met het uitvoeren van het programma op die kaart.

IBM ‘ s concurrenten boden ook één knop programma load.

  • CDC 6600 (CA. 1964) had een dead start panel met 144 tuimelschakelaars; de dead start schakelaar ingevoerd 12 woorden van de tuimelschakelaars aan het geheugen van de randprocessor (PP) 0 en initieerde de load sequence. PP 0 geladen de benodigde code in zijn eigen geheugen en vervolgens geïnitialiseerd de andere PPs.
  • de GE 645 (C.1965) had een “systeem BOOTLOAD” knop die, wanneer ingedrukt, ervoor zorgde dat een van de I/O controllers een 64-woord programma in het geheugen laadde vanuit een diode-alleen-lezen geheugen en een interrupt gaf om dat programma te laten draaien.
  • het eerste model van de PDP-10 had een “READ IN” knop die, wanneer ingedrukt, de processor reset en begon een I/O-operatie op een apparaat gespecificeerd door schakelaars op het bedieningspaneel, het lezen in een 36-bit woord geeft een doeladres en tellen voor de volgende woord leest; toen het lezen voltooid, de processor begon met het uitvoeren van de code gelezen door te springen naar het laatste woord gelezen in.

een opmerkelijke variatie hiervan is te vinden op de Burroughs B1700 waar er geen bootstrap ROM of een hardwired IPL operatie is. In plaats daarvan, nadat het systeem is gereset, leest en voert het achtereenvolgens opcodes uit van een tape drive die op het voorpaneel is gemonteerd; dit stelt een bootloader in RAM in die vervolgens wordt uitgevoerd. Aangezien dit echter weinig veronderstellingen over het systeem maakt, kan het net zo goed worden gebruikt om diagnostische (Onderhoudstest Routine) tapes te laden die een begrijpelijke code op het voorpaneel weergeven, zelfs in geval van een grove CPU-storing.

IBM System/360 and successorsEdit

in het IBM System / 360 en zijn opvolgers, inclusief de huidige Z / Architecture machines, staat het opstartproces bekend als Initial Program Load (IPL).

IBM bedacht deze term voor de 7030 (Stretch), nieuw leven ingeblazen voor het ontwerp van het systeem / 360, en blijft het gebruiken in die omgevingen vandaag. In de System / 360 processors wordt een IPL gestart door de computeroperator door het drie hexadecimale cijferige apparaatadres te selecteren (CUU; C=I/O-Kanaaladres, UU=besturingseenheid en apparaatadres), gevolgd door op de LOAD-knop te drukken. Op de high end System / 360 modellen, de meeste System / 370 en sommige latere systemen, worden de functies van de schakelaars en de LOAD knop gesimuleerd met behulp van selecteerbare gebieden op het scherm van een grafische console, vaak een IBM 2250-achtig apparaat of een IBM 3270-achtig apparaat. Bijvoorbeeld, op het systeem / 370 Model 158, de toetsenbord volgorde 0-7-X (nul, zeven en X, in die volgorde) resulteert in een IPL van het apparaat adres dat werd ingetoetst in het invoergebied. De Amdahl 470V / 6 en aanverwante CPU ’s ondersteund vier hexadecimale cijfers op die CPU’ s die de optionele tweede kanaal eenheid geïnstalleerd, voor een totaal van 32 kanalen. Later zou IBM ook meer dan 16 kanalen ondersteunen.

de IPL-functie in het systeem / 360 en zijn opvolgers, en zijn compatibels zoals Amdahl ‘ s, leest 24 bytes van een operator-gespecificeerd apparaat in de hoofdopslag beginnend bij Echt adres nul. De tweede en derde groepen van acht bytes worden behandeld als woorden van het Kanaalcommando (CCWs) om het opstartprogramma te blijven laden (de eerste CCW wordt altijd gesimuleerd door CPU en bestaat uit een gelezen IPL-bevel, 02h, met bevel het chaining en onderdrukt onjuiste lengteaanwijzing die wordt afgedwongen). Wanneer de I / O kanaal commando ‘ s zijn voltooid, wordt de eerste groep van acht bytes vervolgens geladen in het programma Status Word (PSW) van de processor en het opstarten programma begint uitvoering op de locatie die door dat PSW. Het IPL-apparaat is gewoonlijk een schijfaandrijving, vandaar de speciale betekenis van het 02h lees-type bevel, maar precies dezelfde procedure wordt ook gebruikt aan IPL van andere input-type apparaten, zoals bandaandrijvingen, of zelfs Kaartlezers, op een apparaat-onafhankelijke manier, toestaand, bijvoorbeeld, de installatie van een werkend systeem op een gloednieuwe computer van een OS aanvankelijke distributie magnetische band. Voor schijfcontrolemechanismen, veroorzaakt het bevel 02h ook het geselecteerde apparaat om aan cilinder 0000h, hoofd 0000h te zoeken, het simuleren van een Zoekt cilinder en hoofdcommando, 07h, en om verslag 01h te zoeken, het simuleren van een gelijk bevel van Zoekidentiteitskaart, 31h; zoekt en zoekt worden niet gesimuleerd door band en kaartcontrolemechanismen, aangezien voor deze apparaatklassen een bevel 02h eenvoudig een opeenvolgend gelezen bevel, niet een gelezen IPL bevel is.

De schijf, tape of kaartdek moet een speciaal programma bevatten om het eigenlijke besturingssysteem of standalone utility in de hoofdopslag te laden, en voor dit specifieke doel wordt “IPL Text” op de schijf geplaatst door het stand-alone DASDI (Direct Access Storage Device Initialization) programma of een gelijkwaardig programma dat draait onder een besturingssysteem, bijvoorbeeld ICKDSF, maar IPL-compatibele tapes en kaartdekken worden meestal gedistribueerd met deze “IPL Text” die al aanwezig is.

MinicomputersEdit

PDP-8/e frontpaneel met de schakelaars die worden gebruikt om het bootstrap-programma te laden

Minicomputers, te beginnen met de Digitale Apparatuur Corporation (DEC) PDP-5 en PDP-8 (1965) vereenvoudigd ontwerp door het gebruik van de CPU om input en output operaties te helpen. Dit bespaarde kosten, maar maakte het opstarten ingewikkelder dan het indrukken van een enkele knop. Minicomputers hadden meestal een manier om te schakelen in korte programma ‘ s door het manipuleren van een reeks schakelaars op het voorpaneel. Aangezien de vroege minicomputers magnetische kerngeheugen gebruikten, dat zijn informatie niet verloor toen de stroom uit was, zouden deze bootstrap-laders op hun plaats blijven tenzij ze werden gewist. Het wissen gebeurde soms per ongeluk toen een programmafout een lus veroorzaakte die al het geheugen overschreef.andere minicomputers met zo ’n eenvoudige vorm van opstarten zijn Hewlett-Packard’ s HP 2100 serie (midden jaren 1960), the original Data General Nova (1969) en DEC ‘ s PDP-11 (1970).

DEC voegde later een optioneel diode matrix alleen-lezen geheugen voor de PDP-11 dat een bootstrap programma van maximaal 32 woorden (64 bytes) opgeslagen. Het bestond uit een printkaart, de M792, die op de Unibus werd aangesloten en een 32 bij 16 array van halfgeleiderdiodes bevatte. Met alle 512 diodes op zijn plaats, bevatte het geheugen Alle “één” bits; de kaart werd geprogrammeerd door elke diode af te snijden waarvan het bit “nul”moest zijn. DEC verkocht ook versies van de kaart, de BM792-Yx serie, voorgeprogrammeerd voor veel standaard Invoerapparaten door simpelweg de overbodige diodes weg te laten.

volgens de oudere aanpak heeft de eerdere PDP-1 een hardwarelader, zodat een operator alleen de “load” – schakelaar hoeft te duwen om de papierbandlezer te instrueren een programma direct in het kerngeheugen te laden. De Data General Supernova gebruikte voorpaneelschakelaars om ervoor te zorgen dat de computer automatisch instructies in het geheugen laadt vanaf een apparaat dat door de dataschakelaars van het voorpaneel is gespecificeerd, en vervolgens naar de geladen code springt; de Nova 800 en 1200 hadden een schakelaar die een programma in het hoofdgeheugen laadde vanuit een speciaal alleen-lezen geheugen en erop sprong.

vroege minicomputer bootloader voorbeeldbedit

in een minicomputer met een papiertape-lezer, zou het eerste programma dat in het opstartproces wordt uitgevoerd, de bootloader, in het kerngeheugen de tweede-fase bootloader (vaak een binaire Lader genoemd) lezen die papiertape met checksum kon lezen of het besturingssysteem vanaf een extern opslagmedium. Pseudocode voor de bootloader kan zo eenvoudig zijn als de volgende acht instructies:

  1. Stel de P-register op 9
  2. Controleer het papier tape reader klaar
  3. Als het niet klaar is, spring naar 2
  4. het Lezen van een byte van papier tape reader te accumulator
  5. Bewaar accu aan te pakken in P-register
  6. Als het einde van de tape, spring naar 9
  7. Verhogen van het P-register
  8. Spring naar 2

Een gerelateerd voorbeeld is gebaseerd op een lader voor een Nicolet Instrument Corporation minicomputer van de jaren 1970, met behulp van de papieren tape reader-punch-eenheid op een Teletype Model 33 ASR teleprinter. De bytes van de tweede-trap lader worden gelezen van papier tape in omgekeerde volgorde.

  1. Stel het P-register in op 106
  2. Controleer papiertape ready
  3. indien niet gereed, spring naar 2
  4. lees een byte van papiertape reader naar accumulator
  5. bewaar accumulator om aan te pakken in P-register
  6. Decrement het P-register
  7. Spring naar 2

De lengte van de tweede fase lader is zodanig dat de uiteindelijke byte overschrijft locatie 7. Na de instructie in locatie 6 uitvoert, locatie 7 Start de tweede fase loader uitvoeren. De tweede fase Lader wacht dan op de veel langere tape met het besturingssysteem te worden geplaatst in de tape reader. Het verschil tussen de boot loader en tweede fase loader is de toevoeging van het controleren van code om Papier tape leesfouten te vangen, een frequente voorkomen met relatief goedkope, “part-time-duty” hardware, zoals het Teletype Model 33 ASR. (Friden Flexowriters waren veel betrouwbaarder, maar ook relatief duur.)

opstarten van de eerste microcomputer edit

de eerste microcomputers, zoals de Altair 8800 (voor het eerst uitgebracht in 1975) en een nog oudere, vergelijkbare machine (gebaseerd op de Intel 8008 CPU) hadden geen bootstrapping hardware als zodanig. Wanneer gestart, zou de CPU geheugen dat uitvoerbare code met alleen binaire nullen zou bevatten zien-geheugen werd gewist door te resetten bij het opstarten. De voorpanelen van deze machines droegen tuimelschakelaars voor het invoeren van adressen en gegevens, één schakelaar per bit van het computergeheugenwoord en adresbus. Eenvoudige toevoegingen aan de hardware toegestaan één geheugen locatie tegelijk te worden geladen van die schakelaars om bootstrap code op te slaan. Ondertussen, de CPU werd gehouden van een poging om de inhoud van het geheugen uit te voeren. Eenmaal correct geladen, werd de CPU ingeschakeld om de bootstrapping code uit te voeren. Dit proces was vervelend en moest foutloos zijn.

geà ntegreerd alleen-lezen geheugen eraEdit

een Intel 2708 EPROM “chip” op een printplaat.

het opstartproces voor minicomputers en microcomputers werd een revolutie teweeggebracht door de introductie van geïntegreerde schakeling alleen-lezen geheugen (ROM), met zijn vele varianten, waaronder mask-geprogrammeerde ROM ‘s, programmable ROM’ s (PROM), erasable programmable ROM ‘ s (EPROM) en flash-geheugen. Hierdoor konden firmware opstartprogramma ‘ s worden opgenomen als onderdeel van de computer. De introductie van een (externe) ROM vond plaats in een Italiaanse telefoonschakelmachine, genaamd “Gruppi Speciali”, gepatenteerd in 1975 door Alberto Ciaramella, onderzoeker bij CSELT. Gruppi Speciali was vanaf 1975 een machine met één knop die in het besturingssysteem opstartte vanuit een ROM-geheugen dat bestond uit halfgeleiders, niet uit ferrietkernen. Hoewel het ROM-apparaat niet oorspronkelijk in de computer van Gruppi Speciali was ingebed, vanwege het ontwerp van de machine, stond het ook het opstarten van ROM met één knop toe in machines die daarvoor niet waren ontworpen (daarom was dit “bootstrap-apparaat” architectuuronafhankelijk), bijvoorbeeld de PDP-11. Het opslaan van de toestand van de machine na de uitschakeling was ook op zijn plaats, wat een andere belangrijke functie in de telefoon schakelen wedstrijd was.

Gewoonlijk zal elke microprocessor, na een reset-of power-on-voorwaarde, een opstartproces uitvoeren dat meestal de vorm aanneemt van “begin uitvoering van de code die gevonden wordt vanaf een specifiek adres” of “zoek naar een multibyte-code op een specifiek adres en spring naar de aangegeven locatie om de uitvoering te beginnen”. Een systeem dat met die microprocessor is gebouwd, zal de permanente ROM op deze speciale locaties laten bezetten, zodat het systeem altijd zonder hulp van de operator in werking treedt. Bijvoorbeeld, Intel x86 processors beginnen altijd met het uitvoeren van de instructies beginnend bij F000:FFF0, terwijl voor de MOS 6502 processor, initialisatie begint met het lezen van een twee-byte vector adres op $FFFD (MS byte) en $FFFC (LS byte) en springen Naar die locatie om de bootstrap code uit te voeren.

Apple Inc.de eerste computer, de Apple 1 die in 1976 werd geïntroduceerd, bevatte PROM-chips die de noodzaak voor een voorpaneel voor het opstartproces elimineerden (zoals het geval was met de Altair 8800) in een commerciële computer. Volgens de advertentie van Apple kondigt het aan ” geen schakelaars meer, geen lichten meer … de firmware in PROMS stelt u in staat om programma ‘ s (allemaal in hex) in te voeren, weer te geven en te debuggen vanaf het toetsenbord.”

vanwege de kosten van read-only geheugen op het moment, de Apple II-serie opgestart zijn schijf besturingssystemen met behulp van een reeks van zeer kleine incrementele stappen, elke controle door te voeren naar de volgende fase van de geleidelijk meer complexe boot proces. (Zie Apple DOS: Bootloader). Omdat zo weinig van het schijfbesturingssysteem op ROM vertrouwde, was de hardware ook uiterst flexibel en ondersteunde een brede waaier van aangepaste mechanismen van de bescherming van het schijfkopie. (Zie Software Kraken: Geschiedenis.)

sommige besturingssystemen, met name pre-1995 Macintosh-systemen van Apple, zijn zo nauw verweven met hun hardware dat het onmogelijk is om een ander besturingssysteem op te starten dan het standaard Besturingssysteem. Dit is het tegenovergestelde extreme van het scenario met behulp van schakelaars hierboven vermeld; het is zeer inflexibel, maar relatief fout-proof en waterdicht zolang alle hardware normaal werkt. Een veel voorkomende oplossing in dergelijke situaties is het ontwerpen van een bootloader die werkt als een programma dat behoort tot de standaard OS dat het systeem kaapt en laadt het alternatieve OS. Deze techniek werd gebruikt door Apple voor de a / UX Unix implementatie en gekopieerd door verschillende freeware besturingssystemen en BeOS Personal Edition 5.

sommige machines, zoals de Atari ST microcomputer, waren “instant-on”, waarbij het besturingssysteem werd uitgevoerd vanaf een ROM. Het ophalen van het besturingssysteem uit secundaire of tertiaire opslag werd dus geëlimineerd als een van de karakteristieke bewerkingen voor bootstrapping. Om systeemaanpassingen, accessoires en andere ondersteuningssoftware automatisch te kunnen laden, werd het diskettestation van de Atari gelezen voor extra componenten tijdens het opstartproces. Er was een time-out vertraging die de tijd gaf om handmatig een diskette in te voegen terwijl het systeem zocht naar de extra componenten. Dit kan worden vermeden door een lege schijf in te voegen. De Atari ST hardware is ook ontworpen zodat de cartridge slot kan voorzien in native programma uitvoering voor gaming doeleinden als een holdover van Atari ‘ s legacy maken van elektronische games; door het invoegen van de Spectre GCR cartridge met de Macintosh-systeem ROM in het spel slot en het aanzetten van de Atari op, het kon “native boot” het Macintosh-besturingssysteem in plaats van Atari ‘ s eigen TOS.

de IBM Personal Computer bevatte ROM-gebaseerde firmware genaamd de BIOS; een van de functies van die firmware was om een power-on zelftest uit te voeren wanneer de machine werd aangezet, en dan om software van een opstartapparaat te lezen en uit te voeren. Firmware compatibel met BIOS op de IBM Personal Computer wordt gebruikt in IBM PC compatibele computers. De uitbreidbare Firmware-Interface werd ontwikkeld door Intel, oorspronkelijk voor Itanium-gebaseerde machines, en later ook gebruikt als een alternatief voor de BIOS in x86-gebaseerde machines, waaronder Apple Macs met Intel-processors.

Unix-werkstations hadden oorspronkelijk leverancierspecifieke ROM – gebaseerde firmware. Sun Microsystems ontwikkelde later OpenBoot, later bekend als Open Firmware, die een Forth interpreter bevatte, waarbij veel van de firmware werd geschreven in Forth. Het werd gestandaardiseerd door de IEEE als IEEE standaard 1275-1994; firmware die deze standaard implementeert werd gebruikt in PowerPC-gebaseerde Macs en enkele andere PowerPC-gebaseerde machines, evenals Sun ‘ s eigen SPARC-gebaseerde computers. De Advanced RISC Computing specification definieerde een andere firmwarestandaard, die werd geà mplementeerd op sommige MIPS-en Alpha-gebaseerde machines en de SGI Visual Workstation x86-gebaseerde werkstations.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *