Know-how, prelegere, unix ca mediu de operare

Structura UNIX

Să analizăm pentru scurt timp un dispozitiv UNIX comun ca mediu de operare (pentru o descriere mai detaliată a arhitecturii sistemului de operare UNIX, vezi [25]. [37] sau [35]).

Centrul de operare este, așa cum sa spus, managerul resurselor și planificatorul de sarcini. Funcțiile acestor părți ale sistemului sunt solicitate, atât timp cât există cel puțin o sarcină (adică, întotdeauna), funcțiile funcționează și în modul supervizor. Pe UNIX, ei formează nucleul sistemului (kernel). Kernel-ul este în mod constant în memorie, servind un flux continuu de cereri pentru utilizarea resurselor universale ale sistemului: memorie și timp. În kernelul UNIX. în plus, acesta include punerea în aplicare a protocoalelor de rețea (au existat încercări de a aloca stiva de protocol TCP / IP într-un modul separat, dar este de mai multe ori reduce performanța, deoarece punerea în aplicare a unora dintre caracteristicile TCP / IP, destul de ciudat, necesită un cuier greu de dispozitivul extern și structura nucleului). nucleu UNIX ofera programe de utilizator o interfață unificată pentru resursele computerului (așa-numitele apeluri de sistem. apeluri de sistem) și conține toate logica dificilă alocarea resurselor pentru sarcini care sunt numite în procesele UNIX.


Fig. 5.1. Structura UNIX ca mediu de operare

De fapt, nu tot ceea ce funcționează în modul kernel (supraveghetor) trebuie să fie prezent într-un anumit sistem care rulează pe un anumit computer. Funcțiile care sunt responsabile pentru lucrul cu o mare varietate de dispozitive externe (care diferă în logica operației), nu are sens să includeți totul în kernelul dintr-o dată. Un singur computer nu conține o sută din toate dispozitivele acceptate de sistem. În plus, este adesea foarte dificil să se determine automat marca dispozitivului conectat la sistem; chiar mai dificil, care nu au o vastă bază de date pe toate dispozitivele, pentru a determina care dintre dispozitivele cunoscute găsite de sistemul corespunde necunoscut, și în general, dacă (t. e. dacă este posibil să se lucreze cu el ca și cu un ușor diferit, dar este cunoscut). Dar administratorul de sistem trebuie să se uite la marcajul de pe placă sau să citească documentația. Așa că am ajuns la conceptul de un driver de dispozitiv ( „conducător auto“, în limba engleză este handler, iar șoferul cuvânt este folosit pentru a înțelege dispozitivul care transformă ceva sau trage, cum ar fi banda. Cu toate acestea, scris în vorbitori de limba engleza de alte limbi este de multe ori a spus șoferului în locul handler. Confuzia este inevitabilă, dacă nu de a se înmulți în fiecare moment, despre ceea ce este). Driverele sunt incluse în kernel. dacă dispozitivele corespunzătoare sunt (sau pot fi) incluse în computer. Unii drivere (de exemplu, autobuzele PCI) sunt aproape întotdeauna pe sistem, altele sunt scrise special pentru controlerul unui dispozitiv exotic. Există șoferi. care nu fac parte din dispozitivul de interfață externă, și să pună în aplicare funcționalități suplimentare în sistem (de exemplu, conducătorul auto ISO9660 sistemul de fișiere, care este folosit pentru discuri cu laser).

În versiunile mai vechi de UNIX (bazat direct pe UNIX sau BSD4.3 a SystemV diverse ediții), toți șoferii au trebuit să avanseze prikomponovyvat la miezul (de ex. E. Folosiți ld de legătură, la fel ca și cea utilizată în programele de asamblare). Mai mult, lansarea ld a fost un fel de concesiune a versiunilor comerciale ale UNIX față de spiritul său necomercial, deoarece, de fapt, driverele au fost compilate din codul sursă C. precum și întregul kernel al sistemului (așa cum a fost, de exemplu, în FreeBSD3 * și Linux până în versiunea 1.2). În timpul compilării kernel-ului sistemului de la sursa sau aranjamentul său de unități obiect este numit de asamblare (reasamblarea) a miezului și în multe sisteme se practică astăzi.

Odată cu mărirea dimensiunii RAM, nu este nevoie să salvați octeți pe ansamblul kernel-ului. potrivirea exactă a profilului existent al echipamentului. Dezvoltatorii încearcă să construiască un kernel. care conține driverele tuturor celor mai populare dispozitive, astfel încât, fără a prelua prea multă memorie, ar putea gestiona sistemul pe marea majoritate a computerelor. Acest kernel se numește generic. Așa cum cere multe cunoștințe pentru a reconstrui kernel-ul (cel puțin, trebuie să înțeleagă versiunea utilizată a arhitecturii UNIX. În arhitectura de calculator și, în special, dispozitivele externe), precum și nevoia de ea poate apărea la prima instalare a sistemului, un nucleu de bază bine echipată în multe feluri face viața mai ușoară pentru inexperți utilizator.

Module kernel

