Acasă Sfaturi utile Care este implementat complet în Unix. Diferențele dintre UNIX și Linux. ID-uri de utilizator și grup de utilizatori

Care este implementat complet în Unix. Diferențele dintre UNIX și Linux. ID-uri de utilizator și grup de utilizatori

În plus, fiecare dintre ele poate efectua multe procese de calcul diferite care vor folosi resursele acestui computer special.

Al doilea merit colosal al Unix este natura sa multiplatformă. Miezul sistemului este proiectat astfel încât să poată fi adaptat cu ușurință la aproape orice microprocesor.

Unix are alte caracteristici:

  • utilizarea fișierelor text simple pentru a configura și gestiona sistemul;
  • utilizarea pe scară largă a utilităților lansate din linia de comandă;
  • interacțiunea cu utilizatorul printr-un dispozitiv virtual - un terminal;
  • reprezentarea dispozitivelor fizice și virtuale și a unor instrumente de comunicare interprocese sub formă de fișiere;
  • folosind conducte de mai multe programe, fiecare dintre ele efectuând o sarcină.

Aplicație

În prezent, sistemele Unix sunt comune în primul rând printre servere, dar și ca sisteme încorporate pentru diverse hardware, inclusiv smartphone-uri. De asemenea, sistemele Unix domină pe supercomputere, în special, 100% dintre supercomputerele din clasamentul TOP500 au sistemul de operare Linux instalat.

Primele versiuni de Unix au fost scrise în limbaj de asamblare și nu aveau un compilator de limbaj de nivel înalt încorporat. În jurul anului 1969, Ken Thompson, cu asistența lui Dennis Ritchie, a dezvoltat și implementat limbajul Bi (B), care era o versiune simplificată (pentru implementare pe minicalculatoare) a limbajului BCPL dezvoltat în limbaj. Bi, la fel ca BCPL, era un limbaj interpretat. A fost lansat în 1972 a doua editie Unix rescris în limbajul Bi. În 1969-1973 Pe baza Bi, a fost dezvoltat un limbaj compilat, numit C (C).

Despică

Un motiv important pentru divizarea Unix a fost implementarea stivei de protocoale TCP/IP în 1980. Înainte de aceasta, comunicarea de la mașină la mașină în Unix era la început - cea mai semnificativă metodă de comunicare era UUCP (un mijloc de copiere a fișierelor de la un sistem Unix la altul, care funcționează inițial prin rețele telefonice folosind modemuri).

Au fost propuse două interfețe de programare a aplicațiilor de rețea: socket-uri Berkley și TLI (Transport Layer Interface).

Interfața socket-urilor Berkley a fost dezvoltată la Universitatea din Berkeley și a folosit stiva de protocoale TCP/IP dezvoltată acolo. TLI a fost creat de AT&T conform definiției stratului de transport a modelului OSI și a apărut pentru prima dată în System V versiunea 3. Deși această versiune conținea TLI și fluxuri, inițial nu a avut o implementare a TCP/IP sau a altor protocoale de rețea, dar astfel de implementările au fost furnizate de terți.

Implementarea TCP/IP a fost inclusă în mod oficial și în cele din urmă în distribuția de bază a System V versiunea 4. Aceasta, împreună cu alte considerente (în mare parte cele de piață), a determinat demarcarea finală între cele două ramuri ale Unix - BSD (Berkeley University) și System V (versiunea comercială de la AT&T). Ulterior, multe companii, având licență System V de la AT&T, și-au dezvoltat propriile soiuri comerciale de Unix, cum ar fi AIX, CLIX, HP-UX, IRIX, Solaris.

Implementările moderne Unix nu sunt, în general, sisteme pure V sau BSD. Ei implementează funcții atât ale System V, cât și ale BSD.

Sisteme de operare asemănătoare Unix gratuite

În prezent, GNU/Linux și membrii familiei BSD preiau rapid piața de la sistemele comerciale Unix și pătrund simultan atât în ​​computerele desktop ale utilizatorilor finali, cât și în sistemele mobile și încorporate.

Sisteme proprietare

După divizarea AT&T, marca comercială Unix și drepturile asupra codului sursă original s-au schimbat de mai multe ori, în special, au aparținut multă vreme lui Novell.

Influența Unix asupra evoluției sistemelor de operare

Sistemele Unix sunt de mare importanță istorică, deoarece au dat naștere unora dintre conceptele și abordările SO și software care sunt populare astăzi. De asemenea, în timpul dezvoltării sistemelor Unix, a fost creat limbajul C.

Folosit pe scară largă în programarea sistemelor, limbajul C, creat inițial pentru dezvoltarea Unix, a depășit Unix-ul în popularitate. Limbajul C a fost primul limbaj „tolerant” care nu a încercat să impună un sau altul stil de programare programatorului. C a fost primul limbaj de nivel înalt care a oferit acces la toate capabilitățile procesorului, cum ar fi referințe, tabele, deplasări de biți, incremente etc. Pe de altă parte, libertatea limbajului C a condus la erori de depășire a tamponului în funcțiile bibliotecii standard C, cum ar fi as gets and scanf. Rezultatul au fost multe vulnerabilități notorii, cum ar fi cea exploatată de faimosul vierme Morris.

Primii dezvoltatori ai Unix au ajutat la introducerea principiilor programării modulare și reutilizarii în practica inginerească.

Unix a făcut posibilă utilizarea protocoalelor TCP/IP pe computere relativ ieftine, ceea ce a dus la creștere rapidă Internet. Aceasta, la rândul său, a contribuit la descoperirea rapidă a mai multor vulnerabilități majore în securitatea, arhitectura și utilitățile de sistem Unix.

De-a lungul timpului, s-au dezvoltat dezvoltatorii de top Unix norme culturale dezvoltare software, care a devenit la fel de important ca Unix însuși. ( )

Unele dintre cele mai faimoase exemple de sisteme de operare asemănătoare Unix sunt macOS, Solaris, BSD și NeXTSTEP.

Rol social în comunitatea profesioniștilor IT și rol istoric

Unix-urile originale rulau pe computere mari multi-utilizator, care ofereau și sisteme de operare proprietare de la producătorul de hardware, cum ar fi RSX-11 și VMS-ul său descendent. În ciuda faptului că, potrivit unui număr de opinii [ cui?] Unix-ul de atunci avea dezavantaje în comparație cu aceste sisteme de operare (de exemplu, lipsa motoarelor de baze de date serioase), era: a) mai ieftin și uneori gratuit pentru instituțiile academice; b) a fost portabil de la echipament la echipament și dezvoltat într-un limbaj C portabil, care a „decuplat” dezvoltarea programului de echipamente specifice. În plus, experiența utilizatorului s-a dovedit a fi „decuplată” de hardware și producător - o persoană care a lucrat cu Unix pe VAX ar putea lucra cu ușurință cu acesta pe 68xxx și așa mai departe.

Producătorii de hardware la acea vreme aveau adesea o atitudine cool față de Unix, considerându-l o jucărie și oferindu-și sistemul de operare proprietar pentru muncă serioasă - în primul rând DBMS și aplicații de afaceri bazate pe acestea în structuri comerciale. Există comentarii cunoscute cu privire la această problemă din partea DEC cu privire la VMS-ul său. Corporațiile au ascultat acest lucru, dar nu mediul academic, care avea tot ce avea nevoie în Unix, de multe ori nu necesita sprijin oficial din partea producătorului, se gestiona singur și prețuia costul scăzut și portabilitatea Unix. Astfel, Unix a fost probabil primul sistem de operare portabil pe hardware diferit.

