internetul Windows. Android

Unix este. Ce diferă Linux de la Unix și ce este un sistem de operare ca un sistem de lucru? Rolul social în comunitatea profesioniștilor IT și rolul istoric

Istorie Unix.® Începe în 1969. Cele mai multe sisteme UNIX moderne sunt versiuni comerciale ale distribuțiilor sursei Unix. Solaris de la Sun, HP-UX Hewlett-Packard, AIX® de la IBM sunt cei mai buni reprezentanți ai Unixului, care, în plus, au propriile elemente unice și propriile lor soluții fundamentale. De exemplu, Sun Solaris este Unix, dar, în plus, conține o mulțime de instrumente și extensii concepute special bazate pe stații de lucru și servere de producție de soare.

Linux® a fost proiectat în încercarea de a crea o alternativă gratuită la mediile comerciale UNIX. Povestea lui începe în 1991 sau chiar în 1983, când a fost creat proiectul GNU, al cărui scop inițial a fost acela de a oferi o alternativă gratuită UNIX. Linux funcționează pe un număr mult mai mare de platforme, cum ar fi Intel® / AMD X86. Majoritatea sistemelor de operare UNIX sunt capabile să funcționeze numai pe o singură platformă.

Linux și Unix au rădăcini istorice comune, dar există și diferențe grave. O mulțime de instrumente, utilități și aplicații gratuitecare sunt standard pentru Linux, concepute inițial ca alternativă gratuită Programe pentru Unix. Linux oferă adesea suport pentru seturi de opțiuni și aplicații, împrumutând cele mai bune sau cele mai populare funcționalități de la Unix.

Administrator sau dezvoltator care este folosit pentru a lucra cu Linux, sistemul Unix nu poate părea foarte convenabil pentru utilizare. Pe de altă parte, fundamentul sistemului de operare similar Unix (Instrumente, sistemul de fișiereInterfețele API) sunt suficient de standardizate. Cu toate acestea, unele detalii ale sistemelor pot avea diferențe semnificative. În plus, aceste diferențe vor fi luate în considerare în articol.

Diferențe tehnice

Dezvoltatorii de distribuție comercială UNIX se bazează pe o anumită platformă de cerc și server pentru sistemul său de operare. Acestea prezintă bine ce sprijin și optimizare a cărei aplicații trebuie implementate. Producătorii Unix fac tot posibilul pentru a asigura compatibilitatea între diferite versiuni. În plus, au publicat standardele sistemului de operare.

Dezvoltarea GNU / Linux, pe de altă parte, nu este concentrată pe platforme specifice și pe cercul clientului, iar dezvoltatorii GNU / Linux au experiență și vederi diferite. Comunitatea Linux nu există un instrument standard strict sau un set media. Pentru a rezolva această problemă, a fost lansat proiectul de bază de standarde Linux (LSB), dar nu a fost atât de productiv așa cum aș dori.

Această standardizare insuficientă duce la inconsecvențe semnificative în interiorul Linux. Pentru unii dezvoltatori, ocazia de a folosi cele mai bune realizări ale altora sisteme de operare Este totuși un plus, nu este întotdeauna convenabil să copiați elementele Unix în Linux, de exemplu, când numele dispozitivului din Linux pot fi preluate de la AIX, în timp ce instrumentele pentru lucrul cu sistemul de fișiere sunt focalizate pe HP-UX . Acest tip de incompatibilitate se găsește și între diferite distribuții Linux. De exemplu, Gentoo și Redhat Implement diverse metode actualizări.

Pentru comparație, fiecare nouă versiune a sistemului Unix vine cu o descriere bine documentată a noilor caracteristici și modificări ale UNIX. Comenzile, uneltele și alte elemente rareori se schimbă și, de multe ori, aceleași argumente de linie de comandă pentru aplicații rămân neschimbate pe parcursul versiunilor din acest software.. Atunci când apar modificări semnificative în aceste elemente, furnizorii de sisteme UNIX comercial oferă adesea o coajă necesară pentru a asigura compatibilitatea cu versiunile anterioare ale acestui instrument.

O astfel de compatibilitate înseamnă că utilitățile și aplicațiile pot fi utilizate pe versiunile noi ale sistemelor de operare fără a verifica și schimba codul sursă. Prin urmare, tranziția către versiune noua Unix, în care nu există, de obicei, diferențe fundamentale versiune vechePentru utilizatori sau administratori este asociat cu mult mai puțin efort decât tranziția de la o distribuție Linux la alta.

Arhitectura hardware

Cele mai multe versiuni comerciale ale UNIX sunt create pentru un număr mic de arhitecturi hardware. HP-UX funcționează numai pe platformele PA-RISC și Itanium, Solaris - pe Sparc și X86 și AIX este destinat numai procesoarelor de putere.

Datorită acestor restricții, producătorii Unix pot modifica relativ liber codul acestora pentru aceste arhitecturi și pot folosi orice avantaj al arhitecturii sale. Pentru că știu dispozitivele susținute de aceștia, șoferii lor funcționează mai bine și nu trebuie să ia în considerare limitele BIOS caracteristice PC-urilor.

Linux, pe de altă parte, a fost dezvoltat istoric pentru a asigura o compatibilitate maximă. Linux este disponibil pe diverse arhitecturi, iar numărul de dispozitive I / O și alte periferice, care pot fi utilizate de la acest sistem de operare, este aproape nelimitat. Dezvoltatorii nu pot ști ce echipament specific va fi instalat în computer și, adesea, nu poate oferi utilizarea efectivă. Un exemplu este de a gestiona memoria pe Linux. Anterior, Linux a folosit un model de memorie segment, proiectat inițial pentru X86. Acum este adaptat să utilizeze memoria paginii, dar salvează încă câteva cerințe pentru memoria segmentată, ceea ce cauzează probleme dacă arhitectura nu acceptă memoria segmentată. Aceasta nu este o problemă pentru producătorii Unix. Ei știu exact modul în care Unixul lor va funcționa la ce echipament.

Miez

Kernel-ul este inima sistemului de operare. Codul sursă al nucleului distribuției comerciale Unix este proprietatea dezvoltatorilor lor și nu se aplică dincolo de companie. Situația complet opusă cu Linux. Procedurile de compilare și corectare a miezurilor și a driverelor sunt foarte diferite. Pentru Linux și alte sisteme de operare cu deschidere cod sursa Plasturele poate fi eliberat sub formă de codul sursă, iar utilizatorul final poate seta, verifica și chiar modifica. Aceste patch-uri sunt, de obicei, testate nu la fel de atent ca plasturi de la furnizorii de OS comercial UNIX. Din moment ce nu lista plina Aplicații și medii care ar trebui discutate pentru a funcționa corect pe Linux, dezvoltatorii Linux depind de utilizatorii finali și de alți dezvoltatori care vor captura erori.

Furnizorii de distribuție comercială UNIX eliberează kernel numai sub forma unui cod executabil. Unele versiuni sunt monolitice, în timp ce altele vă permit să actualizați numai orice modul de bază specific. Dar, în orice caz, această versiune este furnizată numai sub formă de cod executabil. Dacă aveți nevoie de o actualizare, administratorul trebuie să aștepte până când producătorul va elibera plasturele în cod binarCu toate acestea, poate consola faptul că producătorul va efectua o verificare aprofundată a plasturelui său pentru compatibilitatea înapoi.

Toate versiunile comerciale ale Unixului au evoluat într-o oarecare măsură la nucleul modular. Driverele și caracteristicile individuale de OS sunt disponibile ca componente individuale și pot fi încărcate sau descărcate de la kernel. Dar arhitectura modulară modulară Linux este mult mai flexibilă. Cu toate acestea, flexibilitatea și adaptabilitatea Linux înseamnă o schimbare constantă. Codul sursă Linux se schimbă în mod constant și, de către capriciul dezvoltatorului, API se poate schimba. Când modulul sau driverul este scris pentru versiunea comercială a Unix, acesta va funcționa mult mai mult decât același șofer pentru Linux.

Suport pentru sistemul de fișiere

Unul dintre motivele pentru care Linux a devenit un sistem de operare destul de puternic, compatibilitatea sa largă cu alte sisteme de operare. Una dintre cele mai evidente caracteristici este o abundență de sisteme de fișiere disponibile. Majoritatea versiunilor comerciale Unix suportă două sau trei tipuri de sisteme de fișiere. Linux, totuși, acceptă majoritatea sistemelor de fișiere moderne. Indică ce sisteme de fișiere sunt acceptate de UNIX. Orice dintre aceste sisteme de fișiere poate fi montat pe Linux, deși nu toate aceste sisteme mențin date de citire și scriere completă.

Tabelul 1. Sisteme de fișiere care sunt standard pentru Unix

Cele mai multe versiuni comerciale UNIX suportă sistemele de fișiere de jurnalizare. De exemplu, HP-UX ca sistem de fișiere standard utilizează HFS, dar acceptă și sistemul de fișiere jurnalizate VXFS. Solaris sprijină UFS și ZFS. Un sistem de fișiere de jurnalizare este o componentă importantă a oricărui mediu de server pentru întreprindere. În Linux, suportul pentru sistemele de fișiere de jurnalizare a fost implementat cu întârziere, dar acum există mai multe opțiuni - de la clonele sistemelor de fișiere comerciale (XFS, JFS) la sistemele de fișiere specifice specifice pentru Linux (Ext3, Reiserfs).

Alte caracteristici ale sistemelor de fișiere includ suportul cotelor, lista de control al accesului la fișiere, copierea oglinzii, instantaneele și dimensiunile sistemului. Într-o formă sau alta, ele sunt susținute de sistemele de fișiere Linux. Cele mai multe dintre aceste caracteristici nu sunt standard pentru Linux. Unele caracteristici pot funcționa la același sistem de fișiere, în timp ce altele vor necesita un alt sistem de fișiere. Unele dintre aceste caracteristici nu sunt pur și simplu disponibile pe anumite sisteme de fișiere Linux, în timp ce altele necesită o setare suplimentară a instrumentului, de exemplu, o versiune specifică LVM sau suport pentru matrice (pachet de raid software). Din punct de vedere istoric, acesta are atât de mult că în interfețele software Linux și instrumentele standard sunt realizate cu dificultate, atât de multe sisteme de fișiere implementează diferențiatoarele caracteristici.

Deoarece sistemele comerciale UNIX susțin un număr limitat de sisteme de fișiere, instrumentele și metodele lor de lucru cu acestea sunt mai standardizate. De exemplu, deoarece în IRIX a fost suportat un singur sistem principal de fișiere, a existat o singură modalitate de a seta listele de control al accesului. Este mult mai convenabil pentru utilizatorul final și pentru sprijinul suplimentar al acestui sistem de operare.

Aplicații de accesibilitate

Cele mai multe aplicații de bază sunt aceleași atât pe UNIX, cât și pe Linux. De exemplu, comenzile CP, LS, VI și CC sunt disponibile pe Unix și Linux și sunt foarte asemănătoare, dacă nu sunt complet identice. Versiunile Linux ale acestor instrumente se bazează pe versiunile GNU ale acestor instrumente, în timp ce versiunile acestor instrumente pentru Unix se bazează pe instrumentele tradiționale UNIX. Aceste instrumente pentru Unix au o istorie lungă și rareori s-au schimbat.

Dar acest lucru nu înseamnă că versiunile comerciale ale Unixului nu pot fi folosite cu instrumentele GNU. De fapt, mulți producători de OS de OIX comercial includ multe instrumente GNU în distribuțiile lor sau le oferă ca supliment gratuit. Instrumentele GNU nu sunt doar instrumente standard. Unele dintre aceste utilități gratuite nu au analogi comerciali (Emacs sau Perl). Majoritatea producătorilor prezic aceste programe și sunt fie instalate automat cu sistemul, fie sunt disponibile ca o componentă suplimentară.

Aplicațiile gratuite Open Source sunt aproape întotdeauna încorporate în toate distribuțiile Linux. Există un numar mare de Software-ul gratuit disponibil pentru Linux și multe dintre aceste aplicații au fost portate versiunilor comerciale ale Unix.

Aplicarea codului sursă comercială și / sau închisă (CAD, programe financiare, editor grafic) poate să nu aibă analogi pentru Linux. Deși unii producători produc versiunile aplicațiilor lor pentru Linux, majoritatea producătorilor nu se grăbesc să facă acest lucru, în timp ce popularitatea utilizatorilor Linux nu crește.

