Dator startar upp

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 17 januari 2018; kontroller kräver 28 redigeringar .

Uppstart är en process i flera steg, en del av processen att starta upp en dator, från det ögonblick strömmen slås på tills operativsystemet startar. Startsekvensen  är en sekvens av åtgärder som datorn måste utföra för att starta operativsystemet ( närmare bestämt bootloader ), oavsett vilken typ av operativsystem som är installerat.

Bootstrap

De flesta datorsystem kan bara köra kommandon som finns i datorns RAM -minne , medan moderna operativsystem i de flesta fall lagras på hårddiskar , startbara CD-ROM-skivor , USB-enheter eller på ett lokalt nätverk .

När du har slagit på datorn finns det inget operativsystem i RAM-minnet. Ensam, utan ett operativsystem, kan datorhårdvara inte utföra komplexa åtgärder som att ladda ett program i minnet. Vi står alltså inför en paradox som verkar olöslig: för att kunna ladda ett operativsystem i minnet måste vi redan ha ett operativsystem i minnet.

Lösningen på denna paradox är användningen av ett speciellt datorprogram som kallas bootloader (i IBM PC-kompatibla datorer , som är en del av BIOS - Basic Input / Output System). Det här programmet har inte alla funktioner i operativsystemet, men det räcker med att ladda ett annat program som kommer att ladda operativsystemet. Tiered loading används ofta, där flera små program anropar varandra tills ett av dem laddar operativsystemet.

I moderna datorer börjar startprocessen med att processorn exekverar instruktioner som finns i det permanenta minnet (till exempel på IBM PC , BIOS-  instruktioner ), och börjar på en fördefinierad adress (processorn gör detta efter en omstart utan hjälp). Denna programvara kan upptäcka enheter som är lämpliga för uppstart och ladda från en speciell partition av den valda enheten (oftast startsektorn för denna enhet) en OS-laddare .

Bootloaders måste följa specifika begränsningar, särskilt när det gäller volym. Till exempel, på en IBM PC, måste starthanteraren på första nivån passa in i de första 446 byten av huvudstartposten , vilket lämnar plats för 64 byte i partitionstabellen och 2 byte för 55AAh-signaturen som behövs för att BIOS ska upptäcka själva starthanteraren .

Historik

Tidiga datorer hade en uppsättning switchar som gjorde det möjligt för operatören att placera bootloadern i minnet innan processorn startas . Denna starthanterare skulle sedan läsa operativsystemet från en extern enhet som hålband eller en hårddisk .

Pseudo-assembler bootloader-koden kan vara så enkel som följande sekvens av instruktioner:

0: skriv 8 för att registrera P 1: kontrollera att den hålade bandläsaren kan börja läsa 2: om det inte går, gå till steg 1 3: läs en byte från hålbandsläsaren och skriv den till batteriet 4: om den stansade tejpen är över, gå till steg 8 5: Skriv värdet som är lagrat i ackumulatorn till RAM på adressen lagrad i register P 6: öka värdet på register P med ett 7: gå till steg 1

Det här exemplet är baserat på starthanteraren för en av minidatorerna som släpptes på 1970 -talet av Nicolet Instrument Corporation.

0: Skriv 106 för att registrera P 1: kontrollera att den hålade bandläsaren kan börja läsa 2: om det inte går, gå till steg 1 3: läs en byte från hålbandsläsaren och skriv den till batteriet 4: om den stansade tejpen är över, gå till steg 8 5: Skriv värdet som är lagrat i ackumulatorn till RAM på adressen lagrad i register P 6: minska värdet på register P med ett 7: gå till steg 1

Längden på den andra nivåns starthanterare var sådan att den sista byten i bootloadern ändrade kommandot som finns på adress 6. Sålunda, efter exekveringen av steg 5, startade den andra nivåns bootloader. Den andra nivåladdaren väntade på att ett långt hålband innehållande operativsystemet skulle laddas in i hålbandsläsaren. Skillnaden mellan den första nivån loader och den andra nivå loader var kontrollerna för läsfel från stansade tejp, som ofta påträffades vid den tiden, och i synnerhet på ASR-33 teleprinters som används i detta fall.

