boot(7) Miscellaneous Information Manual boot(7) NUME boot - procesul de pornire a sistemului bazat pe UNIX System V Release 4 DESCRIERE Procesul de pornire (sau ,,secvena de pornire") variaza in detalii de la un sistem la altul, dar poate fi imparit in linii mari in faze controlate de urmatoarele componente: (1) hardware (2) incarcator de sistem de operare (OS) (3) nucleu (4) proces in spaiul utilizatorului root (init i inittab) (5) scripturi de pornire Fiecare dintre acestea este descris mai jos in detaliu. Hardware Dupa pornirea sau reiniializarea de la buton, controlul este acordat unui program stocat in memoria numai pentru citire (in mod normal PROM); din motive istorice legate de calculatorul personal, acest program este adesea numit ,,BIOS". Acest program efectueaza in mod normal un autotest de baza al mainii i acceseaza memoria nevolatila pentru a citi ali parametri. Aceasta memorie din PC este o memorie CMOS alimentata de baterie, aa ca majoritatea oamenilor se refera la ea ca fiind ,,CMOS"; in afara lumii PC-urilor, ea este numita de obicei ,,NVRAM" (RAM nevolatila). Parametrii stocai in NVRAM variaza de la un sistem la altul, dar, cel puin, ar trebui sa precizeze ce dispozitiv poate furniza un incarcator de sistem de operare sau, cel puin, ce dispozitive pot fi verificate pentru unul; un astfel de dispozitiv este cunoscut sub numele de ,,dispozitivul de pornire". Etapa de pornire hardware incarca incarcatorul de sistem de operare dintr-o poziie fixa pe dispozitivul de pornire i apoi ii transfera controlul. Nota: Dispozitivul de pe care se citete incarcatorul de sistem de operare poate fi ataat prin intermediul unei reele, caz in care detaliile de pornire sunt specificate in continuare prin protocoale precum DHCP, TFTP, PXE, Etherboot etc. Incarcator de sistem de operare (OS) Sarcina principala a incarcatorului de sistem de operare este de a localiza nucleul pe un anumit dispozitiv, de a-l incarca i de a-l rula. Cele mai multe incarcatoare de SO permit o utilizare interactiva, pentru a permite specificarea unui nucleu alternativ (poate un nucleu de rezerva in cazul in care ultimul compilat nu funcioneaza) i pentru a transmite parametrii opionali catre nucleu. Intr-un PC tradiional, incarcatorul sistemului de operare este localizat in blocul iniial de 512 octei al dispozitivului de pornire; acest bloc este cunoscut sub numele de ,,MBR" (Master Boot Record). In majoritatea sistemelor, incarcatorul sistemului de operare este foarte limitat din cauza diverselor constrangeri. Chiar i pe sistemele non-PC, exista unele limitari privind dimensiunea i complexitatea acestui incarcator, dar limitarea dimensiunii MBR pentru PC (512 octei, inclusiv tabelul de partiii) face aproape imposibila introducerea multor funcionalitai in el. Prin urmare, majoritatea sistemelor impart rolul de incarcare a sistemului de operare intre un incarcator principal i un incarcator secundar; acest incarcator secundar poate fi localizat intr-o poriune mai mare de stocare persistenta, cum ar fi o partiie de disc. In Linux, incarcatorul sistemului de operare este adesea grub(8) (o alternativa este lilo(8)). Nucleu Atunci cand este incarcat, nucleul iniializeaza diverse componente ale calculatorului i ale sistemului de operare; fiecare poriune de software responsabila pentru o astfel de sarcina este considerata, de obicei, ,,un controlor" pentru componenta respectiva. Nucleul pornete gestionarul de memorie virtuala ,,swap" (este un proces al nucleului, numit ,,kswapd" intr-un nucleu Linux modern) i monteaza un anumit sistem de fiiere la ruta radacina, /. Unii dintre parametrii care pot fi pasai nucleului se refera la aceste activitai (de exemplu, sistemul de fiiere radacina implicit poate fi inlocuit); pentru mai multe informaii despre parametrii nucleului Linux, citii bootparam(7). Abia apoi nucleul creeaza procesul iniial al utilizatorului, caruia i se atribuie numarul 1 ca PID (ID de proces). In mod tradiional, acest proces executa programul /sbin/init, caruia ii sunt trecui parametrii care nu au fost deja gestionai de nucleu. Proces in spaiul utilizatorului root Nota: Urmatoarea descriere se aplica unui sistem de operare bazat pe UNIX System V Release 4. Cu toate acestea, o serie de sisteme utilizate pe scara larga au adoptat o abordare conexa, dar fundamental diferita, cunoscuta sub numele de systemd(1), pentru care procesul de pornire este detaliat in bootup(7). Cand pornete /sbin/init, acesta citete /etc/inittab pentru instruciuni suplimentare. Acest fiier definete ceea ce ar trebui sa fie rulat atunci cand programul /sbin/init este instruit sa intre intr-un anumit nivel de execuie, oferind administratorului o modalitate uoara de a stabili un mediu pentru o anumita utilizare; fiecare nivel de execuie este asociat cu un set de servicii (de exemplu, nivelul de execuie S este modul mono-utilizator, iar nivelul de execuie 2 presupune rularea majoritaii serviciilor de reea). Administratorul poate modifica nivelul actual de execuie prin init(1) i poate interoga nivelul actual de execuie prin runlevel(8). Cu toate acestea, deoarece nu este convenabil sa gestionai serviciile individuale prin editarea acestui fiier, /etc/inittab se limiteaza doar sa apeleze un set de scripturi care pornesc/opresc efectiv serviciile individuale. Scripturi de pornire Nota: Urmatoarea descriere se aplica unui sistem de operare bazat pe UNIX System V Release 4. Cu toate acestea, o serie de sisteme utilizate pe scara larga (Slackware Linux, FreeBSD, OpenBSD) au o schema oarecum diferita pentru scripturile de pornire. Pentru fiecare serviciu gestionat (pota electronica, server nfs, cron etc.), exista un singur script de pornire localizat intr-un director specific (/etc/init.d in majoritatea versiunilor de Linux). Fiecare dintre aceste scripturi accepta ca un singur argument cuvantul <> (care determina pornirea serviciului) sau cuvantul <> (care determina oprirea serviciului). Scriptul poate accepta opional i ali parametri de ,,utilitate" (de exemplu, <> pentru a opri i apoi a porni, <> pentru a afia starea serviciului etc.). Rularea scriptului fara parametri afieaza argumentele posibile. Directoare de execuie in ordine Pentru a face ca anumite scripturi sa porneasca/sa se opreasca la anumite niveluri de execuie i intr-o anumita ordine, exista directoare de execuie in ordine, in mod normal de forma /etc/rc[0-6S].d. In fiecare dintre aceste directoare, exista legaturi (de obicei simbolice) catre scripturile din directorul /etc/init.d. Un script principal (de obicei /etc/rc) este apelat din inittab(5); acest script principal apeleaza scriptul fiecarui serviciu prin intermediul unei legaturi din directorul de execuie in ordine relevant. Fiecare legatura al carei nume incepe cu ,,S" este apelata cu argumentul <> (pornind astfel serviciul respectiv). Fiecare legatura al carei nume incepe cu ,,K" este apelata cu argumentul <> (oprind astfel serviciul). Pentru a defini ordinea de pornire sau de oprire in cadrul aceluiai nivel de execuie, numele unei legaturi conine un numar de ordine. De asemenea, pentru claritate, numele unei legaturi se termina de obicei cu numele serviciului la care se refera. De exemplu, legatura /etc/rc2.d/S80sendmail pornete serviciul sendmail(8) la nivelul de execuie 2. Acest lucru se intampla dupa ce /etc/rc2.d/S12syslog este rulat, dar inainte de a fi rulat /etc/rc2.d/S90xfs. Gestionarea acestor legaturi inseamna gestionarea ordinii de pornire i a nivelurilor de execuie; in multe sisteme, exista instrumente care ajuta la aceasta sarcina (de exemplu, chkconfig(8)). Configuraia de pornire Un program care furnizeaza un serviciu este adesea numit ,,demon". De obicei, un demon poate primi diverse opiuni i parametri de linie de comanda. Pentru a permite unui administrator de sistem sa modifice aceste intrari fara a edita un intreg script de pornire, se utilizeaza un anumit fiier de configurare separat, care este localizat intr-un anumit director in care un script de pornire asociat il poate gasi (/etc/sysconfig pe sistemele Red Hat mai vechi). In sistemele UNIX mai vechi, un astfel de fiier coninea opiunile reale ale liniei de comanda pentru un demon, dar in sistemele Linux moderne (i, de asemenea, in HP-UX), acesta conine doar variabile de shell. Un script de pornire din /etc/init.d citete i include fiierul sau de configurare (adica ,,sursele" fiierului sau de configurare) i apoi utilizeaza valorile variabilelor. FIIERE /etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/ CONSULTAI I init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 boot(7)