Know Intuit, prelegere, în timpul pornirii sistemului
Rezumat: Cursul discută etapele de bază ale calculatorului pornirea ca un avans al kernel-ului Linux (part-sistem independent), și în timpul de încărcare a sistemului (de fapt, Linux). Detalii nivelurile de script-uri de performanță și de pornire. Descrie măsurile necesare pentru a opri sistemul.
Dosistemnaya loading
Programul de conectare. Jurnalele de utilizator pe sistemul rulează numai atunci când sistemul în sine este deja dat în pregătire completă și funcționează normal. Acest lucru nu se întâmplă imediat după pornirea calculatorului: Linux - un sistem destul de complex, ale cărui obiecte se încadrează în memorie nu de la sine, ci în procesul de boot. Se încarcă în sine - proces pas: comportamentul calculatorului în diferite stadii de încărcare este determinată de varietatea de oameni - de la componenta hardware a administratorului de sistem pentru dezvoltatori. Aplicabile cerințelor de flexibilitate ale sistemului, capacitatea de a schimba setarea în funcție de componenta de hardware, necesitatea de a rezolva sarcini diferite, folosind același computer face, de asemenea, etapa de proces de descărcare: în primul rând definit profilul viitorului sistem, atunci acest profil este pus în aplicare.
Etapa inițială nu depinde de ce sistem de operare este instalat pe computer, pentru anumite etape, în fiecare sistem de operare oferă soluții sale - în cea mai mare parte interschimbabile. Acest pas (pornire) dosistemnoy numit descărcarea. De la o anumită etapă, computerul pornește deja gestionate de Linux în sine, instrumente utilizate, script-uri, etc. Acest pas sistem (final) apel de încărcare.
Bootloader în ROM
Imediat după pornirea RAM arhitectura clasica curat al computerului. Pentru a începe să lucreze, procesorul are nevoie de cel puțin o parte de program. Acest program este încărcat automat în memoria din memoria read-only. ROM (sau ROM, memorie read-only), în care este înscris o dată și neschimbate 1 calculatoare moderne folosesc o memorie ROM programabilă. conținutul care poate fi schimbat, dar această schimbare este întotdeauna considerată situație anormală: de exemplu, înregistrează o nouă versiune a conținutului ROM. care stabilește unele bug-uri (upgrade). În calculatoare specializate (de exemplu, în console de jocuri ieftine), toate nevoile utilizatorului, este scris în memoria ROM (de multe ori detașabil), și pornind programul de acolo finisaje de descărcare.
De obicei, într-un program de calculator general, scopul de ROM-ul pentru a utilizatorului nimic util să nu se întâmple: este mic, și întotdeauna face același lucru. schimba ușor comportamentul unui program din ROM-ul poate fi, în ceea ce privește datele înregistrate în memoria nevolatilă (uneori numit CMOS, uneori - NVRAM). Volumul de memorie non-volatilă este foarte mică, iar datele de la acesta este stocat după oprirea calculatorului de către sursa de alimentare autonomă (de obicei, o oră ca și-baterie).
BIOS. Scurt pentru „Sistem Basic Input-Output“, un set de rutine în ROM. destinate pentru cel mai simplu acces de nivel scăzut la un dispozitiv extern de calculator. În sistemul de operare modern este utilizat numai în procesul de boot.
Acest pas poate fi numit sistemul de boot zero. din moment ce nici unul din sistem care este independentă. Sarcina lui - pentru a determina (probabil cu ajutorul utilizatorului), dispozitiv care va merge descărcare, descărcare de acolo un încărcător programmu- special și rulați-l. De exemplu, pentru a afla ce dispozitivul pentru a descărca - hard disk, să ia primul sector al discului și se transferă gestionarea programului, care se află în zona de citire.
Sectorul de boot și de încărcare principală
Cel mai adesea, dimensiunea bootloader primare hard disk - programul care este dat de control, după etapa de la zero - o foarte mică. Acest lucru se datorează cerințelor universalitatea acestui tip de programe. Citește date din sectoarele de disc. mărimea care variază pentru diferite tipuri de dispozitive de disc (de la jumătate până la opt kilobyte sau mai mult). În plus, dacă numărul unu, primul sector al discului poate fi întotdeauna în același mod, apoi citiți mai multe sectoare comenzi pentru diferite dispozitive pot arăta diferit. Acesta este motivul pentru care bootloader primar durează, de obicei, nu mai mult de un sector la începutul discului în sectorul său de boot.
În cazul în care încărcătorul de boot primar este un pic mai mult, el însuși, probabil, ar putea înțelege în cazul în care nucleul sistemului de operare. și aș fi capabil să-și asume în mod independent, locul său în memorie, configurați și transferă controlul acestuia. Cu toate acestea, nucleul sistemului de operare are o structură destul de complexă - și, prin urmare, o modalitate dificilă de încărcare; acesta poate fi destul de mare, și că toate neplăcute, poate fi localizat cine știe unde pe disc, cu respectarea legilor sistemului de fișiere (de exemplu, format din mai multe părți, împrăștiate pe tot discul). Potrivire toate este bootloader primar nu se poate. Sarcina lui este mai modestă: pentru a determina unde „mare“ bootloader secundar pe disc. descărcați și rulați-l. încărcător secundar este simplu, și poate fi pus într-un loc prestabilit un disc sau, cel mai rău caz, a pus într-o locație prestabilită a hărții. care descrie exact unde să caute o parte (dimensiunea încărcătorului de boot secundar este limitat, astfel încât pentru a construi o astfel de hartă este posibil).
Harta locație. Prezentarea zonei cu datele necesare (de exemplu, un încărcător de boot secundar, sau nucleul sistemului), sub forma unei liste de sectoare ale discului pe care îl ocupă.
În cazul calculatorului compatibil IBM dimensiunea sectorului de boot este de numai 512 bytes. din care nu toate se încadrează în zona programului. Sectorul de boot IBM PC, numit MBR (master boot record), conține, de asemenea, un tabel de partiționare. structura care este descrisă în capitolul 11. Se înțelege că programul de această dimensiune nu se poate lauda cu o varietate de funcții. Standard pentru sectorul de boot multe sisteme pot fi luate în considerare doar tabela de partiții a discului. pentru a determina partiția de boot așa-numita (partiție activă), și de a descărca programul, situat la începutul acestei secțiuni. Pentru fiecare tip de disc poate avea parte de program dumneavoastră MBR. care vă permite să citiți date din orice spațiu pe disc, în conformitate cu tipul și geometria acestuia. Cu toate acestea, puteți citi încă nu mai mult de un sector de necunoscut, care sunt utilizate în această secțiune, setați sistemul de operare al doilea și al sectoarelor ulterioare. Se pare că software-ul standard al MBR - este un preloader. care citește și execută o bootloader primară adevărată din primul sector al partiției de boot.
Există versiuni ale preloader. Acesta oferă utilizatorului posibilitatea de a alege. cu unele secțiuni pentru a efectua sarcină 2 De exemplu, BOOTACTV de ambalaj pfdisk sau un standard pentru FreeBSD preîncărcare boot0. care, în virtutea dosistemnosti lor. Acesta poate fi folosit oriunde. Acest lucru face posibil pentru fiecare dintre sistemele de operare instalate pentru a stoca încărcător de încărcare principală de la începutul acestei secțiuni și de a alege în mod liber între ele. În schema de boot Linux standard utilizează o abordare diferită: un simplu încărcător de boot primar este scris direct în MBR. și selectând funcția este transferată către dispozitivul de încărcare secundară.
Încărcătorul de boot primar. Prima etapă a porni computerul: programul, dimensiunea și domeniul de aplicare a care depinde de cerințele hardware și funcțiile BIOS. Principala sarcină - pentru a încărca încărcătorul de boot secundar.
încărcător nucleu
Sarcina bootloader secundară include încărcarea și setarea inițială a kernel-ului sistemului de operare. De obicei, nucleul sistemului este înregistrat într-un anumit nume de fișier. Dar, ca un încărcător de boot secundar pentru a citi kernel-ul din fișierul. în cazul în care această operațiune este funcția kernel în Linux. Această problemă poate fi rezolvată în trei moduri.
În primul rând, kernel-ul nu poate fi un fișier de pe disc. Dacă descărcarea se întâmplă în rețea, este suficient pentru a cere serverului „fișier cu un astfel de nume“, iar răspunsul va veni întreaga secvență de date care conțin nucleul solicitat. Toate operațiunile de fișier efectuate de serverul pe care sistemul este deja în funcțiune. În alte cazuri, nucleul „condus“ într-un dedicat în cadrul acestei secțiuni, în cazul în care nu mai este sub forma unui fișier, și aceeași continuă bucată, mărimea și locația sunt cunoscute. Cu toate acestea, Linux nu este făcută să acționeze ca un loc pentru o partiție specială pe disc, de exemplu, calculator compatibil IBM nu poate fi găsit.
În al doilea rând, puteți utiliza plasarea cardului descris mai sus. introduce miezul sub forma unui set de sectoare de pe disc, pentru a înregistra acest set într-un loc predeterminat, și pentru a face încărcător pentru a colecta bucăți de kernel-ul hărții. Utilizarea cardului de plasare are două dezavantaje majore: crearea sa este posibilă numai sub controlul unui sistem deja încărcate, iar schimbarea de bază ar trebui să fie însoțită de o schimbare în card. În cazul în care, din anumite motive, sistemul nu este încărcat în oricare dintre configurațiile pre-proiectate, singura oportunitate de a corecta problema - să pornească de pe suport extern (de exemplu, disc cu laser). Iar sistemul nu poate fi pornit doar pentru că administratorul uitat după schimbarea kernel-ului recompilați pe hartă. în harta este o listă a sectoarelor corespund fișierul vechi cu kernel-ul. și după îndepărtarea fișierului vechi din aceste sectoare pot conține orice „gunoi.“
În al treilea rând, vă puteți preda un încărcător de boot secundar să recunoască structura sistemelor de fișiere și pentru a găsi în cazul în care fișierele după nume. Acest lucru va crește în mod semnificativ dimensiunea și va necesita „o dublare a funcțiilor“ - de fapt, exact același, chiar mai puternic, recunoaștere va fi în centrul. Dar din impas poate fi evitată așa cum este descris mai sus, în cazul în care, de exemplu, nu ștergeți vechiul nucleu atunci când instalați noi și redenumiți-l. Apoi, în cazul în care sarcina sistemului cu noul nucleu eșuează, puteți porni din nou, specificând manual numele fișierului (sau director) cu vechiul nucleu. care gestionează toate au lucrat în mod corespunzător.
Încărcătorul de boot secundar poate încărca doar kernel-ul. dar, de asemenea, personaliza. Mecanismul de configurare a kernel-ului cel mai frecvent utilizat. similar cu coajă de linie de comandă: ca echipa efectuează nucleu. precum și parametrii - configurația kernel-ului. configurația kernel-ului necesar pentru a modifica temporar funcționalitatea acestuia: de exemplu, pentru a alege un alt mod grafic console virtuale. Pentru a dezactiva suportul pentru capacități suplimentare de dispozitive externe (în cazul în care hardware-ul nu le suport) pentru a trece la instrucțiunile de kernel cu privire la modul de a porni sistemul, etc.
Foarte des, configurația încărcătorului de boot secundar oferă mai multe opțiuni, de la mai multe variante de încărcare identice cu setări diferite ale nucleului (de exemplu, un profil standard, și un profil cu deconectat îmbunătățită) la variantele de realizare de încărcare diferite nuclee, și chiar sisteme de operare diferite. Acest lucru necesită din încărcătorul de o varietate de instrumente de front-end. Pe de o parte, el trebuie să fie capabil să lucreze într-un mediu modest, cum ar fi schimb de date cu utilizatorul printr-un port serial care este conectat la consola sistemului. Pe de altă parte, în cazul în care există un dispozitiv de imagine standard I / O, aș dori să utilizați încărcătorul și. Prin urmare, toate sunt interfata incarcator versatil bazate pe text (de multe ori caracteristici destul de bogate) și grafice variate (de multe ori sub forma de meniu).
O situație specială apare în cazul în care computerul care execută alte sisteme de operare (de exemplu, în cazul în care un computer personal este, de asemenea, folosit pentru jocuri pe calculator, este strict legat de un sistem specific). În acest caz, nu te uita pentru „universalitate“ a încărcătorului secundar. chiar dacă el este capabil să se facă distincția între o multitudine de sisteme de fișiere și mai multe nuclee formate de descărcare. este imposibil să le știu pe toate. Cu toate acestea, dacă reporniți sectorul partiția de sistem de operare a înregistrat un încărcător de boot primar. puteți pur și simplu descărca, ca și cum sa întâmplat imediat după operația MBR. Astfel, încărcătorul secundar poate acționa ca un preloader. care trece de management "lanț" (chainloading). Din păcate, mai lung lanț, cu atât mai mare probabilitatea de pauză: puteți, de exemplu, încărcați lanțul MS-DOS, scoateți-l folosind o partiție Linux, care conține încărcător secundar. și apoi retrimiteți această secțiune, iar acest rezultat în calculatorul inoperabil.
Încărcător secundar. A doua etapă a porni computerul: programul, dimensiunea și domeniul de aplicare, care sunt practic independente de cerințele hardware. Principala sarcină - de a pregăti pe deplin și de a începe încărcarea sistemului de operare.