Vissa operativsystem, varav de mest utmärkande är de gamla (före 1995) operativsystemen för Macintosh-datorer som producerats av Apple Computer , är så nära besläktade med datorhårdvara (fram till övergången till PowerPC och New World ROM- processorer , dvs. upp till ungefär System 8, i ROM:et innehöll både kärnan och de flesta OS-biblioteken) att det är omöjligt att starta upp något annat operativsystem på dessa datorer. I dessa fall är det vanligt att utveckla en bootloader som fungerar som en standard OS-bootloader och sedan skickar kontrollen till ett alternativt operativsystem. Apple använde den här metoden för att köra en A/UX- version av Unix , och sedan användes den av olika fria operativsystem.

Enheter initierade av BIOS

En startenhet  är en enhet som måste initieras innan operativsystemet startar. Dessa inkluderar inmatningsenheter ( tangentbord , mus), grundläggande utgångsenhet ( videokort och bildskärm ) och enheten från vilken operativsystemet kommer att laddas  - diskettenhet , hårddisk , CD-ROM , flashenhet , SCSI- enhet, nätverkskort ( vid uppstart över ett nätverk, till exempel med PXE ).

Startsekvens för en IBM PC-kompatibel dator

Efter att ha slagit på en persondator (PC) baserad på en Intel 80x86 familjeprocessor , börjar dess processor att arbeta i verkligt adresseringsläge med en segmentorganisation och exekvera processorinstruktioner från adressen FFFF:0 initierad i ett par register CS:IP (kod Segment : Instruktionspekare) efter att ha tagit bort RESET-signalen. I slutet av RAM- adressutrymmet som är tillgängligt för processorn laddas BIOS -laddaren från moderkortets ROM och exekveras enligt den ovillkorliga greninstruktionen mappad vid FFFF:0.

BIOS- initieringsprogrammet, med hjälp av POST- programmet , kontrollerar att datorns enheter fungerar korrekt och initierar dem.

BIOS frågar sedan efter listan över startbara enheter, i ordning, från listan över startbara enheter som är förgenererade (i konsolverktyget CMOS SETUP) tills det hittar en startbar enhet. Om en sådan enhet inte hittas kommer BIOS att visa ett felmeddelande på PC -konsolen och startprocessen stoppas. När BIOS upptäcker en startenhet kommer ett försök att göras att läsa data från dess nollsektor (512 byte, som bör innehålla en startpost ) från den senare. Efter det framgångsrika slutförandet av att läsa data från nollsektorn av startenheten till RAM vid den initiala adressen 0000:7C00, skickar BIOS ytterligare exekvering av processorinstruktioner till denna adress.

Nollsektorn på den startbara hårddisken innehåller den så kallade "Master Boot Record" (MBR - Master Boot Record) , som innehåller både data från de första fyra posterna i partitionstabellen och instruktionerna från Intel 80x86-processorn, som tillhandahålla en sökning efter den aktiva partitionen genom dessa poster, från vilken, med hjälp av en från funktionerna i det grundläggande input-output-systemet - INT 13h ( engelska  Int 13h ) [1] , implementerad som en processoravbrottshanterare , startposten av operativsystemet kommer att läsas . Denna startsektor beror som regel på operativsystemet och måste ladda operativsystemets kärna till RAM -minnet och sedan överföra exekveringen av processorinstruktioner till den. Om den aktiva partitionen inte finns, eller om den aktiva partitionens startsektor är ogiltig, kan MBR:n ladda backup-starthanteraren och överföra kontrollen till den. Backupstarthanteraren måste välja en partition (ofta med hjälp av användaren), ladda dess startsektor och överföra kontrollen till den, som i sin tur överför kontrollen direkt till OS-laddaren (ytterligare uppstartssteg beror på typen/versionen av det installerade operativsystemet ). [2]

Andra typer av startsekvenser

Vissa processorer har olika startlägen. Till exempel kan de flesta DSP :er starta i följande lägen:

Anteckningar

  1. Microsoft Knowledge Base . Tillträdesdatum: 26 december 2015. Arkiverad från originalet 26 december 2015.
  2. BSoD blå skärmar (och andra allvarliga fel) kan endast visas efter den första uppstarten, när startkontrollen överförs till starthanteraren och OS-kärnan. Under uppstartsfasen visas alla möjliga fel (POST, BIOS, MBR, FAT/MFT-tabeller, VBS-sektorer, IPL (PnP BIOS)) mycket kort och på en svart skärm.

Se även

Litteratur

Länkar