Pe de altă parte, versiunile comerciale ale Unixului au istoric sprijinul unui număr mare de aplicații la nivel de întreprindere, cum ar fi Oracle sau SAP. Linux pierde foarte mult din cauza dificultăților de certificare a aplicațiilor mari, în timp ce versiunile comerciale ale Unix nu se schimbă prea mult de la eliberare la eliberare. Linux se poate schimba mult nu numai cu fiecare nouă distribuție, ci uneori în intervalul dintre versiunile aceleiași distribuții. Prin urmare, producătorul de software este foarte greu de înțeles ce fel de mediu va fi folosit aplicația lor.

Administrarea sistemului

Deși unele distribuții Linux sunt furnizate cu un set standard de instrumente pentru gestionarea unui sistem, cum ar fi Yast SuSe, nu există în comun pentru uneltele de instrumente standard Linux. Sunt disponibile fișiere text și instrumente de linie de comandă, dar uneori utilizarea lor poate Fiți incomod. Fiecare versiune comercială Unix are propria interfață de gestionare a sistemului. Cu această interfață, puteți controla elementele de sistem și le puteți schimba. Mai jos este un exemplu al unui manager de administrare a sistemului pentru HP-UX.

Acest Sam conține următoarele module:

  • Utilizatori sau grupuri care trebuie gestionate.
  • Parametrii kernel care pot fi schimbați.
  • Configurarea Rețelei.
  • Setarea și inițializarea discurilor.
  • Configurarea serverului X.

Calitatea acestui pachet de utilități este excelentă, iar acest pachet utility interacționează bine cu fișierele text. Analogul acestui instrument pentru Linux nu există. Chiar și Yast în Suse nu are aceeași funcție.

Un alt aspect din Unix și Linux, care pare să se schimbe aproape cu fiecare versiune a sistemului de operare - localizarea scenariilor de inițializare a sistemului. Din fericire, / sbin / init și / etc / iniTab sunt directoare standard. Dar scenariile de lansare a sistemului sunt în diferite directoare. Afișează locurile în care scenariile de inițializare a sistemului sunt stocate pentru diferite distribuții UNIX și Linux.

Tabelul 2. Locul de amplasare a scenariilor de inițializare a sistemului pentru diferite versiuni ale Unix
HP-UX./ssbin/init.d.
AIX./etc/rc.d/init.d.
Irix./etc/init.d.
Solaris./etc/init.d.
Palarie rosie./etc/rc.d/init.d.
Suse./etc/rc.d/init.d.
Debian./etc/init.d.
Slackware./etc/rc.d.

Datorită numărului mare de distribuții Linux și aproape un număr infinit de aplicații disponibile (luând în considerare faptul că versiunile acestei cereri sunt, de asemenea, multe) pentru acest sistem de operare, gestionarea programelor pe Linux devine o provocare. Alegerea instrumentului corect depinde de distribuția pe care o faceți. Apoi, inconvenientele rezultă din faptul că unele distribuții utilizează formatul fișierului manager de pachete RedHat (RPM), în timp ce programele lor sunt incompatibile. O astfel de separare duce la apariția unui număr mare de opțiuni pentru a lucra cu pachete și nu este întotdeauna clar care sistem este utilizat într-un mediu specific.

Pe de altă parte, distribuțiile comerciale Unix conțin manageri de pachete standard. Chiar și asta există diverse versiuni Aplicații și formate specifice pentru diferite versiuni ale UNIX, Mediul de management al aplicațiilor sunt neschimbate. De exemplu, Solaris utilizează aceleași instrumente de gestionare a pachetelor de aplicații de la înființare. Și, cel mai probabil, mijloacele de identificare, adăugare sau ștergere a pachetelor software în Solaris va fi la fel de neschimbată.

Producătorii de distribuții comerciale UNIX furnizează, de asemenea, hardware pentru a lucra la care se intenționează sistemul de operare, astfel încât să poată implementa orice dispozitive noi în sistemul de operare, ceea ce este mult mai greu de făcut pentru Linux. De exemplu, în versiuni recente Linux a fost încercări de a implementa sprijinul componentelor cu posibilitatea de "înlocuire fierbinte" (cu un succes variabil). Versiunile comerciale ale Unixului au o astfel de posibilitate de mulți ani. De asemenea, în versiunile comerciale ale Unix este mai bună decât în \u200b\u200bLinux, este implementată monitorizarea pentru hardware. Producătorii pot scrie drivere și pot să le implementeze în sistemul de operare, ceea ce va monitoriza starea sistemului, de exemplu, numărul de erori de memorie ECC, parametrii de putere sau orice altă componentă hardware. Suportul pentru acest tip pentru Linux este așteptat numai în viitorul îndepărtat.

Hardware-ul pentru sistemele Unix comerciale are, de asemenea, opțiuni de încărcare mai avansate. Înainte ca sistemul de operare să fie încărcat, există multe posibilități de personalizare a descărcării, verificați "Sănătatea" sistemului sau să configurați parametrii hardware. BIOS-ul calculatorului personal PC are o parte mai mică, dacă are toate aceste opțiuni.

A sustine

Una dintre cele mai semnificative diferențe dintre Linux și Unix este în valoare. Sistemele comerciale UNIX au instalat un preț ridicat pe Unix, deși poate fi utilizat numai cu platformele hardware. Distribuții Linux.Pe de altă parte, este relativ ieftin, dacă nu este gratuit deloc.

Când cumpărați o versiune comercială a Unix, producătorii oferă de obicei suport tehnic. Majoritatea utilizatorilor Linux sunt lipsiți de sprijin pentru producătorul de operare. Ei pot obține doar sprijin e-mailDe la forumuri și de la diferiți utilizatori Linux. Cu toate acestea, aceste grupuri sunt proiectate nu numai pentru utilizatorii Linux. Mulți administratori ai sistemelor de operare comerciale ale familiei Unix participă la aceste grupuri de sprijin deschise pentru a putea oferi asistență și, dacă este necesar, să o utilizeze. Mulți oameni găsesc astfel de grupuri de asistență reciprocă și mai util decât sistemul de asistență oferit de producătorul de operare.

Concluzie

Fundamentele fundamentale ale Unix și Linux sunt foarte asemănătoare. Utilizator sau administrator de sistem Tranziția de la Linux la Unix va adăuga niște inconveniente la muncă, dar, în general, tranziția va fi fără durere. Chiar dacă sistemele de fișiere și kernelul vor fi diferite în ele și pentru dezvoltarea lor va dura ceva timp, instrumentele și API-urile rămân neschimbate. Practic, aceste diferențe nu sunt mai mult decât diferențele dintre versiunile principale ale Unix. Toate ramurile Unix și Linux se dezvoltă treptat și vor diferi ușor unul de celălalt, dar datorită scadenței conceptelor de Unix, bazele sistemului de operare nu se vor schimba foarte mult.

Informații scurte despre dezvoltarea sistemului de operare UNIX

UNIX OS a apărut la sfârșitul anilor '60, ca sistem de operare pentru Mini-Calculator PDP-7. Kenneth Thomson și Dennis Ritchi au acceptat participarea activă la dezvoltare.

Caracteristicile UNIX OS: modul multiplayer, arhitectura noului sistem de fișiere etc.

În 1973, cea mai mare parte a nucleului OS a fost rescrisă în noua limbă C.

Din 1974, Unix a fost distribuit la universitățile din SUA în codurile sursă.

Versiuni Unix.

De la începutul distribuției UNIX, diferite versiuni ale OS au început să apară în universitățile americane.

Pentru a comanda, AT & T în 1982 a combinat mai multe versiuni la una numită varianta OS - System III. În 1983, a fost emisă o versiune comercială - System V. În 1993, AT & T și-a vândut drepturile către compania UNIX Novell, care consorțiu X / Open și Santa Cruz (SCO).

Cealaltă linie de Unix - BSD este dezvoltată la Universitatea din California (Berkeley). Există versiuni gratuite de FreeBSD, OpenBSD.

La familia OSF / 1 Deschideți software-ul. Fundația este IBM, Dec și Hewlett Packard Consorțium OS. Numărul acestei familii include - HP-UX, AIX, DIGITAL UNIX.

Versiuni gratuite ale familiei Unix

Există un număr mare versiuni gratuite Unix.

FreeBSD, Netbsd, OpenBSD - Variantele dezvoltate pe baza sistemului de operare BSD.

Cea mai populară familie de sisteme unix gratuite este un sistem de familie. Linux.. Prima versiune Linux a fost dezvoltată de Linus Torvalds în 1991. În prezent există mai multe opțiuni. Linux: Pălărie roșie, Mandrake, Slackware, Suse, Debian.

Caracteristicile generale ale sistemelor Unix

Diverse opțiuni UNIX au o serie de caracteristici comune:

Procesarea multiprogramului în modul de separare a timpului bazat pe deplasarea multitasking-ului;

Suport pentru modul multiplayer;

Utilizarea memoriei virtuale și a mecanismelor de swap;

Sistem de fișiere ierarhice;

Unificarea operațiunilor I / O bazate pe utilizarea avansată a fișierului concept;

Toleranța sistemului;

Disponibilitatea instrumentelor de interacțiune la rețea.

Avantajele sistemelor Unix

Prin numărul de avantaje ale familiei Unix includ:



Portabilitate;

Implementarea eficientă a multitasking-ului;

Deschidere;

Disponibilitatea și respectarea strictă a standardelor;

Sistem de fișiere unice;

Limba puternică de comandă;

Prezența unui număr semnificativ de produse software;

Implementarea stivei de protocol TCP / IP;

Abilitatea de a lucra ca server sau stație de lucru.

Servere pe bază de Unix

Serverul este un computer care procesează alte computere din rețea și furnizând propriile resurse pentru stocarea, prelucrarea și transmiterea datelor. Serverul UNIX poate efectua următoarele roluri:

Server de fișiere.;

Server web;

Mail Server;

Server de înregistrare la distanță (autentificare);

Servere auxiliare de servicii Web (DNS, DHCP);

Internet de acces la Internet Internet

Managementul calculatorului care rulează Unix

Când lucrați cu un sistem UNIX în modul Server, ca regulă, este utilizat modul acces de la distanță Folosind un program terminal.

Sesiunea de lucru începe cu intrarea numelui de înregistrare și a parolei de acces.

Adesea, pentru a rezolva sarcinile de gestionare a serverului se limitează la modul de operare de comandă. În acest caz, pentru a controla intrarea de comenzi speciale la linia de comandă într-un format special se utilizează. Linia de comandă are o invitație specială, de exemplu:

Vedere generală a echipei:

  1. -Bash-2.05b $ comanda [Opțiuni] [parametri]

De exemplu, un apel de certificat pe sistemul de operare are forma:

  1. -Bash-2.05b $ om [chei] [subiect]
  2. Pentru a apela ajutor pentru a utiliza comanda omului, introduceți
  3. -Bash-2.05b $ om om

Interpretarea liniei de comandă

La introducerea comenzilor, se utilizează următoarele acorduri:

Primul cuvânt B. linie de comanda este numele echipei;

Cuvintele rămase sunt argumente.

Printre argumentele sunt alocate chei (opțiuni) - predefinite pentru fiecare comandă de cuvinte (simboluri) începând cu unul (format scurt) sau perechi de cratime (format lung). De exemplu:

Bash-2.05b $ tar -c -f arch.tar * .c

Bash-2.05b $ gard - -Create - -File \u003d Arch.tar * .c

La specificarea opțiunilor, ele pot fi combinate. De exemplu, următoarele comenzi sunt egale:

Bash-2.05b $ ls -a -l -l

Bash-2.05b $ ls -l -a

Bash-2.05b $ ls -al

Alte argumente indică obiecte pe care se efectuează operații.

Carcasă variabilă

Când lucrați în sistem, există o modalitate de a transfera parametrii la program, cu excepția utilizării tastelor de coajă de comandă - utilizarea variabilelor de mediu. Pentru a specifica variabila de mediu, utilizați comanda SET. Formatul echipei:

Bash-2.05b $ set_name_name \u003d valoare

Ștergerea variabilei de mediu este efectuată de comanda Unset.

Pentru a se referi la valoarea variabilă, denumirea este utilizată $ _name_name, de exemplu, comanda:

Bash-2.05b $ ECHO $ \u200b\u200bCale

Valoarea variabilei calea.

Ministerul Educației și Științei din Rusia

Federaţie

Agenția de Educație Federală

Instituția de învățământ de stat

Educație profesională superioară

Universitatea de Inginerie Radio Engineering Taganrog

Disciplina "Informatică"

"Sistemul de operare Unix"

Efectuat: Orda-Zhigulin D.V., Gr. E-25

Verificat: Vishnevetsky V.Yu.

Taganrog 2006.


Introducere

