Pornirea computerului

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 17 ianuarie 2018; verificările necesită 28 de modificări .

Pornirea este un proces în mai multe etape, parte a procesului de pornire a computerului, din momentul pornirii alimentării până la pornirea sistemului de operare. Secvența de pornire  este o secvență de acțiuni pe care computerul trebuie să le efectueze pentru a porni sistemul de operare (mai precis, bootloader ), indiferent de tipul de sistem de operare instalat.

Bootstrap

Majoritatea sistemelor informatice pot executa doar comenzi care se află în memoria RAM a computerului , în timp ce sistemele de operare moderne sunt în cele mai multe cazuri stocate pe hard disk -uri , CD-ROM-uri bootabile , unități USB sau într-o rețea locală .

După pornirea computerului, nu există niciun sistem de operare în RAM. Pe cont propriu, fără un sistem de operare, hardware -ul computerului nu poate efectua acțiuni complexe, cum ar fi încărcarea unui program în memorie. Astfel, ne confruntăm cu un paradox care pare de nerezolvat: pentru a încărca un sistem de operare în memorie, trebuie să avem deja un sistem de operare în memorie.

Soluția la acest paradox este utilizarea unui program special de calculator numit bootloader (în computerele IBM compatibile cu PC , care face parte din BIOS - Basic Input / Output System). Acest program nu are toate funcționalitățile sistemului de operare, dar este suficient să încărcați un alt program care va încărca sistemul de operare. Este adesea folosită încărcarea pe niveluri, în care mai multe programe mici se apelează între ele până când unul dintre ele încarcă sistemul de operare.

În computerele moderne , procesul de pornire începe cu procesorul care execută instrucțiuni aflate în memoria permanentă (de exemplu, pe computerul IBM ,  instrucțiuni BIOS ), începând de la o adresă predefinită (procesorul face acest lucru după o repornire fără niciun ajutor). Acest software poate detecta dispozitivele potrivite pentru pornire și încărcare dintr-o partiție specială a dispozitivului selectat (cel mai adesea sectorul de boot al acestui dispozitiv) un încărcător de sistem de operare .

Bootloaderele trebuie să respecte restricții specifice, în special în ceea ce privește volumul. De exemplu, pe un PC IBM, bootloader-ul de primul nivel trebuie să se încadreze în primii 446 de octeți ai înregistrării master de boot , lăsând loc pentru 64 de octeți ai tabelului de partiții și 2 octeți pentru semnătura de 55AAh necesară pentru ca BIOS-ul să detecteze încărcătorul în sine. .

Istorie

Primele calculatoare aveau un set de comutatoare care permiteau operatorului să plaseze bootloader-ul în memorie înainte de a porni procesorul . Acest bootloader va citi apoi sistemul de operare de pe un dispozitiv extern, cum ar fi bandă perforată sau un hard disk .

Codul bootloaderului pseudo-asambler poate fi la fel de simplu ca următoarea secvență de instrucțiuni:

0: scrieți 8 pentru a înregistra P 1: verificați dacă cititorul de bandă perforată poate începe să citească 2: dacă nu puteți, treceți la pasul 1 3: citiți un octet din cititorul de bandă perforată și scrieți-l pe baterie 4: dacă banda perforată sa terminat, treceți la pasul 8 5: Scrieți valoarea stocată în acumulator în RAM la adresa stocată în registrul P 6: măriți valoarea registrului P cu unu 7: treceți la pasul 1

Acest exemplu se bazează pe bootloader-ul unuia dintre minicalculatoarele lansate în anii 1970 de Nicolet Instrument Corporation.

0: scrieți 106 pentru a înregistra P 1: verificați dacă cititorul de bandă perforată poate începe să citească 2: dacă nu puteți, treceți la pasul 1 3: citiți un octet din cititorul de bandă perforată și scrieți-l pe baterie 4: dacă banda perforată sa terminat, treceți la pasul 8 5: Scrieți valoarea stocată în acumulator în RAM la adresa stocată în registrul P 6: scade valoarea registrului P cu unu 7: treceți la pasul 1

Lungimea bootloader-ului de al doilea nivel a fost de așa natură încât ultimul octet al bootloader-ului a schimbat comanda aflată la adresa 6. Astfel, după executarea pasului 5, a început bootloader-ul de al doilea nivel. Încărcătorul de al doilea nivel aștepta ca o bandă perforată lungă care conținea sistemul de operare să fie încărcată în cititorul de bandă perforată. Diferența dintre încărcătorul de primul nivel și încărcătorul de al doilea nivel au fost verificările erorilor de citire de pe bandă perforată, care au fost adesea întâlnite la acea vreme și, în special, pe teleimprimatoarele ASR-33 utilizate în acest caz.

