Înainte Înapoi Cuprins

4. Ce se întâmpla când porniți un calculator ?

Un calculator fără un program care rulează este doar o masă inertă de piese. Primul lucru pe care un calculator trebuie să-l faca este să pornească un program special numit sistem de operare. Treaba sistemului de operare este să ajute alte programe să meargă având grijă de detaliile dezordonate de a controla partea hardware a calculatorului.

Procesul de pornire a sistemului de operare este numit bootare (original acesta era numit bootstrapping și făcea aluzie la dificultatea de a te trage în sus de ``de șireturile de ghete''). Calculatorul dvs. știe să booteze deoarece intrucțiunile de bootare sunt construite în unul din cipurile sale, cipul BIOS ( sau Basic Input/Output System ).

Cipul BIOS îi spune să se uite într-un loc fixat pe hard discul cu numărul cel mai mic ( discul de boot ) pentru un program special numit încărcător boot (sub Linux încărcătorul de boot este numit LILO). Încărcătorul de boot este adus în memorie și pornit. Treaba încărcătorului de boot este să pornească adevăratul sistem de operare.

Încărcătorul face aceasta căutând un kernel, încărcându-l în memorie (core), și pornindu-l. Când bootați Linux și vedeți "LILO" pe ecran urmat de o linie de puncte, atunci încarcă kernelul. (Fiecare punct înseamnă că a încărcat alt bloc de disc din codul de kernel.)

(Poate vă întrebați de ce BIOS nu încarcă kernelul direct -- de ce procesul în doi pași cu încărcătorul de boot? Păi BIOSul nu este foarte inteligent. De fapt, este foarte prost, și Linux nu-l folosește deloc după ce a bootat. Original a fost scris pentru PCuri primitive pe 8 octeți cu discuri mici, și de fapt nu poate accesa destul din disc pentru a încărca kernelul direct. Pasul cu încărcătorul de boot vă lasa deasemenea să porniți unul din câteva sisteme de operare din locuri diferite de pe disc, în cazul improbabil ca Unix nu este destul de bun pentru dvs. )

Odată ce kernelul a pornit, trebuie să se uite în jur, să găsească restul de hardware, și să se pregătească să ruleze programe. Face acest lucru uitându-se nu la locațiile de memorie obișnuite dar la porturi I/O ( Intrare/Iesire ) -- adrese speciale pe magistrală care sunt probabile să aibă placi controlere care le ascultă pentru comenzi. Kernelul nu se uită la nimereală; are o mulțime de știință incorporată despre ce este probabil să găsească unde, și cum controlerele o să răspundă dacă sunt prezente. Acest proces se numește autoprobare.

Cele mai multe din mesajele pe care le vedeți la bootare sunt kernelul autoprobând hardwareul prin porturi I/O, dându-și seama ce este disponibil pentru el și adaptâdu-se la mașina dvs. Kernelul de Linux este extrem de bun la aceasta, mai bun decât alte Unixuri și mult mai bun decât DOS sau Windows. De fapt, mulți din utilizatorii vechi de Linux cred că inteligența autoprobelor de la bootare ale Linuxului (care l-au făcut relativ ușor de instalat) a fost un motiv important că s-a evidențiat din mulțimea de experimente Unix-gratuit atrăgând o masă critică de utilizatori.

Dar kernelul complet încărcat și rulând nu este sfârșitul procesului de bootare; este doar prima etapă (câteodată numită run level 1 ( nivelul de rulare 1 )). După această primă etapă, kernelul cedează controlul unui proces numit `init' care pornește câteva procese care să se ocupe de menajeria casei.

Prima treabă a procesului init este de obicei să verifice că discurile dvs. sunt în regulă. Sistemele de fișiere pentru discuri sunt lucruri fragile; dacă au fost deteriorate de o problemă sau o neașteptată pană de curent, sunt motive întemeiate să se ia măsuri de recuperare înainte ca Unix să înceapă complet. O să detaliem aceasta mai târziu când vorbim despre cum sistemele de fișiere pot să greșească.

Pasul următor al lui init este să pornească câțiva daemoni. Un daemon este un program ca un spooler de imprimantă, un ascultător de poșta sau un server WWW care stă ascuns în fundal, așteptând să facă diverse lucruri. Aceste programe speciale trebuie deseori să coordoneze câteva cereri care ar putea să genereze un conflict. Sunt daemoni deoarece este deseori mai ușor să se scrie un program care rulează constant și știe despre toate cererile decât ar fi să se încerce să se convingă că o turmă de programe (fiecare procesând o cerere și toate rulând în același timp) nu se calcă unul pe altul. Colecția specifică de daemoni pe care sistemul dvs. îi pornește poate să varieze, dar aproape întotdeauna va include un spooler de imprimantă (un păzitor de poartă pentru imprimanta dvs).

Odată ce toți daemonii sunt porniți, sunt la run level 2. Urmatorul pas este să se pregătească pentru utilizatori. Init pornește o copie a programului numit getty să urmărească consola (și poate mai multe copii să urmărească porturile de dial-in). Acest program este ceea ce pornește promptul de login pe consola dvs. Suntem acum la run level 3 și gata ca dvs să vă logați și să rulați programe.


Înainte Înapoi Cuprins