Dacă nucleul de bază nu este încă suficient, în sistemele moderne, mulți drivere pot fi încărcați dinamic. din module de kernel. Miezul. care deja lucrează în memorie, pot fi completate prin încărcarea unui astfel de modul dintr-un fișier cu un format special și apoi recompunerea kernelului în zbor (legătură specială). Aceste module pot fi scoase din funcționalitatea opțională a sistemului (de exemplu, filtrarea de pachete de rețea), apoi kernel-ul de bază va fi chiar mai puțin, dar procesul de boot este complicată, deoarece unele dintre modulele încărcabile vor avea nevoie kernel-ul este deja la pornire, atunci când accesul la fișierele nu pot fi . Un exemplu tipic pentru nucleul de disc au nevoie de o matrice de disc șofer (RAID-controler), care, împreună cu descărcarea de program și module de configurare pe matrice și este. Diferite sisteme vin din această situație în moduri diferite.

Modulele de kernel funcționează în modul kernel. prin urmare, este necesar să le gestionăm cu precauție extremă: o eroare într-un astfel de modul (de exemplu, o înregistrare a celor necunoscute este necunoscută în memorie) este la fel de fatală ca o eroare de kernel. și în cel mai bun caz va provoca caderea sistemului (în cel mai rău caz, sistemul o va observa imediat). Funcțiile modulelor în termeni de OS coincid cu funcțiile kernel-ului. organizarea interfeței cu resursele și logica suplimentară a sistemului.

Alte componente UNIX sunt pornite ca procese în modul utilizator. Subsistemele funcționale (servicii) interacționează cu kernelul, adică cu seturi de software care efectuează o anumită funcție (de exemplu, un sistem de imprimare, un sistem de transfer de mesaje, etc.). Centrul de control al subsistemului funcțional este așa-numitul demon (daemon, în traduceri din greacă numit "daimon"). După cum se menționează în "Ghidul Administratorului Sistemului UNIX" ([33]), "Daimon nu slujește nici rău, nici bun, determină numai caracterul și personalitatea unei persoane". Este mai mult ca un înger păzitor ". Prezența coarnelor și a tridentului în demonii lui BSD încă nu spune nimic, de exemplu, demonul FreeBSD este numit destul de uman - Chuck (Chuck). O creatură care apare în Linux. deși numit Tux, nu are nici coarne, nici trident, deoarece "pe naționalitate" este un pinguin. Un demon este un proces. care se execută la începutul serviciului UNIX pentru a satisface cererile către subsistemul funcțional. Utilizatorul nu are nevoie să-l ruleze, acesta funcționează întotdeauna. Este daemonul care schimbă date cu kernelul sistemului, de multe ori păstrează o coadă de cereri de utilizator, lucrează cu rețeaua și așa mai departe.

Desigur, nu numai demonii pot adresa apelurile de sistem. dar, în general, orice programe. UNIX include multe programe, cu ajutorul cărora puteți rezolva o serie de sarcini instrumentale (adică legate de funcționarea sistemului în sine). Acestea sunt așa-numitele utilități de sistem. Acestea sunt utilizate în primul rând de către sistemul însuși (și sunt de obicei apelate din scenariile de comandă descrise în lectura 11) și administratorul de sistem pentru a controla sistemul. Cu toate acestea, un utilizator care nu are drepturi administrative poate folosi cu ușurință utilitare de sistem. dacă îl ajută în muncă și sistemul nu interferează (de exemplu, să creeze un sistem de fișiere pe o dischetă, să vadă starea sistemului sau daemoanele etc.).

Produse și pachete software

Este clar că nu puteți obține nicio utilitate pe nicio zonă de aplicație. Cu cât sarcina este mai complexă și mai departe de zona instrumentului, cu atât mai puțin este să includeți instrumentele de rezolvare a acesteia în sistem. Cu toate acestea, deoarece există o sarcină, înseamnă că cineva va trebui să o rezolve. Astfel de seturi specializate de programe pe care le-ar dori să aibă, dacă nu în sistem, undeva „aproape“ de, de îndată ce utilizatorul cu sarcinile lor, să-i ofere un mijloc de rezolvare a acestora. Și, cu siguranță metainstrumentary - fabricarea acestor instrumente - în sistem trebuie să fie (metainstrumentary - este software-ul și de dezvoltare de software generale: limbaje de programare, generale, interfață și bibliotecă orientate-obiect, a lui RAD - mijloc de dezvoltare rapidă, etc ...). Un astfel de set de programe pentru rezolvarea problemelor aplicate se numește produs software.

Pentru a adăuga rapid un produs software în sistem sau a îl elimina de acolo, este necesar să fiți de acord în prealabil cu privire la plasarea în sistemul de fișiere a tuturor fișierelor incluse în acesta. Amintiți-vă fiecare fișier cu un nume complet. vom primi arhiva. care determină complet locația produsului software în sistem. O astfel de arhivă pe UNIX se numește pachet. Putem instala pachetul în sistem și îl ștergem, știind că scriem și ștergând fișiere care îi aparțin numai. Pachetul poate stoca nu numai produse software. dar, în general, orice "cărămizi" din care puteți adăuga sistemul: utilități. drivere. documentație, fonturi și orice altceva. Dacă trebuie să efectuați anumite acțiuni în timpul instalării sau înlăturarea pachetului (de exemplu, înregistrați fontul instalat), se atașează un script de instalare și un script de dezinstalare.

Un sistem care este configurat pentru a efectua anumite sarcini nu trebuie să conțină toate pachetele posibile. De obicei, distribuția UNIX include câteva mii de pachete cu scop și volum diferit, de la utilitate. informând, în ce fază este astăzi luna, sistemul de publicare. De fapt, ele sunt instalate câteva sute.

Articole similare