Ce este Unix 3

Unde să obțineți Unix gratuit 7

Parte principală. (Descriere Unix)

1. Concepte de bază UNIX 8

2. Sistemul de fișiere 9

2.1 Tipuri de fișiere 9

3. Interpretul de comandă 11

4. Sunetul UNIX 12

4.1 Organizarea generală a nucleului tradițional OSIX 13

4.2 Funcții de bază de bază 14

4.3 Principiile interacțiunii cu nucleul 15

4.4 Principii de prelucrare 17

5. Controlul intrării / ieșirii 18

5. 1 principii de tamponare a sistemului I / O 19

5. 2 Apeluri de sistem de introducere / ieșire 21

6. Interfețe și puncte de intrare a șoferului 23

6. 1 Drivere bloc 23

6. 2 șoferi simbolici 24

6. 3 Drivere de streaming 25

7. Comenzi și utilități 25

7. 1 Organizația de comandă în Unix 26

7. 2 I / O Redirecționare și organizare a transportorului 26

7. 3 Comenzi încorporate, bibliotecă și personalizate 26

7. 4 Programare de comandă 27

8. Instrumente de interfață grafică utilizator 27

8.1 Identificatori de utilizator și grupul de utilizatori 30

8.2 Protecția fișierelor 32

8.3 Perspectivă OS, suport de miercuri OS Unix 33

Concluzie

Principalele diferențe de UNIX de la alte OS 36

UNIX 37 Aplicații


Introducere

Ce este Unix.

Termenul Unix și nu este complet echivalent cu IT Unix este utilizat în diferite valori. Să începem cu a doua dintre termenii ca fiind mai simpli. Pe scurt, UNIX (în acest formular) este o marcă înregistrată, aparținea inițial la AT & T Corporation, care a schimbat mulți proprietari pentru viața sa lungă și este acum proprietatea unei organizații numită Grup deschis. Dreptul de a utiliza numele UNIX este realizat de un fel de "verificări de canalizare" - trecerea testelor de respectare a anumitor specificații de sistem de referință (standard unic Unix - că în acest caz pot fi traduse ca singurul standard pe Unix). Această procedură nu este doar complicată, dar, de asemenea, foarte azi, și, prin urmare, au fost doar câteva operațiuni de la cei care sunt acum acordați și sunt toate deținute, adică sunt deținute de unele corporații.

Printre corporațiile, care au luat dreptul la Unix, atunci dezvoltatorii / testerii și sângele (mai precis, dolarul) pot fi numiți următoarele:

Soarele cu soarele ei (mai bine cunoscut în lume sub numele de Solaris);

IBM dezvoltat de sistemul AIX;

Hewlett-Packard - proprietarul sistemului HP-UX;

Operații IRIX - SGI.

În plus, numele UNIX se aplică sistemelor:

True64 Unix, dezvoltat de Dec, cu lichidarea cărora a trecut la Compaq, iar acum, împreună cu acesta din urmă, care a devenit proprietatea aceluiași Hewlett-Packard;

UNIXWARE - PROPRIETATEA SCO (Firmele de îmbinare a produsului Caldera și operațiunea Santa Cruz).

Fiind proprietate, toate aceste sisteme sunt vândute pentru bani considerabili (chiar și americani). Cu toate acestea, acesta nu este principalul obstacol în calea difuzării Legii Unix. Pentru o caracteristică comună este o obligație a anumitor platforme hardware: AIX rulează pe servere și stații de lucru IBM cu procesoare de putere, HP-UX - pe mașinile proprii HP-PA (precizie Arhitectura), IRIX - în stații grafice de la procesoarele SGI care transportă MIPS, True64 Unix - este conceput pentru procesoare alfa (din păcate, în Bose au fost deja bine). Numai Unixware se concentrează pe PC-ul "Democrat", iar Solaris există În opțiunile pentru două arhitecturi - proprii, Sparc, și tot același PC. Ce, totuși, nu a contribuit în mare măsură la prevalența lor - datorită sprijinului relativ slab pentru noul periferie PC.

Astfel, Unix este un concept în primul rând legal. Dar pentru termenul Unix, interpretarea tehnologică a fost înrădăcinată. Astfel, în utilizarea industriei IT, ei numesc întreaga familie de sisteme de operare sau originare din compania "Pristine" UNIX AT & T sau reproducându-și funcțiile "de la foaia pură", inclusiv OS gratuit, cum ar fi Linux, FreeBSD și Alte BSD-uri, fără verificare pentru conformitate, standardul unic Unix nu a fost niciodată supus. Și, prin urmare, ele sunt adesea numite UNIX-cum ar fi.

Termenul "sisteme compatibile cu POSIX", care combină familia de sistem, care corespunde setului de standarde, este de asemenea răspândită. Standardele POSIX (interfața sistemului de operare portabile bazate pe UNIX) au fost elaborate pe baza practicii adoptate în sistemele Unix și, prin urmare, acestea din urmă sunt prin definirea compatibilă a POSIX. Cu toate acestea, acest lucru nu este destul de sinonime: Standardele POSIX Pliminitate, SNIX asociat cu Unix solicită doar indirect (QNX, silabă) sau fără legătură (până la Windows NT / 2000 / XP).

Pentru a clarifica problema relațiilor Unix, UNIX și POSIX, va trebui să mergeți adânc în istorie. De fapt, istoria acestei chestiuni este discutată în detaliu în capitolul relevant al cărții "Liber Unix: Linux, FreeBSD și alții" (în viitorul apropiat se duce la editura BHV-Petersburg) și în articole despre istoria Sisteme Linux și BSD.

Sistemul de operare UNIX (mai precis, prima sa opțiune) a fost dezvoltat de angajați ai Bell Labs (Diviziuni AT & T) în 1969-1971. Primii autori - Ken Thompson și Dennis Richie, au făcut-o exclusiv în scopurile lor, în special, pentru a avea distracție să aibă un joc preferat StarTravel. Și pentru o serie de motive legale, compania însăși nu a putut să o folosească ca produs comercial. Cu toate acestea, aplicarea practică a Unix a fost destul de rapidă. În primul rând, a fost folosit în Bell Labs pentru a pregăti tot felul de documentație tehnică (inclusiv brevet). Și în al doilea rând, sistemul de comunicații UUCP sa bazat pe Unix (Unix către Unix Copy Program - Copiere de la Unix în Unix).

Un alt domeniu al aplicației UNIX în anii '70 - începutul anilor 80 ai secolului trecut a fost complet neobișnuit. Anume, în textele sursă, se răspândește între instituțiile științifice care au lucrat în domeniul științei informatice. Scopul unei astfel de distribuții (nu a fost destul de liber în înțelegerea actuală, dar, de fapt, sa dovedit a fi foarte liberală), au fost: educația și cercetarea în zona de cunoaștere de mai sus.

Sistemul BSD UNIX creat la Universitatea din Berkeley, California a primit cea mai mare faimă. Care, care eliberează treptat de codul de proprietate al Pristine Unix, în cele din urmă, după peripetiile dramatice (în detaliu descris aici), a dat naștere la sistemele BSD gratuite moderne - FreeBSD, Netbsd și altele.

Unul dintre cele mai importante rezultate ale lucrării hackerilor universitari a fost (1983) Introducere în sprijinul UNIX pentru protocolul TCP / IP, bazat pe rețeaua ARPANET (și care a devenit baza bazelor de internet modern). A devenit o calmare la dominația Unix în toate domeniile asociate cu rețeaua mondială. Și sa dovedit a fi următoarele aplicație practică Această familie de operațiuni - până la momentul Unix Unix nu mai trebuia să vorbească. Pentru că sa spus mai devreme, cele două ramuri au fost presupuse - ceea ce se întâmpla de la Pristine Unix (în timp a primit sistemul de nume V) și sistemul de origine Berklian. Pe de altă parte, sistemul V sa bazat pe acele Diverse Proprietate Unix "OV, care, de fapt, a avut un drept legal de a pretinde acest nume.

Ultima circumstanță este ramificarea sistemului de operare unică în mai multe rânduri, pierzând treptat compatibilitatea, - în contradicție cu unul dintre pietrele de temelie ale ideologiei Unix: portabilitatea sistemului între diferite platforme și aplicațiile sale de la un sistem Unix la altul. Ce a cauzat activitățile diferitelor tipuri de organizații de standardizare, care s-au încheiat în cele din urmă, creând un set de standarde POSIX, care a fost anterior declarat.

A fost pe standardele POSIX pe care Linus Torvalds sa bazat, creând "de la zero" (care este, fără a utiliza codul existent anterior) sistemul său de operare - Linux. Și aceasta, a stăpânit rapid și cu succes aplicațiile tradiționale ale sistemelor Unix (Dezvoltare de Software, Comunicare, Internet), au fost deschise în timp pentru ele și platforme cu scop general personalizat nou. Așa cum a oferit popularitatea în popor - popularitate superioară tuturor celorlalte sisteme UNIX, împreună, atât proprietate, cât și celor liberi.

Apoi vom vorbi despre lucrul în sistemele Unix în cel mai larg sens al cuvântului, excluzând orice fel de branduri și alte probleme juridice. Deși principalele exemple referitoare la tehnicile de lucru vor fi luate din domeniul implementărilor lor gratuite - Linux, într-o măsură mai mică, FreeBSD și chiar în mai puțin - din alte sisteme BSD.

Unde să obțineți un Unix gratuit?

Baza FreeBSD - www.freebsd.org;

Puteți contacta la www.sco.com


Parte principală. (Descriere Unix)

1. Concepte de bază UNIX

Unix se bazează pe două concepte de bază: "Proces" și "Fișier". Procesele sunt partea dinamică a sistemului, acestea sunt subvenții; Și fișierele sunt statice, acestea sunt obiecte de procese. Aproape întreaga interfață a interacțiunii proceselor cu kernelul și unul cu celălalt arată ca fișierele de înregistrare / citire. Deși este necesar să se adauge lucruri cum ar fi semnale, memorie partajată și semaphores.

Procesele pot fi împărțite foarte convențional în două tipuri - sarcini și demoni. Sarcina este un proces care își îndeplinește activitatea, încercând să o terminați rapid și să se încheie. Demonul așteaptă evenimentele pe care trebuie să le proceseze, procesează evenimentele care au avut loc și așteaptă din nou; Este finalizată ca o regulă prin ordin al unui alt proces, cel mai adesea utilizatorul îl ucide, oferind echipei "kill_number_process". În acest sens, se pare că prelucrarea sarcinilor interactive Intrarea utilizatorului este mai degrabă similară cu demonul decât sarcina.

2. Sistem de fișiere

În vechiul Unix "ah, 14 litere au fost atribuite numelui, în noua restricție a fost eliminată. În director, în plus față de numele fișierului, este identificatorul său inode - un număr întreg care definește numărul blocului în care fișierul Atributele sunt înregistrate. Printre acestea: numărul de utilizatori - gazdă de fișiere; grupuri de numere; numărul de referințe la dosar (cm. Dealer) date și timp de creație, ultima modificare și ultimul fișier; Atribute de acces. Atributele de acces conțin un tip de fișier ( a se vedea dealer), atribute pentru schimbarea drepturilor la pornire (a se vedea) și accesul la drepturi la acesta pentru proprietar, jurnal de un jurnal și alte citire, scriere și execuție. Dreptul de a șterge fișierul este determinat de dreptul de a înregistra în directorul de acoperire .

Fiecare fișier (dar nu direct) poate fi cunoscut sub mai multe nume, dar în mod necesar situată pe aceeași secțiune. Toate referințele la fișier sunt egale; Fișierul este șters când ultimul link către fișier este șters. Dacă fișierul este deschis (pentru citire și / sau înregistrare), numărul de referințe la acesta mărește altul; Atât de multe programe care deschid un fișier temporar șterge imediat acest lucru, astfel încât atunci când un sistem de operare închide fișierele deschise procedeului, acest fișier temporar a fost eliminat de sistemul de operare.

Există o altă caracteristică interesantă a sistemului de fișiere: Dacă după crearea unui fișier, intrarea în el nu a fost la rând, dar cu intervale mari, apoi pentru aceste intervale, spațiul pe disc nu este alocat. Astfel, volumul total al fișierelor din secțiune poate fi mai mare decât volumul partiției și când fișierul este șters, mai puțin spațiu este eliberat decât dimensiunea sa.

2.1 Tipuri de fișiere

Fișierele sunt următoarele tipuri:

fișier de acces direct regulat;

(Fișier care conține alte nume și identificatori de fișiere);

link-ul simbolului (șir cu un alt nume de fișier);

bloc bloc (disc sau bandă magnetică);