A doua ascensiune majoră a Unix a fost introducerea procesoarelor RISC în jurul anului 1989. Chiar și înainte de asta, existau așa-zise. stațiile de lucru sunt computere personale cu un singur utilizator de mare putere, care au suficientă memorie, un hard disk și un sistem de operare suficient de dezvoltat (multitasking, protecție a memoriei) pentru a lucra cu aplicatii serioase, cum ar fi CAD-urile. Printre producătorii de astfel de mașini, Sun Microsystems s-a remarcat, făcându-și un nume pe ele.

Înainte de apariția procesoarelor RISC, aceste stații foloseau de obicei un procesor Motorola 680x0, la fel ca în computerele Apple (deși cu un sistem de operare mai avansat decât cel al Apple). În jurul anului 1989, au apărut pe piață implementări comerciale ale procesoarelor cu arhitectură RISC. Decizia logică a unui număr de companii (Sun și altele) a fost de a porta Unix la aceste arhitecturi, ceea ce a presupus imediat transferul întregului ecosistem software pentru Unix.

Sistemele de operare serioase proprietare, precum VMS, și-au început declinul tocmai din acest moment (chiar dacă era posibil să se transfere sistemul de operare în sine în RISC, totul a fost mult mai complicat cu aplicații pentru acesta, care în aceste ecosisteme erau adesea dezvoltate în asamblare sau în limbaje proprietare precum BLISS), iar Unix a devenit sistemul de operare pentru cele mai puternice computere din lume.

Cu toate acestea, în acest moment ecosistemul a început să se mute la o interfață grafică sub formă de Windows 3.0. Avantajele enorme ale GUI, precum și, de exemplu, suportul unificat pentru toate tipurile de imprimante, au fost apreciate atât de dezvoltatori, cât și de utilizatori. Acest lucru a subminat foarte mult poziția Unix pe piața PC-urilor - implementări precum SCO și Interactive UNIX nu au putut suporta aplicațiile Windows. În ceea ce privește interfața grafică pentru Unix, numită X11 (au existat și alte implementări, mult mai puțin populare), aceasta nu a putut funcționa pe deplin pe un computer de utilizator obișnuit din cauza cerințelor de memorie - pentru funcționarea normală, X11 necesita 16 MB, în timp ce Windows 3.1 cu acesta a funcționat suficient. bine să rulați atât Word, cât și Excel simultan în 8 MB (aceasta era dimensiunea standard a memoriei PC-ului la acel moment). Cu prețurile mari ale memoriei, acesta a fost un factor limitativ.

Succesul Windows a dat impuls proiectului intern al Microsoft numit Windows NT, care era compatibil API cu Windows, dar în același timp avea toate aceleași caracteristici arhitecturale ale unui sistem de operare serios ca și Unix - multitasking, protecție completă a memoriei, suport pentru mașini multiprocesor, drepturi de acces la fișiere și directoare, jurnalul de sistem. Windows NT a introdus, de asemenea, sistemul de fișiere jurnal NTFS, care la acea vreme depășea ca capabilități toate sistemele de fișiere furnizate standard cu Unix - analogii pentru Unix erau doar produse comerciale separate de Veritas și altele.

Deși Windows NT nu a fost popular inițial, datorită cerințelor sale mari de memorie (aceași 16 MB), a permis Microsoft să intre pe piața soluțiilor de server, precum sistemele de gestionare a bazelor de date. Mulți la acea vreme nu credeau în capacitatea Microsoft, specializată în mod tradițional în software desktop, de a fi un jucător pe piața de software pentru întreprinderi, care avea deja propriile nume mari precum Oracle și Sun. La această îndoială s-a adăugat și faptul că DBMS-ul Microsoft - SQL Server - a început ca o versiune simplificată a Sybase. SQL Server, licențiat de la Sybase și compatibil 99% în toate aspectele lucrului cu acesta.

În a doua jumătate a anilor 1990, Microsoft a început să introducă Unix pe piața serverelor corporative.

Combinația factorilor de mai sus, precum și scăderea prețurilor pentru controlerele video 3D, care s-au transformat din echipamente profesionale în echipamente pentru casă, au distrus în esență conceptul de stație de lucru la începutul anilor 2000.

În plus, sistemele Microsoft sunt mai ușor de gestionat, mai ales în cazurile de utilizare obișnuite.

Dar în în acest moment a început a treia ascensiune bruscă a Unix.

În plus, Stallman și tovarășii săi erau conștienți de faptul că instrumentele de dezvoltare proprietare nu erau potrivite pentru succesul software-ului non-corporat. Prin urmare, au dezvoltat un set de compilatoare pentru diferite limbaje de programare (gcc), care, împreună cu utilitarele GNU dezvoltate anterior (înlocuind utilitarele standard Unix), au constituit un pachet software necesar și destul de puternic pentru dezvoltator.

Un concurent serios pentru Linux la acea vreme era FreeBSD, cu toate acestea, stilul „catedral” de gestionare a dezvoltării, spre deosebire de stilul „bazar” al Linux, precum și un arhaism tehnic mult mai mare în probleme precum suportul pentru mașini multiprocesoare și fișiere executabile. formate, a încetinit foarte mult dezvoltarea FreeBSD în comparație cu Linux, făcându-l pe acesta din urmă nava amiral a lumii software-ului liber.

Ulterior, Linux a atins noi și noi culmi:

  • transfer de produse brevetate serioase, cum ar fi Oracle;
  • Interesul serios al IBM pentru acest ecosistem ca bază pentru soluțiile sale verticale;
  • apariția analogilor aproape tuturor programelor familiare din lumea Windows;
  • refuzul unor producători de echipamente de a solicita preinstalarea Windows;
  • lansarea de netbook-uri numai cu Linux;
  • utilizați ca nucleu în Android.

În prezent, Linux este un sistem de operare meritat popular pentru servere, deși mult mai puțin popular pe desktop-uri.

Câteva caracteristici arhitecturale ale sistemului de operare Unix

Caracteristicile Unix care disting această familie de alte sisteme de operare sunt prezentate mai jos.

  • Sistemul de fișiere este bazat pe arbore, diferențiază majuscule și minuscule în nume și există restricții foarte slabe privind lungimea numelor și a căilor.
  • Nu există suport pentru fișierele structurate de către nucleul sistemului de operare la nivel de apel de sistem, un fișier este un flux de octeți;
  • Linia de comandă se află în spațiul de adresă al procesului lansat și nu este preluată de un apel de sistem de la procesul interpretului de comenzi (cum se întâmplă, de exemplu, în RSX-11).
  • Conceptul de „variabile de mediu”.
  • Pornirea proceselor prin apelarea fork(), adică capacitatea de a clona procesul curent cu întreaga stare.
  • Concepte stdin/stdout/stderr.
  • I/O este doar prin descriptori de fișiere.
  • În mod tradițional, suport extrem de slab pentru I/O asincron, în comparație cu VMS și Windows NT.
  • Interpretul de comenzi este o aplicație obișnuită care comunică cu nucleul folosind apeluri de sistem obișnuite (în RSX-11 și VMS, interpretul de comenzi a fost executat ca aplicație specială, special plasat în memorie, folosind apeluri de sistem speciale au fost de asemenea suportate, permițând unei aplicații să acceseze interpretul de comandă părinte);
  • O comandă în linia de comandă nu este altceva decât un nume de fișier de program; nu este necesară o înregistrare specială sau o dezvoltare specială a programelor (ceea ce era o practică comună în RSX-11, RT-11).
  • Abordarea cu un program care pune întrebări utilizatorului despre modurile sale de operare nu este acceptată, sunt utilizați parametrii de linie de comandă (în programele VMS, RSX-11, RT-11 au lucrat și cu; linie de comandă, dar în lipsa acestuia a fost emisă o cerere de introducere a parametrilor).
  • Un spațiu de nume de dispozitiv pe disc în directorul /dev care poate fi gestionat de un administrator, spre deosebire de abordarea Windows în care acest spațiu de nume este situat în memoria kernelului, iar administrarea acestui spațiu (de exemplu, setarea drepturilor de acces) este extrem de dificilă din cauza lipsei de stocare permanentă a acestuia pe discuri (construit de fiecare dată când porniți).
  • Utilizarea extensivă a fișierelor text pentru a stoca setările, spre deosebire de o bază de date binară de setări, cum ar fi în Windows.
  • Utilizarea pe scară largă a utilităților de procesare a textului pentru a efectua sarcini de zi cu zi sub controlul scriptului.
  • „Promovarea” sistemului de operare după încărcarea nucleului prin executarea de scripturi cu un interpret de comandă standard.
  • Folosit pe scară largă