Unele sisteme de operare, dintre care cele mai caracteristice sunt sistemele de operare vechi (înainte de 1995) ale computerelor Macintosh produse de Apple Computer , sunt atât de strâns legate de hardware-ul computerului (până la trecerea la procesoarele PowerPC și New World ROM , adică, până la aproximativ Sistemul 8, în ROM-ul conținea atât nucleul, cât și majoritatea bibliotecilor OS) că este imposibil să pornești orice alt sistem de operare pe aceste computere. În aceste cazuri, este obișnuit să se dezvolte un bootloader care acționează ca un bootloader standard al sistemului de operare și apoi transmite controlul unui sistem de operare alternativ. Apple a folosit această metodă pentru a rula o versiune A/UX de Unix , iar apoi a fost folosită de diverse sisteme de operare gratuite.

Dispozitive inițializate de BIOS

Un dispozitiv de pornire  este un dispozitiv care trebuie inițializat înainte de pornirea sistemului de operare. Acestea includ dispozitive de intrare ( tastatură , mouse), dispozitiv de ieșire de bază ( placă video și afișaj ) și dispozitivul de pe care va fi încărcat sistemul de operare  - unitate de dischetă , hard disk , CD-ROM , unitate flash , dispozitiv SCSI , placă de rețea ( la pornirea printr-o rețea; de exemplu, folosind PXE ).

Secvență de pornire pentru un computer compatibil IBM PC

După pornirea unui computer personal (PC) bazat pe un procesor din familia Intel 80x86 , procesorul acestuia începe să lucreze în modul de adresare reală cu o organizare de segmente și executând instrucțiuni de procesor de la adresa FFFF:0 inițializată într-o pereche de registre CS:IP (Cod). Segment : Indicator de instrucțiuni) după eliminarea semnalului RESET. La sfârșitul spațiului de adresă RAM disponibil procesorului, încărcătorul BIOS este încărcat din ROM -ul plăcii de bază și executat conform instrucțiunii de ramificare necondiționată mapată la FFFF:0.

Programul de inițializare BIOS , folosind programul POST , verifică dacă dispozitivele computerului funcționează corect și le inițializează.

BIOS-ul interogează apoi lista dispozitivelor bootabile, în ordine, din lista dispozitivelor bootabile pregenerate (în utilitarul consolei CMOS SETUP) până când găsește un dispozitiv bootabil. Dacă un astfel de dispozitiv nu este găsit, BIOS-ul va afișa un mesaj de eroare pe consola PC-ului și procesul de pornire va fi oprit. Când BIOS-ul detectează un dispozitiv de pornire, se va încerca să citească datele din sectorul său zero (512 octeți, care ar trebui să conțină o înregistrare de pornire ) din acesta din urmă. După finalizarea cu succes a citirii datelor din sectorul zero al dispozitivului de pornire în RAM la adresa inițială 0000:7C00, BIOS-ul trimite execuția ulterioară a instrucțiunilor procesorului la această adresă.

Sectorul zero al hard diskului bootabil conține așa-numitul „Master Boot Record” (MBR - Master Boot Record) , care conține atât datele primelor patru intrări ale tabelului de partiții , cât și instrucțiunile procesorului Intel 80x86, care furnizează o căutare a partiției active prin aceste intrări, din care, prin intermediul uneia dintre funcțiile sistemului de bază de intrare-ieșire - INT 13h ( engleză  Int 13h ) [1] , implementat ca un handler de întrerupere a procesorului , înregistrarea de pornire a sistemului de operare va fi citit . Acest sector de boot, de regulă, depinde de sistemul de operare și trebuie să încarce nucleul sistemului de operare în RAM și apoi să transfere execuția instrucțiunilor procesorului în acesta. Dacă partiția activă nu există sau sectorul de pornire al partiției active este invalid, MBR poate încărca bootloader-ul de rezervă și poate transfera controlul acestuia. Bootloader-ul de rezervă trebuie să selecteze o partiție (adesea cu ajutorul utilizatorului), să-și încarce sectorul de pornire și să-i transfere controlul, care, la rândul său, transferă controlul direct către încărcătorul sistemului de operare (pașii de pornire suplimentari depind de tipul / versiunea sistemul de operare instalat ). [2]

Alte tipuri de secvențe de pornire

Unele procesoare au moduri de pornire diferite. De exemplu, majoritatea DSP-urilor pot porni în următoarele moduri:

Note

  1. Baza de cunoștințe Microsoft . Data accesului: 26 decembrie 2015. Arhivat din original pe 26 decembrie 2015.
  2. Ecranele albastre BSoD (și alte erori fatale) pot fi afișate numai după pornirea inițială, când controlul de pornire este transferat la bootloader și la nucleul sistemului de operare. În timpul fazei de pornire, toate erorile posibile (tabelele POST, BIOS, MBR, FAT/MFT, sectoare VBS, IPL (PnP BIOS)) sunt afișate foarte scurt și pe un ecran negru.

Vezi și

Literatură

Link -uri