dispozitiv serial (terminale, porturi seriale și paralele; discurile și benzile magnetice au, de asemenea, o interfață serială a dispozitivului)

canalul de curse.

Fișierele speciale concepute pentru a lucra cu dispozitivele sunt de obicei concentrate în directorul "/ dev". Iată câteva dintre ele (în nominalizarea FreeBSD):

tTY * - Terminale, inclusiv: TTYV - consola virtuală;

tTYD - terminal de dialin (de obicei port serial);

cuaa - Linia de dialout

ttyp - rețea pseudo-terminal;

tTY - terminal cu care este asociată sarcina;

wD * - hard disk-uri și subsecțiunile lor, inclusiv: Hard disk WD;

wD - partiția acestui disc (denumită în continuare "felie");

wDS - partiție;

fD - floppy;

rWD *, RFD * - la fel ca WD * și FD *, dar cu acces consecvent;

Uneori este necesar ca programul care rulează de către utilizator nu are dreptul să-și conducă utilizatorul, iar altele. În acest caz, atributul de înlocuire este setat la drepturile utilizatorului - gazda programului. (De exemplu, voi da un program care citește fișierul cu întrebări și răspunsuri și pe baza testelor de citire care au lansat acest program de student. Programul trebuie să aibă dreptul de a citi dosarul cu răspunsurile, iar elevul o execută nu este.) Deci, de exemplu, programul passwd funcționează, cu asistarea pe care utilizatorul le poate schimba parola. Utilizatorul poate rula programul passwd, poate efectua modificări în baza de date a sistemului - și utilizatorul nu poate.

Spre deosebire de DOS, în care numele complet al fișierului arată ca "Disc: Pavimia", și RISC-OS, în care arată "-File_System-disc: $." (Ce, în general, are avantajele sale), Unix utilizează notația transparentă în formularul "/ calea / numele". Rădăcina este numărată din secțiunea de la care a fost încărcat kernelul Unix. Dacă aveți nevoie să utilizați o altă secțiune (și pe boot Section. De regulă, este doar cea mai necesară descărcare), utilizați directorul "MOUNT / DEV / FILE_ SELECTION Server". În același timp, fișierele și subdirectoarele situate anterior în acest director sunt inaccesibile până când partiția nu este obligată (în mod natural, toți oamenii normali sunt utilizați pentru a monta directoare goale). Montarea și demontarea are dreptul doar un supraveghetor.

La pornire, fiecare proces poate calcula că trei fișiere sunt deja deschise pentru acesta, care este cunoscut pentru aceasta ca intrare standard stdin pentru un descriptor 0; Ieșire standard stdout pe un descriptor 1; și ieșire standard STDERR pe descriptor 2. La înregistrarea în sistem, atunci când utilizatorul intră în numele și parola, iar shell-ul începe, toate cele trei sunt direcționate către / dev / tty; Ulterior, oricare dintre ele poate fi redirecționat în orice fișier.

3. Interpretare de comandă