Scurte informații despre dezvoltarea sistemului de operare UNIX

Sistemul de operare UNIX a apărut la sfârșitul anilor 60 ca sistem de operare pentru minicalculatorul PDP-7. Kenneth Thomson și Dennis Ritchie au luat parte activ la dezvoltare.

Caracteristicile sistemului de operare UNIX includ: modul multi-utilizator, noua arhitectură de sistem de fișiere etc.

În 1973, cea mai mare parte a nucleului OS a fost rescris în noul limbaj C.

Din 1974, sistemul de operare UNIX a fost distribuit în cod sursă la universitățile din Statele Unite.

versiuni UNIX

De la începutul răspândirii UNIX în universități americane Au început să apară diferite versiuni ale sistemului de operare.

Pentru a eficientiza, AT&T în 1982 a combinat mai multe versiuni într-una singură și a numit versiunea OS System III. O versiune comercială, System V, a fost lansată în 1983. În 1993, AT&T și-a vândut drepturile UNIX către Novell, care apoi le-a vândut consorțiului X/Open și Santa Cruz Operation (SCO).

O altă linie de sistem de operare UNIX, BSD, este în curs de dezvoltare la Universitatea din California (Berkeley). Există versiuni gratuite de FreeBSD și OpenBSD.

Familia OSF/1 - Open Software Foundation - include sisteme de operare din consorțiul IBM, DEC și Hewlett Packard. Sistemele de operare ale acestei familii includ HP-UX, AIX, Digital UNIX.

Versiuni gratuite ale sistemelor de operare UNIX

Există un număr mare de versiuni gratuite de UNIX.

FreeBSD, NetBSD, OpenBSD– opțiuni dezvoltate pe baza sistemului de operare BSD.

Cea mai populară familie de sisteme UNIX libere este familia de sisteme Linux. Prima variantă de Linux a fost dezvoltată de Linus Torvalds în 1991. În prezent, există mai multe variante Linux: Red Hat, Mandrake, Slackware, SuSE, Debian.

Caracteristicile generale ale sistemelor UNIX

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

Multiprogramare în timp partajat bazată pe multitasking preventiv;

Suport pentru modul multi-utilizator;

Utilizarea mecanismelor memorie virtualăși schimbul;

Sistem de fișiere ierarhic;

Unificarea operațiunilor de intrare/ieșire pe baza utilizării extinse a conceptului de fișier;

Portabilitatea sistemului;

Disponibilitatea mijloacelor de interacțiune din rețea.

Avantajele sistemelor UNIX

Avantajele familiei de sisteme de operare UNIX includ:



Portabilitate;

Implementarea eficientă a multitasking-ului;

Deschidere;

Disponibilitate și respectarea strictă a standardelor;

Sistem de fișiere unificat;

Limbajul de comandă puternic;

Prezența unui număr semnificativ produse software;

Implementarea stivei de protocoale TCP/IP;

Abilitatea de a lucra ca server sau statie de lucru.

Servere bazate pe UNIX

Serverul este un computer care prelucrează solicitările de la alte computere din rețea și oferă propriile resurse pentru stocarea, procesarea și transmiterea datelor. Un server care rulează UNIX poate îndeplini următoarele roluri:

server de fișiere;

server web;

server de mail;

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

Servere de servicii Web auxiliare (DNS, DHCP);

Server de acces la internet

Gestionarea unui computer UNIX

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

O sesiune de lucru începe prin introducerea unui nume de conectare și a unei parole de acces

Adesea, pentru a rezolva problemele de gestionare a serverului, acestea sunt limitate la modul de operare de comandă. În acest caz, controlul se realizează prin introducerea de comenzi speciale în linia de comandă într-un format special. Linia de comandă are un prompt special, de exemplu:

Vedere generală a comenzii:

  1. -bash-2.05b$ comanda [opțiuni] [opțiuni]

De exemplu, apelarea ajutorului pentru sistemul de operare arată astfel:

  1. -bash-2.05b$ man [chei] [subiect]
  2. Pentru ajutor la utilizarea comenzii man, tastați
  3. -bash-2.05b$ man om

Interpretarea liniei de comandă

Următoarele convenții sunt utilizate la introducerea comenzilor:

Primul cuvânt de pe linia de comandă este numele comenzii;

Cuvintele rămase sunt argumente.

Printre argumente sunt evidențiate taste (opțiuni) - cuvinte (simboluri) predefinite pentru fiecare comandă, începând cu una (format scurt) sau o pereche de cratime (format lung). De exemplu:

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

Bash-2.05b$ tar - -create - -file=arch.tar *.c

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

Bash-2.05b$ ls –a –l

Bash-2.05b$ ls –l –a

Bash-2,05b$ ls –al

Alte argumente indică obiectele asupra cărora sunt efectuate operațiunile.

Variabile Shell

Când lucrați în sistem, există o modalitate de a transmite parametri programelor, pe lângă utilizarea comutatoarelor de shell de comandă, - folosind variabile de mediu. Pentru a seta o variabilă de mediu, utilizați comanda set. Format de comandă:

Bash-2.05b$ set variable_name=valoare

Eliminarea unei variabile de mediu se face cu comanda unset.

Pentru a accesa valoarea unei variabile, utilizați notația $variable_name, de exemplu comanda:

Bash-2.05b$ echo $PATH

Imprimă valoarea variabilei PATH.

Ce este Unix (pentru începători)


Dmitri Y. Karpov


Despre ce vorbesc?


Acest opus nu pretinde a fi o descriere completă. Mai mult, de dragul simplității, unele detalii au fost omise în mod deliberat. La început, ciclul a fost conceput ca un Întrebări frecvente (FAQ - întrebări frecvente), dar se pare că se va dovedi a fi un „Curs de tânăr soldat” sau „Școala de sergenți”.

Am încercat să fac o descriere comparativă a diferitelor sisteme de operare- tocmai asta lipseste, dupa parerea mea, din majoritatea manualelor si manualelor tehnice.

Fără a aștepta expunerea de la „oizi” Unix cu experiență, fac o mărturisire voluntară - nu pot pretinde că sunt un mare expert Unix și cunoștințele mele sunt în principal despre FreeBSD. Sper că acest lucru nu interferează.

Acest fișier va rămâne în starea „în construcție” pentru o perioadă lungă de timp. :-)

Ce este Unix?


Unix este un sistem de operare cu drepturi depline, nativ multi-utilizator, multi-tasking și cu mai multe terminale. Mai precis, aceasta este o întreagă familie de sisteme, aproape în întregime prieten compatibil cu un prieten la nivel de coduri sursă de program.

Ce tipuri de Unix există și pe ce mașini rulează?


Această listă nu se pretinde a fi completă, deoarece în plus față de cele enumerate, există multe Unix-uri și sisteme asemănătoare Unix-urilor mai puțin obișnuite, ca să nu mai vorbim de Unix-uri antice pentru mașinile învechite.

În mod convențional, putem distinge familiile System V și Berkeley. System V (a se citi „System Five”) are mai multe variante, cea mai recentă, din câte știu eu, este System V Release 4. Universitatea Berkeley este renumită nu numai pentru dezvoltarea BSD, ci și pentru majoritatea protocoalelor de Internet. Cu toate acestea, multe Unix combină proprietățile ambelor sisteme.