În Unix, există aproape întotdeauna doi interpreți de comandă - SH (Shell) și CSH (CSH (CH coajă). Pe lângă ei, există bash (Bourne), KSH (KORN) și alții. Fără a intra în detalii, voi da principii generale:

Toate comenzile altele decât schimbarea directorului curent, setarea variabilelor de mediu (mediul) și operatorii de programare structurală - programe externe. Aceste programe sunt situate de obicei în directoarele / bin și / usr / bin. Programe de administrare a sistemului - în directorul / Sbin și / USR / SBIN.

Comandamentul constă în numele programului și argumentele. Argumentele sunt separate de numele echipei și unul de celălalt cu un gol și tabulare. Unele mixere speciale sunt interpretate de cochilia "Ohm. Specialsimolii sunt" "` `$ ^ *? | & (Ce altceva?).

Într-o linie de comandă, puteți da mai multe comenzi. Comenzile pot fi împărțite; (Execuția de comandă secvențială), & (execuția asincronă simultană a comenzilor), (Execuția sincronă, ieșirea standard stdout a primei comenzi va fi depusă pentru intrarea standard STDIN).

În plus, puteți efectua o intrare standard din fișier, pornind de pe fișier ca unul dintre argumente (fișierul va fi resetat) sau "\u003e\u003e fișier" (înregistrarea se va face la sfârșitul fișierului).

Dacă aveți nevoie să obțineți informații despre orice comandă, lăsați comanda "Man_name". Acesta va fi emis prin programul "mai mult" la ecran - a se vedea cum este gestionat pe Unix "de către omul mai mult".

4. Core OS Unix

Ca și în orice alt sistem de operare multiplayer, oferind protecția utilizatorilor unul de celălalt și protecția datelor de sistem de la orice utilizator neprezentat, există un kernel protejat în Unix, care gestionează resursele de calculator și oferă utilizatorilor un set de servicii de bază.

Comoditatea și eficacitatea opțiunilor moderne pentru Unix nu înseamnă că întregul sistem, inclusiv kernelul, este proiectat și structurat în cel mai bun mod posibil. UNIX OS sa dezvoltat de-a lungul anilor (acesta este primul sistem de operare din istorie, care continuă să câștige popularitate într-o astfel de vârstă matură - mai mult de 25 de ani). Bineînțeles, capabilitățile sistemului au crescut și, după cum se întâmplă adesea în sistemele mari, îmbunătățirile de înaltă calitate ale structurilor OS UNIX nu au dormit pentru creșterea capacităților sale.

Ca rezultat, kernelul celor mai moderne opțiuni comerciale pentru Unix nu este un monolit foarte bine structurat de dimensiuni mari. Din acest motiv, programarea la Kernelul UNIX OS continuă să fie artă (cu excepția cazului în care evacuarea și tehnologia de înțeles pentru dezvoltarea driverelor de dispozitive externe). Această tehnologie insuficientă a organizării nucleului UNIX OS nu satisface multe. Prin urmare, dorința de a reproduce pe deplin mediul UNIX OS cu o organizație de sistem complet diferită.

Datorită celei mai mari prevalențe, sistemul UNIX System V este adesea discutat (poate fi considerat tradițional).

4.1 Organizarea generală a OS Tradițional OS Unix

Una dintre principalele realizări ale sistemului de operare UNIX este că sistemul are o caracteristică a mobilității ridicate. Semnificația acestei calități este că întregul sistem de operare, inclusiv kernelul său, este relativ pur și simplu transferat la diferite platforme hardware. Toate părțile sistemului, care nu numărăm nucleul, sunt complet independente de mașini. Aceste componente sunt scrise cu ușurință în limba SI și pentru transferul lor la o nouă platformă (cel puțin în clasa computerelor pe 32 de biți), recompilarea textelor sursă în codurile computerului țintă este necesară.

Desigur, cele mai mari probleme sunt asociate cu un nucleu de sistem, care ascunde complet specificul computerului utilizat, dar în sine depinde de această specificitate. Ca urmare a separării atente a componentelor independente de mașini și independente ale kernelului (aparent, din punct de vedere al dezvoltatorilor sistemelor de operare, aceasta constă în cea mai mare realizare a dezvoltatorilor sistemului nuclear tradițional Unix) gestionat la Asigurați-vă că partea principală a nucleului nu depinde de caracteristicile arhitecturale ale platformei țintă, este scris în întregime în limba SI și pentru transfer la o nouă platformă trebuie doar să recomande recomandări.

Cu toate acestea, o parte relativ mică a nucleului este dependentă de mașină și scrisă pe un amestec de SI și limba de asamblare a procesorului țintă. La transferul sistemului la o nouă platformă, rescrierea acestei părți a kernelului este necesară utilizând limba de asamblare și luând în considerare caracteristicile specifice ale echipamentului țintă. Părțile dependente de mașină ale nucleului sunt bine izolate din partea principală independentă de mașini și, cu o bună înțelegere a scopului fiecărei componente dependente de mașină, rescrierea părții dependente de mașină este în principal sarcină tehnică (deși necesită ridicată Calificări de programare).

Partea dependentă de mașină a miezului tradițional UNIX OS include următoarele componente:

promovarea și inițializarea sistemului la un nivel scăzut (până acum depinde de caracteristicile echipamentului);

prelucrarea primară a întreruperilor interne și externe;

gestionarea memoriei (în partea care se referă la caracteristicile suportului hardware pentru memoria virtuală);

comutați contextul proceselor dintre modurile utilizator și kernel;

caracteristici corelate ale platformei țintă a unei părți a driverelor de dispozitiv.

4.2 Funcții de bază de bază

Principalele funcții ale kernelului UNIX OS sunt luate după cum urmează:

(a) Inițializarea sistemului este funcția de pornire și promovare. Miezul sistemului furnizează instrumentul de promovare (bootstrap), care oferă kernel-ul complet pentru a încărca computerul și pornește kernelul.

(b) procesul de procesare și fir - funcția de creare, finalizarea și urmărirea proceselor și firelor existente ("procese" efectuate pe memoria virtuală generală). Deoarece UNIX este un sistem de operare multiprocession, kernelul asigură separarea între procesele de timp a procesorului de funcționare (sau procesoarele în sistemele multiprocesoare) și alte resurse de calculator pentru a crea o senzație externă că procesele sunt efectiv efectuate în paralel.

(c) Gestionarea memoriei este o funcție de afișare a memoriei virtuale aproape nelimitate a proceselor în memoria fizică a computerului, care are dimensiuni limitate. Componenta corespunzătoare a kernelului oferă utilizarea separată a acelorași zone memorie cu acces aleator procese multiple folosind memoria externă.

(d) Gestionarea fișierelor - O funcție care implementează abstractizarea sistemului de fișiere este ierarhia directoarelor și a fișierelor. Sistemele de fișiere UNIX acceptă mai multe tipuri de fișiere. Unele fișiere pot conține date în format ASCII, altele vor corespunde dispozitivelor externe. Sistemul de fișiere stochează fișierele obiectului executate fișiere etc. Fișierele sunt stocate de obicei pe dispozitive de memorie externă; Accesul la ele este furnizat prin mijloacele kernel-ului. În lumea Unix, există mai multe tipuri de organizații de sisteme de fișiere. Opțiunile moderne pentru Unix suportă simultan majoritatea sistemelor de fișiere.

(e) instrumente de comunicare - o funcție care oferă schimbul de date între procesele care rulează într-un singur computer (IPC - comunicații interplicate) între procesele care rulează în noduri diferite ale rețelei de date locale sau globale, precum și între procese și drivere de externe dispozitive.

(f) Interfața de programare este o funcție care oferă acces la capabilitățile kernelului prin procese de utilizator pe baza mecanismului de apeluri de sistem, concepute ca o bibliotecă de funcții.

4.3 Principiile interacțiunii cu kernelul

Un anumit mecanism este susținut în orice sistem de operare care permite programelor de utilizator să se aplice pentru serviciile kernel-ului OS. În sistemele de operare ale celei mai renumite mașini de calcul sovietice BESM-6, mijloacele adecvate de comunicare cu nucleul au fost numite extracte, în sistemele de operare IBM au fost numite macro-uri sistemice etc. În sistemul de operare UNIX, se numesc astfel de fonduri provocări ale sistemului.

Numele nu modifică semnificația că "comenzile speciale" ale procesorului sunt utilizate pentru a apela la funcțiile kernel-ului OS, atunci când efectuează un tip special de întrerupere internă a procesorului, care o traduce în modul kernel (în majoritatea sistemelor moderne de operare modernă Acest tip de întreruperi se numește capcana - capcana). Când procesează astfel de întreruperi (decriptare), kernelul OS recunoaște că, de fapt, întreruperea este o cerere către kernel-ul din partea programului de utilizator pentru a efectua anumite acțiuni, selectează parametrii de manipulare și procesează, după care efectuează "întoarcerea" Din întreruperea ", reînnoirea executării normale a programului de utilizator.

Este clar că mecanismele specifice de excitație a întreruperilor interne la inițiativa programului de utilizator diferă în diferite arhitecturi hardware. Deoarece Unix se străduiește să ofere un mediu în care programele personalizate ar putea fi complet mobile, un nivel suplimentar care ascunde caracteristicile unui anumit mecanism pentru întreruperi interne interesante. Acest mecanism este asigurat de așa-numitul bibliotecă de apeluri de sistem.

Pentru utilizator, biblioteca de apelare a sistemului este o bibliotecă convențională în avans. funcții realizate Sisteme de programare SI. La programarea în limba SI, utilizarea oricărei funcții din biblioteca de apeluri de sistem nu este diferită de utilizarea oricărei funcții SI propria sau bibliotecă. Cu toate acestea, în interiorul oricărei funcții a unei biblioteci specifice de apel de sistem conține codul care, în general, specifică acestei platforme hardware.

4.4 Principiile de prelucrare a întreruperii

Desigur, sistemul de operare utilizat în sistemele de operare, mecanismul de procesare a întreruperilor interne și externe depinde în principal de faptul că suportul hardware pentru prelucrarea întreruperilor este furnizat de o platformă hardware specifică. Din fericire, până în prezent (și de mult timp), principalii producători de computere de facto au ajuns la un acord privind mecanismele de întrerupere de bază.

Dacă nu foarte exact și în mod specific, esența mecanismului adoptat astăzi este că fiecare posibilă întrerupere a procesorului (indiferent dacă întreruperea internă sau externă) corespunde unei anumite adrese fixe a RAM-urilor fizice. În momentul în care procesorul este permis să întrerupă din cauza existenței unei aplicații interne sau externe de întrerupere, există o transmitere hardware a controlului la celula RAM fizică cu adresa corespunzătoare - de obicei adresa acestei celule se numește " Întreruperea vectorului "(de regulă, aplicațiile pentru o întrerupere internă, aplicațiile care vin direct din procesor sunt îndeplinite imediat).

Activitatea sistemului de operare trebuie plasată în ratele corespunzătoare ale codului software RAM care asigură prelucrarea inițială a întreruperii și inițierii procesării complete.

Practic, UNIX OS aderă la o abordare generală. În vectorul de întrerupere corespunzător întreruperii externe, adică. Întrerupeți de la un anumit dispozitiv extern, conține comenzi care setă nivelul procesorului (nivelul de execuție determină procesorul de întreruperi externe trebuie să răspundă imediat) și să efectueze tranziția la programul complet de procesare a întreruperii în driverul de dispozitiv corespunzător. Pentru întreruperea internă (de exemplu, întrerupeți inițiativa programului de utilizator în absența unei pagini virtuale în memoria principală, când apare o situație excepțională în programul de utilizator etc.) sau întrerupe din cronometrul din Interrupt vector, conține o tranziție la sistemul adecvat de nucleu UNIX OS.

5. Gestionarea intrărilor / ieșirii

În mod tradițional, UNIX OS a subliniat trei tipuri de organizații I / O și, în consecință, trei tipuri de șoferi. Intrarea / ieșirea blocului este concepută în principal pentru a lucra cu directoare și fișiere obișnuite de sistem care au la nivelul de bază structura blocului. La nivel de utilizator, acum este posibil să lucrăm cu fișiere, afișându-le direct în segmentele memoriei virtuale. Această caracteristică este considerată ca nivelul superior bloc de intrare / ieșire. La nivelul inferior, intrarea / ieșirea blocului este menținută de driverele blocului. Blocați intrarea / ieșirea, în plus, susținută de tamponarea sistemului.

Intrarea / ieșirea de caractere este pentru schimburile directe (fără tamponare) între spațiul de adrese al utilizatorului și dispozitivul corespunzător. Comună pentru toți driverele de susținere a kernel-ului simbolic este de a asigura funcțiile de transfer de date între spațiile de adresă utilizator și nucleare.

În cele din urmă, intrarea / ieșirea de streaming este similară cu introducerea / ieșirea caracterului, dar datorită disponibilității posibilității de includere în fluxul de module de prelucrare intermediare are o flexibilitate semnificativ mai mare.

5. 1 Principii de tamponizare a sistemului I / O

Modul tradițional de a reduce costurile generale la efectuarea schimburilor cu dispozitivele de memorie externe având o structură bloc este o tampon de intrare / ieșire bloc. Aceasta înseamnă că orice unitate externă a dispozitivului de memorie este citită în primul rând în unele tampon principal de memorie, numită UNIX OS sistem de numerar.Și deja de acolo toate sau parțial (în funcție de tipul de schimb) este copiat în spațiul utilizator adecvat.

Principiile organizării mecanismului tradițional de tamponare este, în primul rând, faptul că o copie a conținutului blocului este deținută în tamponul de sistem până când este necesar să se înlocuiască din cauza lipsei de tampoane (se utilizează o variație a algoritmului LRU să organizeze o politică de substituție. În al doilea rând, atunci când înregistrați orice bloc de memorie externă, se efectuează numai o actualizare (sau o formare și umplere) a tamponului cache. Schimbul real cu dispozitivul se efectuează fie atunci când împingă tamponul datorită înlocuirii conținutului său, fie la efectuarea unui apel de sistem de sincronizare specială (sau fsync), susținut în mod specific pentru împingerea violentă a memoriei externe a tampoanelor cache actualizate.

Această schemă de tamponare tradițională inclusă într-o contradicție dezvoltată în versiunile moderne ale uneltelor de gestionare a memoriei virtuale UNIX și, în special cu mecanismul de afișare din segmentele de memorie virtuală. Prin urmare, a apărut sistemul V System V 4 noua schemă tamponarea în timp ce este utilizată în paralel cu vechea schemă.

Esența noii scheme este că la nivelul kernelului, mecanismul de afișare din segmentele de memorie virtuale este de fapt redat. În primul rând, ne amintim că kernelul Unix funcționează cu adevărat în propria memorie virtuală. Această memorie are o structură mai complexă, dar fundamental aceeași ca memoria virtuală a utilizatorului. Cu alte cuvinte, memoria virtuală a kernelului este o pagină de segment și, împreună cu memoria virtuală a proceselor de utilizatori, este susținută de subsistemul general al gestionării memoriei virtuale. Din aceasta rezultă, în al doilea rând, că aproape orice funcție oferită de kernel pentru utilizatori poate fi prevăzută cu o singură componentă a kernel-ului pentru alte componente. În special, acest lucru se aplică și posibilităților de afișare a fișierelor în segmentele de memorie virtuală.

Noua schemă de tamponare din sistemul nuclear al UNIX se bazează în principal pe faptul că pentru organizarea tamponării, nu puteți face aproape nimic special. Când unul dintre procesele utilizatorului deschide fișierul care nu se deschide până în acest moment, kernel-ul formează un segment nou și conectează fișierul la acest segment. După aceasta (indiferent dacă procesul de utilizator va funcționa cu fișierul în modul tradițional, utilizând apelurile de citire și scriere sau conectați fișierul la segmentul memoriei virtuale) la nivelul kernelului, lucrarea se va face cu nuclearul segmentul la care fișierul este conectat la kernelul de nivel. Ideea principală a noii abordări este că diferența este eliminată între gestionarea memoriei virtuale și tamponarea la nivel de sistem (ar fi fost făcută cu mult timp în urmă, deoarece a fost evident că tamponarea principală în sistemul de operare ar trebui să fie produce o componentă de gestionare a memoriei virtuale).

De ce nu pot fi abandonate din vechiul mecanism de tamponare? Lucrul este că noua schemă presupune prezența unor adrese continue în interiorul obiectului de memorie externă (trebuie să existe un izomorfism între obiectele afișate și afișate). Cu toate acestea, atunci când organizați sistemele de fișiere UNIX, este destul de dificil să distribuiți memoria externă, care este în special legată de I-noduri. Prin urmare, unele dintre blocurile de memorie externe trebuie să fie considerate izolate și se dovedește a fi mai profitabile pentru a utiliza vechea schemă de tamponare (deși, eventual, în versiunile UNIX de mâine și va fi capabil să treacă complet la o nouă schemă unificată) .

5. 2 Apeluri de sistem de introducere / ieșire

Pentru acces (adică, pentru a obține implementarea ulterioară a operațiunilor I / O) în fișierul de orice fel (inclusiv fișiere speciale), procesul de utilizator trebuie să efectueze o conexiune prealabilă la fișier utilizând unul dintre apelurile sistemului deschis, creat, Dup sau țeavă.

Forța de apel al sistemului Open (nume, mod) Următorul:

consistența parametrilor de intrare este analizată (în principal referitoare la steagurile modului de acces al fișierelor);

există un spațiu pentru descriptorul de fișiere în zona de sistem a procesului (regiunea U);

În regiunea de sistem, există un spațiu existent pentru plasarea descriptorului de sistem al fișierului (structuri de fișiere);

o căutare în arhiva sistemului de fișiere a unui obiect cu numele "PATHNAME" și este format sau detectat de descriptorul fișierului de nivel al sistemului de fișiere (VNODE în Termenii Sistemului Unix V 4);

vNODE este configurat cu un fișier de fișier format anterior.

Deschiderea și crearea apelurilor de sistem (aproape) sunt echivalente funcțional. Orice fișier existent poate fi deschis utilizând apelul Sistem de creat și orice fișier nou poate fi creat utilizând apelul deschis al sistemului. Cu toate acestea, este important să subliniem că, în cazul utilizării sale naturale (pentru a crea un fișier), acest apel de sistem creează un nou element al directorului corespunzător (în funcție de valoarea pretinsului specificat), și creează și în mod corespunzător inițializează un nou i -nodul.

În cele din urmă, apelul de sistem DUP (duplicat - copie) duce la formarea unui nou descriptor deja deschide fișierul. Acest apel specific al sistemului UNIX este exclusiv în scopul reducerilor I / O). Execuția sa este că un nou descriptor de fișiere deschise care conține un descriptor de fișiere nou format, dar care se referă la structura deja existentă a fișierului și care conține aceleași semne și steaguri care corespund aceluiași fișier de eșantion deschis.

Alte provocări importante ale sistemului sunt citirea și scrierea apelurilor sistemului. Apelul de sistem de citire se efectuează după cum urmează:

Într-o masă de fișiere la nivel de sistem este un descriptor dosar specificat.și a determinat dacă recursul este legal acest proces la acest fișier în modul specificat;

pe un anumit timp (scurt), blocarea sincronizării pe VNODE a acestui fișier (conținutul descriptorului nu trebuie să se modifice în momentele critice ale operațiunii de citire);

citirea reală se efectuează utilizând un mecanism vechi sau nou de tamponare, după care datele sunt copiate pentru a deveni disponibile în spațiul de adrese al utilizatorului.

Funcționarea de înregistrare este efectuată în același mod, dar modifică conținutul tamponului de buffer.

Apelul apropiat al sistemului conduce la faptul că șoferul nu reușește cu procesul de utilizator corespunzător și (în cazul ultimei timp de închidere) stabilește "driverul este liber".

În cele din urmă, pentru că fișierele speciale sunt susținute de un alt sistem "special" apel IOCTL. Aceasta este singura provocare a sistemului care este furnizată pentru fișiere speciale și nu este furnizată pentru celelalte soiuri de fișiere. De fapt, apelul IOCTL vă permite să extindeți la întâmplare interfața oricărui driver. Parametrii IOCTL includ un cod de operare și un indicator pentru o anumită zonă de memorie a procesului. Întreaga interpretare a codului de funcționare și a parametrilor specifici corespunzători este efectuată de șofer.

Firește, deoarece șoferii sunt destinate în principal gestionarea dispozitivelor externe, codul programului șoferului trebuie să conțină mijloace adecvate pentru procesarea întreruperilor de pe dispozitiv. Apelarea unui program individual de manipulare a întreruperii în driver vine de la kernelul sistemului de operare. În mod similar, intrarea "timeout" poate fi anunțată în driver, la care este tras kernel-ul când driverul timp ordonat (un astfel de control temporar este necesar atunci când controlați dispozitivele prea inteligente).

Diagrama generală a organizației șoferului este prezentată în Figura 3.5. După cum arată acest desen, din punctul de vedere al interfețelor și al controalelor la nivel de sistem, există două tipuri de drivere - simbolice și blocuri. Din punct de vedere al organizației interne, un alt tip de drivere sunt alocate - drivere streaming (stream). Cu toate acestea, prin interfața sa externă, șoferii de flux nu diferă de simbolic.

6. Interfețe și puncte de intrare ale șoferului

6. 1 Drivere bloc

Driverele blocurilor sunt destinate să mențină dispozitive externe cu structura blocului ( discuții magnetice, Casete etc.) și diferă de alte lucruri pe care le sunt dezvoltate și executate folosind tamponarea de sistem. Cu alte cuvinte, astfel de șoferi lucrează întotdeauna printr-o piscină tampon de sistem. După cum se poate observa în Figura 3.5, orice apel la șoferul bloc pentru citire sau scriere trece întotdeauna prin pre-procesare, care este o încercare de a găsi o copie a blocului dorit în piscina tampon.

În cazul în care o copie a blocului necesar nu este în piscina tampon sau dacă din orice motiv trebuie să înlocuiți conținutul unui tampon actualizat, miezul UNIX OS se referă la procedura de strategie a driverului bloc corespunzător. Strategia oferă o interfață standard între miez și driver. Folosind subrutine de bibliotecă pentru scrisorii de scriere, procedura de strategie poate organiza cozi de schimb cu un dispozitiv, de exemplu, pentru a optimiza mișcarea capetelor magnetice pe disc. Toate schimburile efectuate de blocul de bloc sunt efectuate cu memorie tampon. Recensământul informațiilor necesare în memoria procesului de utilizator relevant este realizat de programele de kernel, managerii de gestionare a tamponului

6. 2 șoferi simbolici

Driverele simbolice sunt concepute în principal pentru a menține dispozitivele, schimburile cu care sunt efectuate predominante sau rânduri de caractere alternante. Un exemplu tipic al unui dispozitiv de caractere este o imprimantă simplă care necesită un caracter pentru un schimb.

Driverele simbolice nu utilizează tamponarea sistemului. Acestea copiază direct datele din memoria procesului de utilizare atunci când efectuați operații de înregistrare sau în memoria procesului de utilizare atunci când efectuați operații de citire utilizând propriul tampon.

Trebuie remarcat faptul că este posibilă furnizarea unei interfețe de caractere pentru un dispozitiv bloc. În acest caz, șoferul bloc utilizează caracteristicile suplimentare ale procedurii de strategie care vă permite să schimbați fără utilizarea tamponării de sistem. Pentru un șofer cu un bloc și interfețe simbolice simultan, două vor începe două fișier special., Bloc și simbol. Fiecare circulație, șoferul primește informații despre modul în care este utilizat.

6. 3 Drivere de streaming

Scopul principal al mecanismului de flux (fluxuri) este creșterea nivelului de modularitate și flexibilitate a driverelor cu logică internă complexă (cea mai mare parte a acestui lucru se referă la drivere care implementează protocoalele de rețea dezvoltate). Specificul acestor drivere este că cea mai mare parte a codului programului nu depinde de caracteristicile dispozitivului hardware. Mai mult, este adesea avantajos să combinați diferit părți ale codului programului.

Toate acestea au condus la apariția arhitecturii de streaming a driverelor, care sunt un module bidirecționale de procesare a transportorilor. La începutul transportorului (mai aproape de procesul de utilizare) există un antet al fluxului la care se aplică prima inițiativă a utilizatorului. La sfârșitul transportorului (mai aproape de dispozitiv) există un driver de dispozitiv obișnuit. În interval, se poate localiza un număr arbitrar de module de procesare, fiecare dintre care este emis în conformitate cu interfața de streaming obligatorii.

7. Echipe și utilități

Cu lucrări interactive în mediul UNIX OS, utilizați diferite utilități sau comenzi externe de limbă Shell. Multe dintre aceste utilități nu sunt programe mai puțin complexe decât interpretul de comandă (și, apropo, interpretul de comandă Shell în sine este una dintre utilitățile care pot fi numite din linia de comandă).

7. 1 Organizația de comandă în Unix

Pentru a crea o nouă echipă, trebuie doar să urmați regulile de programare din limba SI. Fiecare program SI decorat corect începe execuția de la funcția principală. Această caracteristică "semi-sistem" are o interfață standard care sta la baza organizării comenzilor care pot fi numite în mediul de coajă. Comenzile externe sunt efectuate de Interpretul Shell utilizând pachetul de apeluri pentru sistemul furcii și una dintre opțiunile EXEC. Parametrii apelului de sistem EXEC include un set de șiruri de text. Acest set de caractere text este transmis la intrarea funcției principale a programului.

Mai precis, caracteristica principală primește doi parametri - Argc (număr de șiruri de text transmise) și argv (indicator la gama de indicii la textele de text). Programul care se aplică la utilizarea sa ca o comandă Shell trebuie să fi definit exact interfață externă (Parametrii sunt de obicei introduși din terminal) și trebuie să monitorizeze și să dezasambleze corect parametrii de intrare.

În plus, pentru a se potrivi stilului coajă, un astfel de program nu trebuie să suprascrie fișierele corespunzătoare intrării standard, ieșire standard și ieșire standard de eroare. Apoi, comanda poate redirecționa în mod normal intrarea / ieșirea și poate fi inclusă în transportoare.

7. 2 I / O Redirecționare și organizare a transportorilor

Așa cum se poate observa din ultima teză a punctului precedent, pentru a asigura posibilitățile de redirecționare a I / O și a organizării transportorului, când programarea comenzilor nu trebuie să facă nimic special. Este suficient doar să nu atingeți cele trei descriptor inițial de fișiere și să lucrați corect cu aceste fișiere, și anume, pentru a afișa fișierul cu descriptorul stdout, introduceți date din fișierul STDIN și afișarea mesajelor de eroare în fișierul STDEROR.

7. 3 Comenzi încorporate, bibliotecă și personalizate

Comenzile încorporate fac parte din codul programului de interpret de comandă. Acestea sunt executate ca subrotine ale interpretului și nu pot fi înlocuite sau redefinite. Sintaxa și semantica comenzilor încorporate sunt definite în limba de comandă corespunzătoare.

Comenzile bibliotecii alcătuiesc parte din software-ul sistemului. Acesta este un set de programe executate (utilități) furnizate împreună cu sistemul de operare. Majoritatea acestor programe (cum ar fi VI, Emacs, GREP, găsirea, realizarea etc.) sunt extrem de utile în practică, dar considerația lor este în afara acestui curs (despre editorii VI și Emacs și utilitatea Integrity fac fișiere software existente. Cărți groase).

Comanda utilizatorului este orice program executat, organizat în conformitate cu cerințele stabilite în acest mod, orice utilizator UNIX OS poate extinde nelimitat repertoriul comenzilor externe ale limbajului său de comandă (de exemplu, puteți scrie propriul interpret de comandă).

7. 4 Programarea limbii de comandă

Oricare dintre limbile coajă menționate, în principiu, poate fi folosit ca un limbaj de programare. Printre utilizatorii Unix există mulți oameni care scriu pe shell programe destul de grave. Pentru programare este mai bine să utilizați limbi de programare (Si, C ++, Pascal, etc.) și nu de limbă de comandă.


8. Interfață grafică media

Deși mulți programatori profesioniști care lucrează astăzi în mediul UNIX OS preferă astăzi să se bucure de zonele tradiționale de interacțiune cu sistemul, cu terminale grafice de culoare relativ ieftin calitate superioară Permisiunile au condus la faptul că în toate opțiunile moderne pentru Unix, interfețele grafice ale utilizatorului cu sistemul sunt acceptate, iar utilizatorii sunt furnizați instrumentelor de dezvoltare a interfețelor grafice cu programele lor dezvoltate. Din punctul de vedere al utilizatorului final, instrumentele grafice de interfață acceptate în diferite versiuni ale OSIX OS și în alte sisteme (de exemplu, MS Windows sau Windows NT), aproximativ același în stilul lor.

În primul rând, în toate cazurile este acceptată modul de funcționare multi-color cu ecranul terminalului. În orice moment, utilizatorul poate forma o fereastră nouă și o asociază cu programul dorit care funcționează cu această fereastră ca un terminal separat. Windows pot fi mutate, schimbați dimensiunea lor, închideți temporar etc.

În al doilea rând, în toate soiurile moderne ale interfeței grafice, controlul mouse-ului este acceptat. În cazul UNIX, se dovedește adesea că tastatura obișnuită a terminalului utilizează numai la trecerea la interfața tradițională de linie (deși în majoritatea cazurilor, cel puțin una dintre ferestrele terminale funcționează unul dintre interpreții familiei de coajă).

În al treilea rând, o astfel de răspândire a stilului de lucru "Mouse" este posibil prin utilizarea mijloacelor de interfață bazate pe pictograme (icoane) și meniuri. În cele mai multe cazuri, un program care rulează într-o fereastră oferă utilizatorului pentru a selecta orice funcție care a efectuat-o fie prin cartografiere în setul de imagini simbolice ale funcțiilor posibile (pictograme), fie prin furnizarea unui meniu multi-nivel. În orice caz, pentru selectarea ulterioară, se dovedește a fi suficient controlând cursorul ferestrei corespunzătoare folosind mouse-ul.

În cele din urmă, interfețele grafice moderne au o "prietenie cu privire la utilizator", oferind posibilitatea obținerii imediat unui sfat interactiv pentru orice ocazie. (Probabil că ar fi mai corect să spunem că un stil de programare bun folosind interfețe grafice este un stil în care astfel de sfaturi sunt de fapt furnizate.)

După afișarea tuturor acestor proprietăți comune mijloace moderne Interfața grafică poate avea o întrebare naturală: dacă există astfel de uniforme în domeniul interfețelor grafice, care pot fi informate în mod special despre interfețele grafice din mediul UNIX OS? Răspunsul este destul de simplu. Da, utilizatorul final într-adevăr în orice sistem de astăzi sa ocupat de același set de capabilități de interfață, dar în diferite sisteme, aceste capabilități sunt realizate în moduri diferite. Ca de obicei, avantajul UNIX OS este prezența tehnologiilor standardizate care vă permit să creați aplicații mobile cu interfețe grafice.

8. Principii de protecție

Deoarece sistemul de operare UNIX de la originea sa a fost concepută ca un sistem de operare multiplayer, problema autorizării accesului diferiților utilizatori la fișierele de sistem a fost întotdeauna relevantă. Sub autorizarea accesului este acțiunile sistemului care permit sau nu permit accesul la acest fișier în acest fișier, în funcție de drepturile accesului utilizatorilor și de restricțiile de acces instalate pentru fișier. Schema de autorizare a accesului utilizat în Unix este atât de simplă și convenabilă și, în același timp, atât de puternică, care a devenit standardul real al sistemelor moderne de operare (fără a revendica sisteme cu protecție pe mai multe niveluri).

8.1 Identificatori de utilizator și grup de utilizatori

Cu fiecare proces executabil, Unix este asociat cu ID-ul real al utilizatorului, codul de utilizator curent și ID-ul de utilizator salvat (ID-ul de utilizator salvat) asociază cu sistemul de operare Unix (ID-ul de utilizator eficient). Toate aceste identificatori sunt instalate utilizând apelul SETUID, care poate fi efectuat numai în modul superuser. În mod similar, fiecare proces este asociat cu trei identificatori de grupuri de utilizatori - ID-ul grupului real, ID-ul de grup eficient și ID-ul grupului salvat. Aceste identificatori sunt stabilite de apelul PRIVILEGAR PRIVILEGD SETGID.

Atunci când utilizatorul se conectează la conectarea sistemului verifică dacă utilizatorul este înregistrat în sistem și cunoaște parola corectă (dacă este instalată), formează un nou proces și pornește carcasa necesară pentru acest utilizator. Dar, înainte de aceasta, autentificarea stabilește identificatorii utilizatorului și grupul pentru procesul nou creat utilizând informațiile stocate în fișiere / etc / passwd și / etc / grup. După procesul de identificare a utilizatorilor și al grupului este asociat cu procesul, restricțiile încep să acționeze pentru accesul la fișiere. Procesul poate accesa fișierul sau îl poate executa (dacă fișierul conține programul Executiv) numai dacă fișierul de restricționare a accesului este permis să facă acest lucru. Identificatorii asociați cu procesul sunt transmise proceselor create de acestea, răspândind aceleași limitări asupra acestora. Cu toate acestea, în unele cazuri, procesul își poate schimba drepturile utilizând apelurile SETUID și SETGID, iar uneori sistemul poate schimba automat accesul procesului.

Luați în considerare, de exemplu, situația următoare. În fișierul / etc / passwd este interzis de intrare, cu excepția superuser (Superuser poate scrie în orice fișier). Acest fișier, printre altele, conține parole de utilizator și fiecare utilizator este permis să își schimbe parola. Disponibil program special / bin / passwd schimbarea parolelor. Cu toate acestea, utilizatorul nu o poate face chiar și cu acest program, deoarece intrarea în fișier / etc / passwd este interzisă. În sistemul Unix, această problemă este permisă după cum urmează. Când fișierul este executat, acesta poate fi indicat că atunci când este pornit, ID-urile utilizatorului și / sau grupul trebuie să fie instalate. Dacă utilizatorul solicită executarea unui astfel de program (utilizând apelul de sistem Exec), identificatorul utilizatorului este setat la procesul corespunzător corespunzător identificatorului proprietarului fișierului executabil și / sau identificatorului grupului acestui proprietar . În special, atunci când începe programul / bin / passwd, procesul va primi un identificator superuser, iar programul va putea înregistra fișierul / etc / passwd.

Și pentru ID-ul de utilizator și pentru identificatorul grupului, ID-ul real este un adevărat identificator, iar ID-ul de funcționare este identificatorul executării actuale. Dacă codul de utilizator curent corespunde superuserului, atunci acest identificator și identificator al grupului pot fi resetate la orice valoare a apelurilor SETUID și SETGID. Dacă codul de utilizator curent este diferit de identificatorul SuperUser, atunci executarea apelurilor sistemului SETUID și SETGID conduce la înlocuirea identificatorului curent cu un identificator adevărat (utilizator sau grup, respectiv).

8.2 Protecția fișierelor

Așa cum se acceptă în sistemul de operare multiplayer, Unix susține un mecanism uniform pentru controlul accesului la directoarele și directoarele sistemului de fișiere. Orice proces poate accesa un fișier în acest fișier și numai dacă drepturile de acces descrise în fișier corespund capabilităților acestui proces.

Protecția fișierelor de la accesul neautorizat la OSIX OS se bazează pe trei fapte. În primul rând, cu orice proces care creează un fișier (sau un director) este asociat unui identificator unic de utilizator (UID - identificator de utilizator), care în viitor poate fi interpretat ca identificator al proprietarului fișierului nou creat. În al doilea rând, cu fiecare proces care încearcă să obțină un anumit acces la fișier, este asociată o pereche de identificatori - codul de utilizator curent și identificatorii grupului său. În al treilea rând, fiecare fișier corespunde cu siguranta descriptorului său - i-nod.

Orice i-nod utilizat în sistemul de fișiere definește întotdeauna unul și un singur fișier. I-Nodul conține o mulțime de informații diverse (cea mai mare parte este disponibilă utilizatorilor prin intermediul apelurilor sistemului STAT și FSAT), iar printre aceste informații este parte din care permite sistemului de fișiere să evalueze instrucțiunile de acces ale acestui proces la acest fișier în modul dorit.

Dispozițiile generale sunt aceleași pentru toate opțiunile de sistem existente: informațiile I-NODE includ UID și GID-ul proprietarului curent al fișierului (imediat după crearea unui fișier, identificatorii proprietarului actual sunt stabilite de ID-ul Creatorului curent corespunzător, dar În viitor, este supusă schimbării provocărilor sistemului chown și ChGRP). În plus, nodul I al fișierului stochează scara în care se observă că utilizatorul poate face cu fișierul - proprietarul său, ce poate face cu utilizatorii care intră în același grup de utilizatori ca proprietar și ce poate face cu ceilalți utilizatori de fișiere. Detalii mici ale implementării în diferite versiuni ale sistemului diferă.

8.3 Perspectivă OS sprijină UNIX Miercurea

Microcer este partea minimă a tijei sistemului de operare, care servește ca bază de extensii modulare și portabile. Aparent, majoritatea sistemelor de operare de generație următoare vor avea micronters. Cu toate acestea, există o mulțime de opinii diferite cu privire la modul de organizare a serviciilor sistemului de operare în raport cu Microner: Cum să proiectați driverele de dispozitiv pentru a obține cea mai mare eficiență, dar salvați funcțiile driverelor cât mai independent posibil din echipament. Ar trebui să efectueze operațiuni care nu sunt legate de kernel-ul din spațiul kernel sau în spațiul utilizatorului; Merită să păstrați programele disponibile subsisteme (de exemplu, UNIX) sau este mai bine să renunțați la tot și să începeți de la zero.

Într-o utilizare largă a unui microker, compania a introdus în continuare, în sistemul de operare al cărui microser Mach a fost utilizat. Un mic nucleu privilegiat al acestui sistem de operare, în jurul căruia au fost localizate subsistemele efectuate în modul utilizator, a trebuit teoretic să asigure flexibilitatea și modularitatea fără precedent a sistemului. Dar, în practică, acest avantaj a fost oarecum afectat de prezența unui server monolit care implementează sistemul de operare UNIX BSD 4.3, care următorul a ales ca o coajă de microkernel Mach. Cu toate acestea, suportul pe Mach a făcut posibilă activarea instrumentelor de mesagerie și a unui număr de funcții de service orientate pe obiect, pe baza căruia ați reușit să creați o interfață elegantă de utilizator final cu grafică de configurare a rețelei, administrarea sistemului și dezvoltarea de software.

Următorul sistem de operare microeer a fost Microsoft Windows NT, în care avantajul cheie al utilizării microkernelului nu a fost doar modularitate, ci și tolerabilitate. (Rețineți că nu există o opinie unanimă cu privire la faptul că ar trebui să atribuie un sistem de operare micronic.) NT a fost construit astfel încât să poată fi utilizat în sisteme unice și multiprocesor pe baza procesoarelor Intel, MIPS și Alpha (și cei care vin după ei). Deoarece programe, programe scrise pentru DOS, Windows, OS / 2 și sisteme compatibile cu standardele POSIX, Microsoft a folosit o micronomie pentru a crea o structură generală NT care nu se repetă niciuna dintre structurile NT existente care nu se repetă niciuna dintre sistemele de operare existente . Fiecare sistem de operare este emulat ca un modul separat sau subsistem.

Ulterior, arhitecturile micronucleare ale sistemelor de operare au fost anunțate de Fundația Software Novell / USL, OSF, IBM, Apple și altele. Unul dintre principalii concurenți NT din domeniul OS Micronuclear este Mach 3.0, un sistem creat la Universitatea din Carnegie Pepene, pe care atât IBM, cât și OSF au luat-o la o specie comercială. (În continuare ca bază pentru următorul în timp ce Mach 2.5 utilizează Mach 2.5, dar, de asemenea, se pare cu atenție la Mach 3.0.) Un alt concurent este compania CHORUS SYSTEMS CHORUS SYSTEMS MICROKER 3.0, selectat de USL ca bază a noilor implementări UNIX OS. Unele microkernel vor fi folosite în Springos Sun, un succesor orientat pe obiecte al OS Solaris (cu excepția cazului în care soarele va aduce la sfârșit de muncă la Spălatul). Tendința spre tranziția de la sistemele monolitice la micrice este evidentă (acest proces nu este simplu: IBM a făcut un pas înapoi și a refuzat să meargă la tehnologia micronucleului). Apropo, aceasta nu este știrile pentru sistemele software QNX și companiile unisine, care au produs deja sisteme de operare microeriale care au avut succes de mai mulți ani. QNX OS este în cerere pe piața pe piață în timp real, iar Unisys CTOS este popular în domeniul bancar. În ambele sisteme, modularitatea inerentă a sistemului de operare micronucleus a fost utilizată cu succes.


Concluzie

Principalele diferențe de Unix de la alte sisteme de operare

Unix constă dintr-un kernel cu drivere inclus în IT și de la utilități (în exterior la programul de bază). Dacă doriți să schimbați configurația (adăugați un dispozitiv, schimbați portul sau întrerupeți), atunci miezul este reconstruit (supraclin) din obiecte de obiecte sau (de exemplu, în FreeBSD) de la sursă. Acest lucru nu este în întregime adevărat. Unii parametri remediază focul fără reconstrucție. Există, de asemenea, module de kernel încărcate.

Spre deosebire de UNIX, "Windows (dacă nu este specificat, ceea ce înseamnă 3,11, 95 și NT) și OS / 2 atunci când se încarcă efectiv șoferii atașați. În acest caz, compactitudinea kernelului asamblat și reutilizați Codul general este un ordin de mărime mai mic decât cel al Unix. În plus, atunci când sistemul UNIX Kernel este constant configurat fără a fi reparat (va fi necesar să se modifice numai partea de pornire BIOS) poate fi înregistrată în ROM și Execute _ne_bow_ în memoria ROM. Compactitatea codului este deosebit de importantă, deoarece Kernelurile și șoferii nu părăsesc niciodată memoria fizică, nu se îmbată pe disc.

Unix este cel mai multi-platformă de operare. Windownt încearcă să-l imite, dar până acum este rău - după eșecul MIPS și POWER-PC, W "NT a rămas doar pe două platforme - tradiționale I * 86 și Dec Alpha. Portabilitatea programelor de la o versiune de o versiune Unix este limitat. Programul neexo-scris, care nu ia în considerare diferențele în implementările UNIX, făcând ipoteze nerezonabile ale "variabilei întregi ar trebui să ocupe patru octeți" pot necesita o modificare serioasă. Dar totuși este o mulțime de ordine de comenzi mai ușor decât, De exemplu, Perrrest cu OS / 2 pe NT.

Domeniul de aplicare al Unix.

Unix este utilizat atât ca server, cât și ca stația de lucru. MSNT, Novell Netware, IBM OS / 2 Warp Connect, Dec VMS și sistemele de operare mainframe concurează cu ea în nominalizarea serverelor. Fiecare sistem are propriul său scop în care este mai bine decât alții.

Windownt - pentru administratorii care preferă o interfață convenabilă pentru a cheltui resursele economice și performanțele ridicate.

NetWare - Pentru rețelele în care sunt necesare servicii de înaltă performanță și servicii de imprimantă, iar celelalte servicii nu sunt atât de importante. Principalul dezavantaj - pe serverul NetWare este dificil de executat aplicații.

OS / 2 este bun în cazul în care aveți nevoie de un server de aplicații "ușor". Resursele necesită mai puțin decât NT, în gestionarea flexibilității (deși în setarea poate și mai dificilă), iar multitasking-ul este foarte bun. Autorizarea și delimitarea drepturilor de acces nu sunt puse în aplicare la nivelul OS, care este mai mult decât plata la nivelul cererilor de aplicații. (Cu toate acestea, adesea sistemul rămas face același lucru). Multe stații Fidonet și Bbs sunt făcute pe baza OS / 2.

VMS este unul puternic, nu inferior la UNIX "AM (și în multe aspecte și superioare IT), dar numai pentru platformele Vax și Alpha Dec.

Mainframe - pentru a menține un număr foarte mare de utilizatori (aproximativ câteva mii). Dar activitatea acestor utilizatori este de obicei organizată ca interacțiune cu client-server, dar sub formă de terminal gazdă. Terminalul din această pereche nu este mai degrabă un client, ci serverul (lumea internetului, N3 pentru anul 1996). Beneficiile maincramelor ar trebui să fie atribuite unei garanții și rezistenței mai mari la eșecuri, iar prețul corespunzător acestor calități.

Unix este bun pentru un administrator calificat (sau care vrea să fie astfel), pentru că Necesită cunoașterea principiilor de funcționare a proceselor care apar în acesta. Real multitasking și separarea rigidă a memoriei asigură o fiabilitate ridicată a sistemului, deși NetWare este inferioară în serviciile de performanță și tipărire a fișierelor UNIX.

Flexibilitatea insuficientă de a oferi drepturi de acces utilizator la dosare în comparație cu Windownt face dificilă organizarea datelor _a_eurovna_filene_system_ Data_nign (mai precis la fișiere), care, în opinia mea, este compensată de simplitatea implementării și, prin urmare, cerințele mai mici pentru echipament. Cu toate acestea, aplicațiile precum SQL Server rezolvă problema accesului la aceste forțe, astfel încât capacitatea Unix de a interzice accesul la _Fyle_ la un anumit utilizator din opinia mea este în mod clar excesiv.

Aproape toate protocoalele pe care internetul se bazează pe UNIX, în special teamul protocolului TCP / IP din Universitatea din Berkeley.

Unix Security cu administrare adecvată (și când nu este așa?), Nici nu inferior lui Novell, nici Windownt.

O proprietate importantă a Unixului, care o aduce la mainframe, este multi-terminitatea sa, mulți utilizatori pot rula simultan programe pe o mașină UNIX. Dacă nu aveți nevoie să utilizați grafică, puteți face terminale text ieftine (specializate sau pe baza PC-ului ieftin) conectate de-a lungul liniilor lente. Numai VMS concurează cu ea. Terminalele grafice X pot fi utilizate atunci când procesele care rulează pe diferite mașini sunt prezente pe un singur ecran.

În nominalizarea stațiilor de lucru cu Unix Concurează MS Windows *, IBM OS / 2, Macintosh și Acorn Risc-OS.

Ferestre - pentru cei care apreciază compatibilitatea mai multă eficiență; Pentru cei care sunt gata să cumpere un număr mare de memorie, spațiu pe disc și megahertz; Pentru cei care iubesc nu sunt legați de esențe, faceți clic pe mouse-ul peste butoanele din fereastră. Adevărat, mai devreme sau mai târziu, va trebui, de asemenea, să studieze principiile sistemului și protocoale, dar atunci va fi prea târziu - alegerea este făcută. Un avantaj important al ferestrelor trebuie, de asemenea, să fie recunoscut ca abilitatea de a fura o grămadă de software.

OS / 2 - pentru iubitorii de OS / 2. :-) Deși unele informații OS / 2 interacționează mai bine cu mainframe și rețele IBM.

Macintosh - pentru lucrări grafice, de publicare și muzică, precum și pentru cei cărora le place interfața clară și frumoasă și nu doresc (nu pot) să înțeleagă detaliile funcționării sistemului.

RISC-OS, cusută în ROM, permite să nu pierdeți timpul pe instalarea sistemului de operare și restabilirea acestuia după eșecuri. În plus, aproape toate programele sub ea cheltuiesc foarte economic resurse, datorită căruia nu au nevoie de swallop și de lucru foarte repede.

UNIX operează atât pe PC, cât și în stații de lucru puternice cu procesoare RISC, sub Unix sunt scrise sisteme reale de informații CAD și geografice. Cu scalabilitatea sa a Unix datorită modelului multiplat, un ordin de mărime depășește orice alt sistem de operare, potrivit unor autori.


Bibliografie

1. Tutorial Kuznetsova s.d. "Sistem de operare Unix" 2003;

2. Poliakov a.d. "UNIX ediția a 5-a pe x86 sau nu uitați povestea";

3. Karpov D.Yu. "Unix" 2005;

4. Fedorchuk A.V. "Abilitatea de lucru UNIX", 2006

5. Materialele site-ului http://www.citforum.ru/opetering_systems/1-16;

Ministerul Educației și Științei din Federația Rusă Agenția Federală pentru Educație Instituție de Educație de Stat de Educație Profesională Superioară Taganrog State Radio Inginerie Universitatea de Disciplină