De unde pot obține Unix gratuit?


  • Familia BSD: FreeBSD, NetBSD, OpenBSD.
  • Familia Linux: RedHat, SlackWare, Debian, Caldera,
  • SCO și Solaris sunt disponibile gratuit pentru uz necomercial (în principal pentru instituţiile de învăţământ).

    Care sunt principalele diferențe dintre Unix și alte sisteme de operare?


    Unix constă dintr-un nucleu cu drivere și utilitare incluse (programe externe nucleului). Dacă trebuie să modificați configurația (adăugați un dispozitiv, schimbați un port sau întrerupeți), atunci nucleul este reconstruit (legat) din modulele obiect sau (de exemplu, în FreeBSD) din surse. /* Acest lucru nu este în întregime adevărat. Unii parametri pot fi corectați fără reconstrucție. Există, de asemenea, module de nucleu care se pot încărca. */

    Spre deosebire de Unix, Windows (dacă nu este specificat care dintre ele, atunci ne referim la 3.11, 95 și NT) și OS/2 de fapt leagă driverele în timpul încărcării. În același timp, compactitatea nucleului asamblat și reutilizarea codului comun sunt cu un ordin de mărime mai mici decât în ​​Unix. În plus, cu configurația sistemului neschimbată, kernel-ul Unix poate fi scris în ROM fără modificare (doar partea de pornire a BIOS-ului trebuie schimbată) și executat fără a fi. încărcat în RAM. Compactitatea codului este deosebit de importantă, deoarece nucleul și driverele nu părăsesc memoria RAM fizică.

    Unix este cel mai multiplatform OS. WindowsNT încearcă să-l imite, dar până acum nu a avut succes - după abandonarea MIPS și POWER-PC, W"NT a rămas doar pe două platforme - tradiționalul i*86 și DEC Alpha. Desigur, portabilitatea lui programe de la o versiune de Unix la alta este limitată un program scris care nu ia în considerare diferențele în implementările Unix, facând presupuneri nerezonabile precum „o variabilă întreagă trebuie să ocupe patru octeți”, poate necesita o reluare serioasă ordine de mărime mai ușor decât, de exemplu, trecerea de la OS/2 la NT.

    De ce Unix?


    Unix este folosit atât ca server, cât și ca stație de lucru. În categoria serverelor, concurează cu MS WindowsNT, Novell Netware, IBM OS/2 Warp Connect, DEC VMS și sisteme de operare mainframe. Fiecare sistem are propriul său domeniu de aplicare în care este mai bun decât altele.

  • WindowsNT - pentru administratorii care preferă o interfață familiară utilizării economice a resurselor și performanțe ridicate.
  • Netware - pentru rețele în care sunt necesare servicii de fișiere și imprimantă de înaltă performanță, iar alte servicii nu sunt atât de importante. Principalul dezavantaj- Este dificil să rulați aplicații pe un server Netware.
  • OS/2 este bun acolo unde aveți nevoie de un server de aplicații „ușor”. Necesită mai puține resurse decât NT, este mai flexibil în management (deși poate fi mai dificil de configurat), iar multitasking-ul este foarte bun. Autorizarea și diferențierea drepturilor de acces nu sunt implementate la nivelul sistemului de operare, ceea ce este mai mult decât compensat prin implementarea la nivelul aplicației server. (Cu toate acestea, alte sisteme de operare fac adesea același lucru). Multe stații FIDOnet și BBS-uri sunt bazate pe OS/2.
  • VMS este un server de aplicații puternic, deloc inferior Unix (și în multe privințe superior acestuia), ci doar pentru platformele VAX și Alpha ale DEC.
  • Mainframe - pentru deservirea unui număr foarte mare de utilizatori (de ordinul a câteva mii). Dar munca acestor utilizatori este de obicei organizată nu ca o interacțiune client-server, ci ca una gazdă-terminal. Terminalul din această pereche este mai probabil să nu fie un client, ci un server (Internet World, N3, 1996). Avantajele mainframe-urilor includ securitate mai mare și rezistență la defecțiuni, iar dezavantajele sunt prețul corespunzător acestor calități.

    Unix este bun pentru un administrator calificat (sau dispus să devină unul) deoarece... necesită cunoașterea principiilor de funcționare a proceselor care au loc în ea. Multitasking real și partajarea strictă a memoriei asigură o fiabilitate ridicată a sistemului, deși serviciile de fișiere și imprimare ale Unix sunt inferioare Netware în performanța serviciilor de fișiere și imprimare.

    Lipsa flexibilității în acordarea drepturilor de acces utilizatorilor la fișiere în comparație cu WindowsNT face dificilă organizarea accesului _la_sistemul_de_fișiere_ la date (mai precis, la fișiere), ceea ce, după părerea mea, este compensat de ușurința de implementare, ceea ce înseamnă un hardware mai redus. cerințe. Cu toate acestea, aplicații precum SQL server rezolvă problema accesului la datele de grup de la sine, astfel încât capacitatea, care lipsește în Unix, de a refuza accesul la un _fișier_ unui anumit utilizator, după părerea mea, este în mod clar redundantă.

    Aproape toate protocoalele pe care se bazează Internetul au fost dezvoltate sub Unix, în special stiva de protocoale TCP/IP a fost inventată la Universitatea din Berkeley.

    Securitatea Unix atunci când este administrată corect (și când nu este?) nu este în niciun fel inferioară nici Novell, nici WindowsNT.

    O proprietate importantă a Unix, care îl aduce mai aproape de mainframe, este natura sa cu mai multe terminale, mulți utilizatori pot rula simultan programe pe o singură mașină Unix. Dacă nu aveți nevoie să utilizați grafică, vă puteți descurca cu terminale text ieftine (specializate sau bazate pe PC-uri ieftine) conectate prin linii lente. În acest sens, doar VMS concurează cu acesta. De asemenea, puteți utiliza terminale grafice X atunci când același ecran conține ferestre ale proceselor care rulează pe mașini diferite.

    La categoria stații de lucru, MS Windows*, IBM OS/2, Macintosh și Acorn RISC-OS concurează cu Unix.

  • Windows - pentru cei care prețuiesc compatibilitatea în detrimentul eficienței; pentru cei care sunt gata să cumpere o cantitate mare de memorie, spațiu pe disc și megaherți; pentru cei cărora le place să dea clic pe butoanele din fereastră fără a pătrunde în esență. Adevărat, mai devreme sau mai târziu va trebui să studiați în continuare principiile de funcționare ale sistemului și protocoalelor, dar atunci va fi prea târziu - alegerea a fost făcută. Important avantajul Windows Trebuie să admitem și posibilitatea de a fura o grămadă de software.
  • OS/2 - pentru iubitorii de OS/2. :-) Deși, conform unor informații, OS/2 interacționează mai bine cu mainframe-urile și rețelele IBM decât altele.
  • Macintosh - pentru lucrări grafice, de publicare și muzicale, precum și pentru cei care iubesc o interfață clară, frumoasă și nu doresc (nu pot) înțelege detaliile funcționării sistemului.
  • RISC-OS, flashat în ROM, vă permite să evitați pierderea timpului instalând sistemul de operare și restabilindu-l după defecțiuni. În plus, aproape toate programele din cadrul acestuia utilizează resurse foarte economic, datorită cărora nu necesită schimbare și funcționează foarte rapid.

    Unix funcționează atât pe PC-uri, cât și pe stații de lucru puternice cu procesoare RISC cu adevărat puternice, iar sistemele de informații geografice sunt scrise pentru Unix. Scalabilitatea Unix, datorită naturii sale multiplatforme, este cu un ordin de mărime mai mare decât orice alt sistem de operare pe care îl cunosc.

    Concepte Unix


    Unix se bazează pe două concepte de bază: „proces” și „fișier”. Procesele reprezintă latura dinamică a sistemului, sunt subiecte; iar fișierele sunt statice, sunt obiecte ale acțiunilor proceselor. Aproape întreaga interfață a proceselor care interacționează cu nucleul și între ele arată ca fișierele de scriere/citire. /* Deși trebuie să adăugăm lucruri precum semnale, memorie partajată și semafoare. */

    Procesele nu trebuie confundate cu programe - un program (de obicei cu date diferite) poate fi executat în diferite procese. Procesele pot fi împărțite în două tipuri - sarcini și demoni. O sarcină este un proces care își realizează munca, încercând să o termine rapid și să fie finalizată. Daemonul așteaptă procesarea evenimentelor, procesează evenimentele care au avut loc și așteaptă din nou; de obicei, se termină la ordinele unui alt proces, cel mai adesea este ucis de utilizator dând comanda „kill process_number”. /* În acest sens, se dovedește că o sarcină interactivă care procesează intrarea utilizatorului este mai mult ca un demon decât o sarcină. :-) */

    Sistem de fișiere


    În vechile Unix, au fost alocate 14 litere pentru fiecare nume, în cele noi această restricție a fost eliminată Pe lângă numele fișierului, directorul conține identificatorul său de inode - un număr întreg care determină numărul blocului în care se află atributele fișierului. Printre acestea sunt scrise: numărul de utilizator - grupul de numere al fișierului (vezi mai jos), data și ora creării, atributele de acces la fișier; (vezi mai jos), atribute pentru modificarea drepturilor la pornire (vezi mai jos) și drepturi de acces la acesta pentru a citi, scrie și executa dreptul de a scrie directorul de deasupra.

    Fiecare fișier (dar nu director) poate fi cunoscut sub mai multe nume, dar trebuie să fie localizat pe aceeași partiție. Toate linkurile către fișier sunt egale; fișierul este șters atunci când ultimul link către fișier este șters. Dacă fișierul este deschis (pentru citire și/sau scriere), atunci numărul de link-uri către acesta crește cu încă una; atât de multe programe care deschid un fișier temporar îl șterg imediat, astfel încât, în caz de blocare, atunci când sistemul de operare închide fișierele deschise prin proces, acest fișier temporar este șters de sistemul de operare.

    Există o altă caracteristică interesantă a sistemului de fișiere: dacă, după crearea unui fișier, scrierea în acesta nu s-a făcut pe rând, ci la intervale mari, atunci nu este alocat spațiu pe disc pentru aceste intervale. Astfel, volumul total de fișiere dintr-o partiție poate fi mai mare decât volumul partiției, iar atunci când un astfel de fișier este șters, este eliberat mai puțin spațiu decât dimensiunea acestuia.

    Fișierele sunt de următoarele tipuri:

    • fișier obișnuit cu acces direct;
    • director (un fișier care conține numele și identificatorii altor fișiere);
    • link simbolic (un șir cu numele altui fișier);
    • dispozitiv de blocare (disc sau bandă magnetică);
    • dispozitiv serial (terminale, porturi seriale și paralele; discurile și benzile magnetice au, de asemenea, o interfață pentru dispozitive seriale)
    • canal numit.

    Fișierele speciale concepute pentru a funcționa cu dispozitive sunt de obicei localizate în directorul „/dev”. Iată câteva dintre ele (în categoria FreeBSD):

    • tty* - terminale, inclusiv:
      • ttyv - consolă virtuală;
      • ttyd - terminal DialIn (de obicei un port serial);
      • cuaa - linie DialOut
      • ttyp - pseudo-terminal de rețea;
      • tty - terminal cu care este asociată sarcina;
    • wd* - hard disk-uri și subpartițiile acestora, inclusiv:
      • wd - hard disk;
      • wds - partiția acestui disc (denumită aici „slice”);
      • wds - secțiune de partiție;
    • fd - dischetă;
    • rwd*, rfd* - la fel ca wd* și fd*, dar cu acces secvenţial;

    Uneori se cere ca un program lansat de un utilizator să nu aibă drepturile utilizatorului care l-a lansat, ci altele. În acest caz, atributul de modificare a drepturilor este setat la drepturile utilizatorului - proprietarul programului. (De exemplu, voi da un program care citește un fișier cu întrebări și răspunsuri și, pe baza a ceea ce citește, testează studentul care a lansat acest program. Programul trebuie să aibă dreptul de a citi fișierul cu răspunsuri, dar elevul cine a lansat-o nu.) Așa funcționează, de exemplu, programul passwd, cu ajutorul căruia utilizatorul își poate schimba parola. Utilizatorul poate rula programul passwd, poate face modificări în baza de date a sistemului - dar utilizatorul nu poate.

    Spre deosebire de DOS, în care numele complet al fișierului arată ca „unitate:\cale\nume”, și RISC-OS, în care arată ca „-filesystem-drive:$.path.name” (care, în general, are avantajele sale) ,Unix folosește o notație transparentă sub forma „/cale/nume”. Rădăcina este măsurată din partiția din care a fost încărcat nucleul Unix. Dacă vom folosi o altă partiție (și partiția de boot conține de obicei doar elementele esențiale pentru pornire), se folosește comanda `mount /dev/partition_file directory`. În acest caz, fișierele și subdirectoarele care se aflau anterior în acest director devin inaccesibile până când partiția este demontată (în mod firesc, toți oamenii normali folosesc directoare goale pentru a monta partițiile). Numai supraveghetorul are dreptul de a monta și demonta.

    Când este pornit, fiecare proces se poate aștepta să aibă trei fișiere deja deschise pentru el, pe care le cunoaște drept standard de intrare stdin la descriptorul 0; standard stdout pe descriptorul 1; și standard de ieșire stderr pe descriptorul 2. Când se conectează în sistem, când utilizatorul introduce un nume și o parolă și shell-ul este lansat, toate trei sunt direcționate către /dev/tty; mai târziu oricare dintre ele poate fi redirecționat către orice fișier.

    Interpret de comandă


    Unix include aproape întotdeauna două interprete de comenzi - sh (shell) și csh (shell asemănător C). Pe lângă ele, există și bash (Bourne), ksh (Korn) și altele. Fără a intra în detalii, voi da principii generale:

    Toate comenzile, cu excepția schimbării directorului curent, setarea variabilelor de mediu și a operatorilor programare structurată- programe externe. Aceste programe sunt de obicei localizate în directoarele /bin și /usr/bin. Programe administrarea sistemului- în directoarele /sbin și /usr/sbin.

    Comanda constă din numele programului care urmează să fie lansat și argumente. Argumentele sunt separate de numele comenzii și unele de altele prin spații și file. Unele caractere speciale sunt interpretate de shell-ul în sine.

    Puteți lansa mai multe comenzi pe o singură linie de comandă. Echipele pot fi împărțite; (execuția secvențială a comenzilor), & (execuția asincronă simultană a comenzilor), | (execuție sincronă, stdout al primei comenzi va fi alimentat la stdin al celei de-a doua).

    De asemenea, puteți prelua intrare standard dintr-un fișier incluzând „<файл" (без кавычек); можно направить стандартный вывод в файл, используя ">fișier" (fișierul va fi pus la zero) sau ">>fișier" (scrierea se va face până la sfârșitul fișierului). Programul în sine nu va primi acest argument; pentru a ști că intrarea sau ieșirea a fost reatribuită, programul în sine trebuie să efectueze niște gesturi foarte netriviale.

    Manuale - omule


    Dacă trebuie să obțineți informații despre orice comandă, dați comanda „man command_name”. Acest lucru va fi afișat pe ecran prin programul „mai mult” - vedeți cum să îl gestionați pe Unix cu comanda `man more`.

    Documentație suplimentară

  • UNIX- o familie de sisteme de operare portabile, multitasking și multi-utilizator.

    Ideile care stau la baza UNIX au avut un impact uriaș asupra dezvoltării sistemelor de operare pentru computere. În prezent, sistemele UNIX sunt recunoscute ca fiind unul dintre cele mai importante sisteme de operare din punct de vedere istoric.

    Recenzie

    Primul sistem UNIX a fost dezvoltat de divizia Bell Labs a AT&T. De atunci, au fost create un număr mare de sisteme UNIX diferite. Din punct de vedere legal, numai acele sisteme de operare care au fost certificate pentru conformitate cu standardul Single UNIX Specification au dreptul de a fi numite „UNIX”. Restul, deși folosesc concepte și tehnologii similare, sunt numite sisteme de operare asemănătoare UNIX (în engleză UNIX-like). Pentru concizie, în acest articol, sistemele UNIX înseamnă atât sisteme de operare UNIX adevărate, cât și sisteme de operare asemănătoare UNIX.

    Particularități

    Principala diferență dintre sistemele de tip UNIX și alte sisteme de operare este că acestea sunt în mod inerent sisteme multi-utilizator, multi-tasking. Adică, în același moment, mulți oameni pot efectua mai multe sarcini de calcul (procese) simultan. Nici măcar sistemul Microsoft Windows, care este popular în întreaga lume, nu poate fi numit un sistem multi-utilizator cu drepturi depline, deoarece, cu excepția unor versiuni de server, doar o persoană poate lucra pe un computer Windows în același timp. Mulți oameni pot lucra pe Unix simultan și fiecare dintre ei poate efectua multe procese de calcul diferite care vor folosi resursele computerului respectiv.

    Al doilea merit colosal al Unix este natura sa multiplatformă. Miezul sistemului este proiectat astfel încât să poată fi adaptat cu ușurință la aproape orice microprocesor.

    UNIX are alte caracteristici:

    • utilizarea fișierelor text simple pentru a configura și gestiona sistemul;
    • utilizarea pe scară largă a utilităților lansate din linia de comandă;
    • interacțiunea cu utilizatorul printr-un dispozitiv virtual - un terminal;
    • reprezentarea dispozitivelor fizice și virtuale și a unor instrumente de comunicare interprocese sub formă de fișiere;
    • folosind conducte de mai multe programe, fiecare dintre ele efectuând o sarcină.

    Aplicație

    În prezent, sistemele UNIX sunt distribuite în principal între servere, dar și ca sisteme încorporate pentru diverse echipamente. Printre sistemele de operare pentru stații de lucru și uz casnic Sistemele de operare UNIX și UNIX ocupă locul al doilea (macOS), al treilea (GNU/Linux) și multe locuri ulterioare în popularitate după Microsoft Windows.

    Poveste

    Predecesorii

    Primele versiuni ale UNIX au fost scrise în limbaj de asamblare și nu aveau un compilator de limbaj de nivel înalt încorporat. În jurul anului 1969, Ken Thompson, cu asistența lui Dennis Ritchie, a dezvoltat și implementat limbajul Bi (B), care era o versiune simplificată (pentru implementare pe minicalculatoare) a limbajului BCPL dezvoltat în limbaj. Bi, la fel ca BCPL, era un limbaj interpretat. A fost lansat în 1972 a doua editie UNIX rescris în limbaj Bi. În 1969-1973 Pe baza Bi, a fost dezvoltat un limbaj compilat, numit C (C).

    Despică

    Un motiv important pentru divizarea UNIX a fost implementarea stivei de protocoale TCP/IP în 1980. Înainte de aceasta, comunicarea de la mașină la mașină în UNIX era la început - cea mai importantă metodă de comunicare era UUCP (un mijloc de copiere a fișierelor de la un sistem UNIX la altul, care funcționează inițial prin rețele telefonice folosind modemuri).

    Au fost propuse două interfețe de programare a aplicațiilor de rețea: socket-uri Berkley și TLI (Transport Layer Interface).

    Interfața socket-urilor Berkley a fost dezvoltată la Universitatea din Berkeley și a folosit stiva de protocoale TCP/IP dezvoltată acolo. TLI a fost creat de AT&T conform definiției stratului de transport a modelului OSI și a apărut pentru prima dată în System V versiunea 3. Deși această versiune conținea TLI și fluxuri, inițial nu a avut o implementare a TCP/IP sau a altor protocoale de rețea, dar astfel de implementările au fost furnizate de terți.

    Implementarea TCP/IP a fost inclusă oficial și în cele din urmă în distribuția de bază a System V versiunea 4. Acest lucru, împreună cu alte considerente (în mare parte cele de piață), a determinat demarcarea finală între cele două ramuri ale UNIX - BSD (Berkeley University) și System V (versiunea comercială de la AT&T). Ulterior, multe companii, care au licențiat System V de la AT&T, și-au dezvoltat propriile soiuri comerciale de UNIX, cum ar fi AIX, CLIX, HP-UX, IRIX, Solaris.

    Implementările UNIX moderne nu sunt în general sisteme V sau BSD pure. Ei implementează funcții atât ale System V, cât și ale BSD.

    Sisteme de operare gratuite asemănătoare UNIX

    În prezent, GNU/Linux și membrii familiei BSD preiau rapid piața de la sistemele comerciale UNIX și pătrund simultan atât în ​​computerele desktop ale utilizatorilor finali, cât și în sistemele mobile și încorporate.

    Sisteme proprietare

    După divizarea AT&T, marca comercială UNIX și drepturile asupra codului sursă original s-au schimbat de mai multe ori, în special, au fost deținute multă vreme de Novell.

    Influența UNIX asupra evoluției sistemelor de operare

    Sistemele UNIX au o mare importanță istorică, deoarece au dat naștere unora dintre conceptele și abordările SO și software care sunt populare astăzi. De asemenea, în timpul dezvoltării sistemelor UNIX, a fost creat limbajul C.

    Folosit pe scară largă în programarea sistemelor, limbajul C, creat inițial pentru dezvoltarea UNIX, a depășit UNIX în popularitate. Limbajul C a fost primul limbaj „tolerant” care nu a încercat să impună un sau altul stil de programare programatorului. C a fost primul limbaj de nivel înalt care a oferit acces la toate capabilitățile procesorului, cum ar fi referințe, tabele, deplasări de biți, incremente etc. Pe de altă parte, libertatea limbajului C a condus la erori de depășire a tamponului în funcțiile bibliotecii standard C. precum gets și scanf. Rezultatul au fost multe vulnerabilități notorii, cum ar fi cea exploatată de faimosul vierme Morris.

    Primii dezvoltatori ai UNIX au ajutat la introducerea principiilor de programare modulară și reutilizare în practica ingineriei.

    UNIX a făcut posibilă utilizarea protocoalelor TCP/IP pe computere relativ ieftine, ceea ce a dus la creșterea rapidă a internetului. Acest lucru, la rândul său, a contribuit la descoperirea rapidă a mai multor vulnerabilități majore în securitatea, arhitectura și utilitățile de sistem UNIX.

    De-a lungul timpului, cei mai importanți dezvoltatori ai UNIX au dezvoltat norme culturale pentru dezvoltarea de software care au devenit la fel de importante ca și UNIX însuși. ( )

    Unele dintre cele mai faimoase exemple de sisteme de operare asemănătoare UNIX sunt macOS, Solaris, BSD și NeXTSTEP.

    Rol social în comunitatea profesioniștilor IT și rol istoric

    UNIX original rula pe computere mari multi-utilizator, care ofereau și sisteme de operare proprietare de la producătorul de hardware, cum ar fi RSX-11 și VMS-ul său descendent. În ciuda faptului că, potrivit unui număr de opinii [ cui?] UNIX-ul de atunci avea dezavantaje în comparație cu aceste sisteme de operare (de exemplu, lipsa unor motoare serioase de baze de date), era: a) mai ieftin și uneori gratuit pentru instituțiile academice b) era portabil de la echipament la echipament și dezvoltat în C portabil. limbaj, care „decupla” dezvoltarea programelor de echipamente specifice. În plus, experiența utilizatorului s-a dovedit a fi „decuplată” de hardware și producător - o persoană care a lucrat cu UNIX pe VAX ar putea lucra cu ușurință cu acesta pe 68xxx și așa mai departe.

    Producătorii de hardware la acea vreme aveau adesea o atitudine cool față de UNIX, considerându-l o jucărie și oferindu-și sistemul de operare proprietar pentru muncă serioasă - în primul rând DBMS și aplicații de afaceri bazate pe acestea în structuri comerciale. Există comentarii cunoscute cu privire la această problemă din partea DEC cu privire la VMS-ul său. Corporațiile au ascultat acest lucru, dar nu mediul academic, care avea tot ce avea nevoie în UNIX, de multe ori nu necesita sprijin oficial din partea producătorului, se gestiona singur și apreciau costul scăzut și portabilitatea UNIX. Astfel, UNIX a fost probabil primul sistem de operare portabil pe hardware diferit.

    A doua ascensiune dramatică a UNIX a fost apariția procesoarelor RISCîn jurul anului 1989. Chiar și înainte de asta, existau așa-zise. stații de lucru - computere personale de mare putere pentru un singur utilizator, cu memorie suficientă, hard diskși un sistem de operare suficient de dezvoltat (multitasking, protecție a memoriei) pentru a lucra cu aplicații serioase, cum ar fi CAD. Printre producătorii de astfel de mașini, Sun Microsystems s-a remarcat, făcându-și un nume pe ele.

    Înainte de apariția procesoarelor RISC, aceste stații foloseau de obicei un procesor Motorola 680x0, la fel ca în computerele Apple (deși cu un sistem de operare mai avansat decât cel al Apple). În jurul anului 1989, au apărut pe piață implementări comerciale ale procesoarelor cu arhitectură RISC. Decizia logică a unui număr de companii (Sun și altele) a fost de a porta UNIX la aceste arhitecturi, ceea ce a presupus imediat transferul întregului ecosistem software pentru UNIX.

    Sistemele de operare serioase proprietare, precum VMS, și-au început declinul tocmai din acest moment (chiar dacă era posibil să se transfere sistemul de operare în sine în RISC, totul a fost mult mai complicat cu aplicații pentru acesta, care în aceste ecosisteme erau adesea dezvoltate în asamblare sau în limbaje proprietare precum BLISS), iar UNIX a devenit sistemul de operare pentru cele mai puternice computere din lume.

    Cu toate acestea, în acest moment ecosistem a început să treacă la GUI reprezentat de Windows 3.0. Avantajele enorme ale GUI, precum și, de exemplu, suportul unificat pentru toate tipurile de imprimante, au fost apreciate atât de dezvoltatori, cât și de utilizatori. Acest lucru a subminat foarte mult poziția UNIX pe piața PC-urilor - implementări precum SCO și Interactive UNIX nu au putut să suporte aplicații Windows. În ceea ce privește interfața grafică pentru UNIX, numită X11 (au existat și alte implementări, mult mai puțin populare), nu a putut funcționa pe deplin pe un computer de utilizator obișnuit din cauza cerințelor de memorie - pentru funcționarea normală, X11 necesita 16 MB, în timp ce Windows 3.1 cu acesta a funcționat suficient. bine să rulați atât Word, cât și Excel simultan în 8 MB (aceasta era dimensiunea standard a memoriei PC-ului la acel moment). Cu prețurile mari ale memoriei, acesta a fost un factor limitativ.

    Succesul Windows a dat impuls proiectului intern al Microsoft numit Windows NT, care era compatibil API cu Windows, dar în același timp avea toate aceleași caracteristici arhitecturale ale unui sistem de operare serios ca UNIX - multitasking, protecție completă a memoriei, suport pentru mașini multiprocesor, drepturi de acces la fișiere și directoare, jurnalul de sistem. Windows NT a introdus, de asemenea, sistemul de fișiere jurnal NTFS, care la acea vreme depășea ca capabilități toate sistemele de fișiere furnizate standard cu UNIX - analogii pentru UNIX erau doar produse comerciale separate de Veritas și altele.

    Deși Windows NT nu a fost popular inițial, datorită cerințelor sale mari de memorie (aceași 16 MB), a permis Microsoft să intre pe piața soluțiilor de server, precum sistemele de gestionare a bazelor de date. Mulți la acea vreme nu credeau în capacitatea Microsoft, specializată în mod tradițional în software desktop, de a fi un jucător pe piața de software pentru întreprinderi, care avea deja propriile nume mari precum Oracle și Sun. La această îndoială s-a adăugat și faptul că Microsoft DBMS - SQL Server - a început ca o versiune simplificată a Sybase SQL Server, licențiată de la Sybase și 99% compatibilă în toate aspectele lucrului cu acesta.

    În a doua jumătate a anilor 1990, Microsoft a început să introducă UNIX pe piața serverelor corporative.

    Combinația factorilor de mai sus, precum și scăderea prețurilor pentru controlerele video 3D, care s-au transformat din echipamente profesionale în echipamente pentru casă, au distrus în esență conceptul de stație de lucru la începutul anilor 2000.

    În plus, sistemele Microsoft sunt mai ușor de gestionat, mai ales în cazurile de utilizare obișnuite.

    Dar în acest moment a început a treia ascensiune bruscă a UNIX.

    În plus, Stallman și tovarășii săi, pe deplin conștienți de faptul că succesul software-ului non-corporat necesită instrumente de dezvoltare neproprietate, au dezvoltat un set de compilatoare pentru diferite limbaje de programare (gcc), care, împreună cu utilitarele GNU dezvoltate anterior ( înlocuind utilitarele standard UNIX) a compilat un pachet software necesar și destul de puternic pentru un dezvoltator.

    Un concurent serios pentru Linux la acea vreme era FreeBSD, cu toate acestea, stilul „catedral” de gestionare a dezvoltării, spre deosebire de stilul „bazar” al Linux, precum și un arhaism tehnic mult mai mare în probleme precum suportul pentru mașini multiprocesoare și fișiere executabile. formate, a încetinit foarte mult dezvoltarea FreeBSD în comparație cu Linux, făcându-l pe acesta din urmă nava amiral a lumii software-ului liber.

    Ulterior, Linux a atins noi și noi culmi:

    • transfer de produse brevetate serioase, cum ar fi Oracle;
    • Interesul serios al IBM pentru acest ecosistem ca bază pentru soluțiile sale verticale;
    • apariția analogilor aproape tuturor programelor familiare din lumea Windows;
    • refuzul unor producători de echipamente de a solicita preinstalarea Windows;
    • lansarea de netbook-uri numai cu Linux;
    • utilizați ca nucleu în Android.

    În prezent, Linux este un sistem de operare meritat popular pentru servere, deși mult mai puțin popular pe desktop-uri.

    Câteva caracteristici arhitecturale ale sistemului de operare UNIX

    Caracteristicile UNIX care disting această familie de alte sisteme de operare sunt prezentate mai jos.

    • Sistemul de fișiere este bazat pe arbore, diferențiază majuscule și minuscule în nume și există restricții foarte slabe privind lungimea numelor și a căilor.
    • Nu există suport pentru fișierele structurate de către nucleul sistemului de operare la nivel de apel de sistem, un fișier este un flux de octeți;
    • Linia de comandă se află în spațiul de adresă al procesului lansat și nu este preluată de un apel de sistem de la procesul interpretului de comenzi (cum se întâmplă, de exemplu, în RSX-11).
    • Conceptul de „variabile de mediu”.
    • Pornirea proceselor prin apelarea fork(), adică capacitatea de a clona procesul curent cu întreaga stare.
    • Concepte stdin/stdout/stderr.
    • I/O numai prin descriptori de fișiere.
    • În mod tradițional, suport extrem de slab pentru I/O asincron, în comparație cu VMS și Windows NT.
    • Un interpret de comandă este o aplicație obișnuită care comunică cu nucleul utilizând apeluri de sistem obișnuite (în RSX-11 și VMS, interpretul de comenzi a fost executat ca o aplicație specială, situată special în memorie, folosind apeluri de sistem speciale; apelurile de sistem au fost, de asemenea, acceptate, permițând aplicației să acceseze comenzile interpretului părinte).
    • O comandă în linia de comandă nu este altceva decât un nume de fișier de program; nu este necesară o înregistrare specială sau o dezvoltare specială a programelor (ceea ce era o practică comună în RSX-11, RT-11).
    • Abordarea cu un program care pune întrebări utilizatorului despre modurile sale de operare nu este acceptată, se folosesc parametrii de linie de comandă (în VMS, RSX-11, RT-11, programele au funcționat și cu linia de comandă, dar în lipsa acesteia; au solicitat introducerea parametrilor).
    • Un spațiu de nume de dispozitiv de disc în directorul /dev care poate fi gestionat de administrator, spre deosebire de abordarea Windows, unde spațiul de nume este situat în memoria kernelului, iar administrarea acestui spațiu (de exemplu, setarea drepturilor de acces) este extrem de dificilă din cauza la lipsa stocării permanente a acestuia pe discuri (construit de fiecare dată când porniți).
    • Utilizarea extensivă a fișierelor text pentru a stoca setările, spre deosebire de o bază de date binară de setări, cum ar fi în Windows.
    • Utilizarea pe scară largă a utilităților de procesare a textului pentru a efectua sarcini de zi cu zi sub controlul scriptului.
    • „Promovarea” sistemului de operare după încărcarea nucleului prin executarea de scripturi cu un interpret de comandă standard.
    • Utilizarea pe scară largă a conductelor denumite.
    • Toate procesele, cu excepția init, sunt egale între ele; nu există „procese speciale”.
    • Spațiul de adrese este împărțit într-un nucleu global pentru toate procesele și o parte locală a procesului, nu există o parte „grup” a spațiului de adrese, ca în VMS și Windows NT, precum și capacitatea de a încărca codul și de a-l executa; Acolo.
    • Folosind două niveluri de privilegii de procesor în loc de patru în VMS.
    • Refuzul de a folosi suprapuneri în favoarea împărțirii programului în mai multe programe mai mici care comunică prin conducte numite sau fișiere temporare.
    • Absența APC și a analogilor, adică a semnalelor arbitrare (și nu listate strict într-un set standard) care nu sunt livrate la dorința explicită a procesului de a le primi (Windows, VMS).
    • Conceptul de semnal este unic pentru UNIX și este extrem de dificil de portat către alte sisteme de operare, cum ar fi Windows.

    Standarde

    Cantitate mare Diferitele variante ale sistemului UNIX au dus la necesitatea standardizării instrumentelor sale pentru a simplifica portabilitatea aplicațiilor și a scuti utilizatorul de nevoia de a învăța caracteristicile fiecărei versiuni de UNIX.

    În acest scop, grupul de utilizatori /usr/group a fost creat în 1980. Primele standarde au fost dezvoltate în 1984-1985.

    Unul dintre cele mai vechi standarde a fost System V Interface Definition (SVID), lansat de UNIX System Laboratories (USL) simultan cu UNIX System V Release 4. Totuși, acest document nu a devenit oficial.

    Alături de versiunile UNIX System V, a existat o direcție UNIX BSD. Pentru a asigura compatibilitatea între System V și BSD, au fost create grupuri de lucru POSIX ( P ortable O perating S sistem eu interfață pentru UNI X). Există multe standarde POSIX, dar cel mai cunoscut este POSIX 1003.1-1988, care definește Interfața de Programare a Aplicațiilor (API). Este folosit nu numai în UNIX, ci și în alte sisteme de operare. (

    Cutie cu nisip

    mreana amuzantă 19 martie 2011 la 23:16

    Prin ce diferă Linux de UNIX și ce este un sistem de operare asemănător UNIX?

    • dulap *
    UNIX
    UNIX (nu merita confundat cu definiția „sistem de operare asemănător UNIX”) - o familie de sisteme de operare (Mac OS X, GNU/Linux).
    Primul sistem a fost dezvoltat în 1969 la Bell Laboratories, o fostă corporație americană.

    Caracteristici distinctive ale UNIX:

    1. Configurare ușoară a sistemului folosind fișiere simple, de obicei text.
    2. Utilizarea pe scară largă a liniei de comandă.
    3. Utilizarea benzilor transportoare.
    În zilele noastre, UNIX este folosit în principal pe servere și ca sistem pentru hardware.
    Este imposibil să nu remarcăm importanța istorică enormă a sistemelor UNIX. Ele sunt acum recunoscute ca unul dintre cele mai importante sisteme de operare din punct de vedere istoric. În timpul dezvoltării sistemelor UNIX, a fost creat limbajul C.

    Variante UNIX pe an

    OS asemănător UNIX
    OS asemănător UNIX (Uneori folosiți abrevierea *nix) - un sistem format sub influența UNIX.

    Cuvântul UNIX este folosit ca marcă de conformitate și ca marcă comercială.

    Consorțiul Open Group deține marca comercială „UNIX”, dar este cel mai bine cunoscut ca autoritate de certificare pentru marca comercială UNIX. Recent, The Open Group a făcut lumină asupra publicării Specificației Unice UNIX, standardele pe care trebuie să le îndeplinească un sistem de operare pentru a fi numit cu mândrie Unix.

    Puteți arunca o privire la arborele genealogic al sistemelor de operare asemănătoare UNIX.

    Linux
    Linux- denumirea generală pentru sistemele de operare bazate pe UNIX care au fost dezvoltate în cadrul proiectului GNU (proiect de dezvoltare software open source). Linux rulează pe o mare varietate de arhitecturi de procesoare, de la ARM la Intel x86.

    Cele mai cunoscute și răspândite distribuții sunt Arch Linux, CentOS, Debian. Există, de asemenea, multe distribuții „interne”, rusești - ALT Linux, ASPLinux și altele.

    Există destul de multă controversă cu privire la denumirea GNU/Linux.
    Susținătorii „open source” folosesc termenul „Linux”, iar susținătorii „software liber” folosesc „GNU/Linux”. Eu prefer prima varianta. Uneori, pentru comoditatea reprezentării termenului GNU/Linux, sunt folosite ortografiile „GNU+Linux”, „GNU-Linux”, „GNU Linux”.

    Spre deosebire de sistemele comerciale (MS Windows, Mac OS X), Linux nu are un centru de dezvoltare geografică și o organizație specifică care deține sistemul. Sistemul în sine și programele pentru acesta sunt rezultatul muncii unor comunități uriașe, a mii de proiecte. Oricine se poate alătura proiectului sau își poate crea propriul proiect!

    Concluzie
    Astfel, am învățat lanțul: UNIX -> UNIX-like OS -> Linux.

    Pentru a rezuma, pot spune că diferențele dintre Linux și UNIX sunt evidente. UNIX este un concept mult mai larg, fundamentul pentru construcția și certificarea tuturor sistemelor de tip UNIX, iar Linux este un caz special al UNIX.

    Etichete: unix, linux, nix, Linux, unix

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

    Nou pe site

    >

    Cele mai populare