Unix are o poveste lungă și interesantă. Începând ca un proiect frivol și aproape "jucărie" al tinerilor cercetători, Unix a devenit o industrie de milioane de dolari, inclusiv universități din orbita sa, corporații multinaționale, guverne și organizații internaționale de standardizare.

Unix a provenit din Labs AT & T Bell Labs cu mai mult de 20 de ani în urmă. În acel moment, Bell Labs a fost angajat în dezvoltarea unei multipi multiplayer (servicii multiplexate și servicii de calcul), împreună cu MIT și General Electric, dar acest sistem a eșuat, parțial datorită unor scopuri prea ambițioase care nu au îndeplinit nivelul computerelor Acest timp, și parțial și datorită faptului că a fost proiectat în PL / 1, iar compilatorul PL / 1 a fost întârziat și, în general, a funcționat după aspectul său târziu. Prin urmare, Bell Labs au refuzat, în general, să participe la proiectul Multic, ceea ce a dat ocazia unuia dintre cercetătorii săi, Kenu Thompson, să lucreze în direcția îmbunătățirii mediului de operare al Bell Labs. Thompson, precum și un angajat al Bell Labs Denis Ritchie și alții au dezvoltat un nou sistem de fișiere, dintre care multe caracteristici au condus originea lor din mulsime. Pentru a verifica noul sistem de fișiere, Thompson a scris nucleul sistemului de operare și unele programe pentru calculatorul GE-645, care a lucrat sub controlul sistemului multiprogram al sistemului de separare a timpului GECOS. Ken Thompson a fost scris la ei la momentul lucrului pe jocul mulsic "spațiu de călătorie" - "Călătorie spațială". El a lansat-o pe computerul GE-645, dar a lucrat pe ea nu este foarte bun din cauza eficienței scăzute a separării timpului. În plus, timpul motorului GE-645 a fost prea scump. Ca rezultat, Thompson și Ritchi au decis să deplaseze jocul la colțul mașinii PDP-7 din Dec, care are 4096 de cuvinte pe 18 biți, TeleType și un afișaj grafic bun. Dar PDP-7 a avut un software neimportant și, prin finalizarea transferului jocului, Thompson a decis să implementeze sistemul de fișiere pe PDP 7, pe care a lucrat la GE-645. Din această lucrare, a apărut prima versiune UNIX, deși nu a avut niciun nume în acel moment. Dar a inclus deja un sistem de fișiere care este caracteristic al UNIX, pe baza descriptorii indexului Index, a avut un subsistem de procese și memorie și a permis doi utilizatori să lucreze în modul de separare a timpului. Sistemul a fost scris în asamblare. Numele UNIX (serviciile de informații și computere Uniplex) a fost dat unui alt angajat al Bell Labs, Brian Kernigan, care și-a numit inițial unicii, subliniind diferența de mulsicurile multiplayer. Curând unic a început să apeleze UNIX.

Primii utilizatori ai Unixului "A au devenit angajați ai Departamentului Bell Labs Brevets, care a găsit-o un mediu convenabil pentru crearea de texte.

O influență mare asupra soartei Unix a fost recensământul limbii sale la nivel înalt cu Denis Ritchie special dezvoltat în aceste scopuri. Acest lucru sa întâmplat în 1973, Unix a fost deja numerotat de acest timp deja 25 de instalații, iar Bell Labs a creat un grup special UNIX Support.

UNIX a primit răspândită din 1974, după ce a descris acest sistem, Thompson și Ritchie în revista CACM Computer. Unix a devenit larg răspândită în universități, deoarece acestea a fost furnizată gratuit, împreună cu codurile originale pe C. Distribuția largă a C-Compilatoare eficiente a făcut UNIX unic pentru acea perioadă a sistemului de operare datorită posibilității de a transfera diferite computere. Universitățile au contribuit semnificativ la îmbunătățirea UNIX și popularizarea ulterioară. Un alt pas către obținerea recunoașterii Unix ca mediu standardizat a fost dezvoltarea bibliotecii STDI I / O. Datorită utilizării acestei biblioteci pentru compilatorul C, programul Unix a devenit ușor tolerat.

Smochin. 5.1. Dezvoltarea Națiunilor Unite Unix

Distribuția largă a Unix a generat problema incompatibilității numeroaselor sale versiuni. Evident, utilizatorul este foarte neplăcut că pachetul, cumpărat pentru o versiune de Unix, refuză să lucreze la o altă versiune de Unix. Periodic a fost făcut și încercările de a standardiza Unix, dar au avut totuși un succes limitat. Procesul de apropiere a diferitelor versiuni de Unix și discrepanța lor este ciclic. În fața unei noi amenințări din orice alt sistem de operare, diferiți producători de versiuni UNIX reunesc produsele lor, dar apoi o luptă competitivă îi obligă să facă îmbunătățiri și versiuni originale diverge din nou. În acest proces există o parte pozitivă - apariția unor noi idei și fonduri care îmbunătățesc atât UNIX, cât și multe alte sisteme de operare care au luat o mulțime de existențe utile în anii lui lungi.

Figura 5.1 prezintă o imagine simplificată a dezvoltării UNIX, care ia în considerare continuitatea diferitelor versiuni și impactul asupra lor a standardelor luate. Două linii foarte incompatibile ale versiunilor UNIX au fost obținute cele mai mari distribuții: Sistemul AT & T - Unix V și linia Universității Berkeley-BSD. Multe companii bazate pe aceste versiuni au dezvoltat și susțin versiunile lor de Unix: Sunos și Solaris de Sun Microsystems, UX Hewlett-Packard, Compania Xenix Microsoft, firmele AIX ale IBM, Unixware Company Novell (Vândute acum Compania SCO) și această listă este încă continuu.

Astfel de standarde, cum ar fi firmele SVID AT & T, POSIX, create sub auspiciile IEEE și XPG4 X / Open XPG4 au avut cel mai mare impact asupra unificării versiunilor UNIX. Aceste standarde formulează cerințe pentru interfața dintre aplicații și sistem de operare, care permite aplicațiilor să funcționeze cu succes diverse versiuni ale UNIX.

Indiferent de versiune, comune pentru caracteristicile Unix sunt:

  • modul multiplayer cu protecția datelor de la accesul neautorizat,
  • implementarea procesării multiprogramelor în modul de separare a timpului pe baza utilizării algoritmilor pentru deplasarea multitaskingului (multitasking multitasking),
  • utilizarea memoriei virtuale și a mecanismelor de swap pentru a îmbunătăți nivelurile multiprogramare
  • unificarea operațiunilor I / O bazate pe utilizarea extinsă a conceptului "Fișier"
  • sistem de fișiere ierarhice care formează un copac unic, indiferent de numărul de dispozitive fizice utilizate pentru plasarea fișierelor,
  • portabilitatea sistemului scriind partea sa principală în C,
  • o varietate de interacțiune a proceselor, inclusiv prin rețea,
  • cache de disc pentru a reduce accesul mediu la fișiere.

Sistemul UNIX VLAY 4 este o versiune comercială neterminată a sistemului de operare, deoarece În codurile sale, nu există utilități de sistem necesare pentru funcționarea cu succes a sistemului de operare, cum ar fi utilitarul de administrare sau managerul de interfață grafică. Versiunea SVR4 este mai degrabă implementarea standard a codului de bază care a permis cele mai populare și eficiente soluții din diferite versiuni ale kernelului Unix, cum ar fi sistemul de fișiere virtuale VFS afișate în fișierele de memorie etc. Codul SVR4 (parțial modificat) constituie baza multor versiuni comerciale moderne de Unix, cum ar fi HP-UX, Solaris, AIX, etc.

Sandbox.

Vesel usach 19 martie 2011 la 23:16

Ce diferă Linux de la Unix și ce este un sistem de operare ca un sistem de lucru?

  • Cherestea *
Unix.
Unix. (nu merita Confundat cu definiția sistemului de operare UNIX) este o familie de sisteme de operare (Mac OS X, GNU / Linux).
Primul sistem a fost dezvoltat în 1969 în Bell Laboratories, o fostă corporație americană.

Caracteristici distinctive ale Unix:

  1. Configurarea simplă a sistemului utilizând fișiere simple, de obicei text.
  2. Utilizarea largă a liniei de comandă.
  3. Utilizarea transportoarelor.
În zilele noastre, Unix este folosit în principal pe servere și ca sistem de echipament.
Este imposibil să nu rețineți importanța imensă istorică a sistemelor Unix. În prezent, ele sunt recunoscute ca fiind unul dintre cele mai importante sisteme de operare importante din punct de vedere istoric. În cursul dezvoltării sistemelor Unix, a fost creată limba C.

Opțiuni UNIX de ani de zile

UNIX-ca sistem de operare
UNIX-ca sistem de operare (uneori Folosind o reducere * nix) - un sistem format sub influența Unix.

Cuvântul Unix este utilizat ca semn de conformitate și ca marcă comercială.

Consorțiul de grup deschis are o marcă "Unix", dar este cea mai renumită ca autoritate de certificare pentru marca UNIX. Recent, grupul deschis are o dispariție ușoară în legătură cu publicarea specificației Singurele Specificații UNIX, care trebuie să satisfacă sistemul de operare pentru a fi mândru să se numească Unix.

Puteți să vă uitați la arborele genealogic al sistemelor de operare similare UNIX.

Linux.
Linux. - numele comun al sistemelor de operare AIX, care sunt proiectate în cadrul proiectului GNU (proiect privind dezvoltarea SPO). Linux lucrează pe o mulțime de arhitecturi de procesor, variind de la brațul care se termină Intel X86.

Cele mai renumite și distribuite distribuții sunt Arch Linux, Centos, Debian. Există, de asemenea, multe distribuții "interne", rusești - Alt Linux, Asplinux și altele.

Există destule câteva dispute de numire GNU / Linux.
Suporterii "Open Source" folosiți termenul "Linux" și suporteri ai "Software-ului liber" - "GNU / Linux". Prefer prima opțiune. Uneori, pentru confortul vizualizării termenului GNU / Linux, "GNU + Linux", "Gnu-Linux", "Gnu Linux" scriu.

Spre deosebire de sistemele comerciale (MS Windows, Mac OS X) Linux nu are un centru de dezvoltare geografică și o anumită organizație care ar fi deținut sistemul. Sistemul și programele pentru el însuși sunt rezultatul muncii comunităților uriașe, a mii de proiecte. Alăturați-vă proiectului sau creați-vă propriul tuturor!

Ieșire
Astfel, am avut un lanț: Unix -\u003e OIX-ca OS -\u003e Linux.

Rezumând, pot spune că diferențele dintre Linux și Unix sunt evidente. Unix este un concept mult mai larg, fundație pentru construirea și certificarea tuturor sistemelor similare UNIX și Linux este un caz particular de Unix.

Tag-uri: Unix, Linux, Nix, Linux, Unix

Acest articol nu este supus comentarii, deoarece autorul său nu este încă