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

UNIX a apărut în laboratoarele Bell de la AT&T cu mai bine de 20 de ani în urmă.

UNIX- Acesta este un sistem de operare multi-utilizator, multitasking, care include instrumente destul de puternice pentru protejarea programelor și fișierelor diferiților utilizatori. Este scris în limbaj C și este independent de mașină, ceea ce îi asigură o mobilitate ridicată și o portabilitate ușoară a programelor de aplicație pe PC-uri cu diferite arhitecturi. O caracteristică importantă Sistemul de operare al familiei UNIX este modularitatea și setul extins programe de service, care vă permit să creați un mediu de operare favorabil pentru utilizatori-programatori.

Suportă structură ierarhică a fișierelor, memorie virtuală, interfață cu mai multe ferestre, sisteme multiprocesor, sistem de gestionare a bazelor de date multiutilizator, rețele de computere eterogene.

Sistemul de operare UNIX are următoarele caracteristici principale:

portabilitate;

- multitasking preventiv pe baza proceselor care rulează în spații de adrese izolate în memorie virtuala;

A sustine funcţionare simultană mulți utilizatori;

Suport pentru procese asincrone;

Sistem de fișiere ierarhic;

Suport pentru operațiuni I/O independente de dispozitiv (prin fișiere speciale ale dispozitivului);

Interfață standard pentru programe (canale de programe, IPC) și utilizatori (interpretul de comenzi nu este inclus în nucleul OS);

Utilizarea sistemului de contabilitate încorporat.

Arhitectura UNIX- pe mai multe niveluri. Funcționează la nivelul inferior miez sistem de operare. Funcțiile kernelului (gestionarea proceselor, managementul memoriei, gestionarea întreruperilor etc.) sunt disponibile prin intermediul interfață de apel de sistem, formând al doilea nivel. Apeluri de sistem oferi interfata software pentru a accesa procedurile kernelului. Lucrând la nivelul următor interpreți de comandă , comenzi și utilitare de administrare a sistemului, comunicare șoferiiși protocoale , - tot ceea ce este de obicei denumit programul sistemului . Se formează nivelul exterior programe de aplicație utilizator, rețea și alte servicii de comunicații, DBMS și utilități.

Sistemul de operare îndeplinește două sarcini principale: manipularea datelor și stocarea datelor. Majoritatea programelor manipulează în primul rând datele, dar în cele din urmă acestea sunt stocate undeva. Pe un sistem UNIX, această locație de stocare este Sistemul de fișiere. Mai mult, în UNIX toate dispozitivele cu care funcționează sistemul de operare sunt reprezentate și ca fișiere speciale în sistemul de fișiere.

Sistem de fișiere logic pe sistemul de operare UNIX (sau doar Sistemul de fișiere ) este o structură organizată ierarhic a tuturor directoarelor și fișierelor din sistem, începând cu rădăcină director. Sistemul de fișiere UNIX oferă o interfață unificată pentru accesarea datelor aflate pe diverse medii și la dispozitive periferice. Un sistem de fișiere logic poate consta din unul sau mai multe (sub)sisteme fizice de fișiere, care sunt secțiuni de medii fizice (discuri, CD-ROM-uri sau dischete).


Sistemul de fișiere controlează permisiunile fișierelor, efectuează operațiuni de creare și ștergere a fișierelor și scrie/citește datele fișierului. Sistemul de fișiere asigură redirecționarea solicitărilor adresate dispozitivelor periferice către modulele corespunzătoare ale subsistemului I/O.

Structura ierarhica Sistemul de fișiere UNIX facilitează navigarea. Fiecare director, începând cu rădăcina ( / ), la rândul său, conține fișiere și subdirectoare.

Nu există limite teoretice privind numărul de directoare imbricate în sistemul de operare UNIX, dar există limite privind lungimea maximă a unui nume de fișier care este specificat în comenzi - 1024 de caractere.

Există mai multe tipuri de fișiere în UNIX, care diferă în funcție de funcționalitate:

dosar normal - cel mai general tip de fișier care conține date într-un anumit format. Pentru sistemul de operare, astfel de fișiere sunt pur și simplu o secvență de octeți. Aceste fișiere includ fișiere text, date binare și programe executabile.

Catalog- este un fișier care conține numele fișierelor pe care le conține, precum și indicii către informații suplimentare care permit sistemului de operare să funcționeze pe acele fișiere. Directoarele formează arborele logic al sistemului de fișiere.

Fișier dispozitiv special - Oferă acces la dispozitivele fizice. Dispozitivele sunt accesate prin deschiderea, citirea și scrierea într-un fișier special al dispozitivului.

FIFO - conductă numită. Acest fișier este utilizat pentru comunicarea între procese pe bază de coadă.

priză- vă permit să reprezentați o conexiune de rețea ca fișier.

Fiecare fișier din sistemul de operare UNIX conține un set de permisiuni care determină modul în care utilizatorul interacționează cu fișierul dat.

Toata lumea HDD este format din una sau mai multe părți logice - secțiuni. Locația și dimensiunea partiției sunt determinate atunci când discul este formatat. În UNIX, partițiile acționează ca dispozitive independente care sunt accesate ca și cum ar fi medii de stocare diferite. O secțiune poate conține doar una sistem de fișiere fizic.

Există multe tipuri de sisteme de fișiere fizice, cum ar fi FAT16 și NTFS, cu structuri diferite. În plus, există multe tipuri de sisteme de fișiere fizice UNIX ( ufs, s5fs, ext2, vxfs, jfs, ffs etc.).

Ce este Unix (pentru începători)


Dmitri Y. Karpov


Despre ce vorbesc?


Acest opus nu pretinde a fi complet. Mai mult, de dragul simplității, unele detalii sunt 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 sergentului”.

Am încercat să fac o descriere comparativă a diferitelor sisteme de operare- aceasta este ceea ce, dupa parerea mea, lipseste in 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 cunoscător de Unix, iar cunoștințele mele sunt în principal despre FreeBSD. Sper că acest lucru nu interferează.

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

Ce este Unix?


Unix este un sistem de operare complet, nativ multi-utilizator, multi-tasking și cu mai multe terminale. Mai precis, aceasta este o întreagă familie de sisteme care sunt aproape complet compatibile între ele la nivelul codurilor sursă de programe.

Ce sunt Unix-urile și pe ce mașini rulează?


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

În mod convențional, putem distinge familiile System V și Berkeley. System V (pronunțat „System Five”) are mai multe variante, cea mai recentă din cunoștințele mele fiind System V Release 4. Universitatea Berkeley este renumită nu numai pentru dezvoltarea BSD, ci și pentru majoritatea protocoalelor Internet. Cu toate acestea, multe Unix combină caracteristicile ambelor sisteme.

De unde să obțineți 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ă schimbați configurația (adăugați un dispozitiv, schimbați un port sau întrerupeți), atunci nucleul este reconstruit (reconectat) 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, în Windows (dacă nu este specificat care dintre ele, atunci ne referim la 3.11, 95 și NT) și OS / 2, la încărcare, acestea leagă de fapt driverele din mers. În același timp, compactitatea nucleul asamblat și reutilizarea codului comun sunt cu un ordin de mărime mai mici decât În plus, dacă configurația sistemului rămâne neschimbată, nucleul Unix poate fi scris în ROM și executat _not_booted_ în RAM fără modificare (va fi necesar să se schimbe doar nucleul de pornire). parte a BIOS-ului). Memoria nu este schimbată pe disc.

    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 pe doar două platforme - tradiționalul i * 86 și DEC Alpha. Desigur, portabilitatea programelor de la o versiune de Unix la alta este limitat. Sloppy un program scris care nu ia în considerare diferențele în implementările Unix, făcând presupuneri nerezonabile precum „variabila întreagă ar trebui să ocupe patru octeți”, poate necesita o reluare serioasă, dar este încă multe ordine de mai ușor decât portarea de la OS / 2 la NT, de exemplu.

    De ce Unix?


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

  • WindowsNT este pentru administratorii care preferă o interfață familiară decât economiile de costuri și performanța ridicată.
  • Netware - pentru rețele unde este necesar performanta ridicata serviciile de fișiere și de imprimantă și alte servicii nu sunt atât de importante. Principalul dezavantaj- Este dificil să rulați aplicații pe serverul 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 răsplătit prin implementarea la nivelul serverelor de aplicații. (Cu toate acestea, de multe ori alte sisteme de operare fac același lucru). Multe stații FIDOnet și BBS sunt bazate pe OS/2.
  • VMS este un server de aplicații puternic, în niciun caz inferior celui de la Unix (și în multe privințe superior acestuia), ci doar pentru platformele VAX și Alpha ale DEC.
  • Mainframe - pentru a deservi un număr foarte mare de utilizatori (de ordinul a câteva mii). Dar munca acestor utilizatori este de obicei organizată nu sub forma unei interacțiuni client-server, ci sub forma uneia gazdă-terminal. Terminalul din această pereche nu este mai degrabă un client, ci un server (Internet World, N3 pentru 1996). Avantajele mainframe-urilor includ securitate mai mare și toleranță la erori, iar dezavantajele sunt prețul corespunzător acestor calități.

    Unix este bun pentru administratorul calificat (sau care vrea să fie), deoarece necesită cunoașterea principiilor de funcționare a proceselor care au loc în ea. Multitasking real și partajarea memoriei hard oferă o fiabilitate ridicată a sistemului, deși performanța serviciilor de fișiere și imprimare Unix este inferioară Netware.

    Lipsa flexibilității în acordarea drepturilor de acces utilizatorilor la fișiere în comparație cu WindowsNT face dificilă organizarea accesului de grup la date (mai precis, la fișiere) la nivel de_sistem_de_fișiere, ceea ce, în opinia mea, este compensat de ușurința de implementare, ceea ce înseamnă mai puțin hardware. cerințe. Cu toate acestea, aplicații precum SQL Server rezolvă problema accesului de grup la date pe cont propriu, așa că lipsa capacității Unix de a refuza accesul la un _fișier_ unui anumit utilizator, în opinia 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 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 caracteristică importantă a Unix care îl aduce mai aproape de mainframe este multi-terminalitatea, mulți utilizatori putând rula simultan programe pe aceeași mașină Unix. Dacă nu aveți nevoie să utilizați grafică, vă puteți descurca cu terminale de text ieftine (specializate sau ieftine bazate pe PC) conectate prin linii lente. În acest sens, doar VMS concurează cu acesta. Terminalele grafice X pot fi utilizate și atunci când pe același ecran sunt prezente ferestre ale proceselor care rulează pe mașini diferite.

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

  • Windows - pentru cei care prețuiesc compatibilitatea în detrimentul eficienței; pentru cei dispuși să cumpere un numar mare de memorie, spațiu pe disc și megaherți; pentru cei cărora le place să nu se adâncească în esență, faceți clic pe butoanele din fereastră. Adevărat, mai devreme sau mai târziu mai trebuie să studiezi principiile sistemului și protocoalelor, dar atunci va fi prea târziu - alegerea a fost făcută. Un avantaj important al Windows trebuie, de asemenea, recunoscut ca fiind capacitatea de a fura o grămadă de software.
  • OS/2 - pentru fanii OS/2. :-) Deși, conform unor rapoarte, OS/2 interacționează mai bine decât altele cu mainframe și rețele IBM.
  • Macintosh - pentru lucrări grafice, editoriale și muzicale, precum și pentru cei care iubesc o interfață clară, frumoasă și nu doresc (nu pot) înțelege detaliile sistemului.
  • RISC-OS, flashat în ROM, vă permite să nu pierdeți timpul instalând sistemul de operare și restabilindu-l după defecțiuni. În plus, aproape toate programele din cadrul acestuia utilizează resurse foarte economic, deci nu necesită schimbare și funcționează foarte rapid.

    Unix funcționează atât pe computere, cât și pe stații de lucru puternice cu procesoare RISC; sistemele CAD și sistemele de informații geografice foarte puternice sunt scrise sub Unix. Scalabilitatea Unix, datorită naturii sale multiplatforme, este cu un ordin de mărime superioară oricărui alt sistem de operare pe care îl cunosc.

    Concepte de bază Unix


    Unix se bazează pe două concepte de bază: „proces” și „fișier”. Procesele sunt latura dinamică a sistemului, sunt subiecte; și fișiere - static, acestea sunt obiectele proceselor. Aproape întreaga interfață dintre procesele care interacționează cu nucleul și unele cu altele arată ca scrierea / citirea fișierelor. /* 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 aproximativ în două tipuri - sarcini și demoni. O sarcină este un proces care își face treaba, încercând să o termine cât mai curând posibil și să o finalizeze. Daemonul așteaptă evenimentele pe care trebuie să le proceseze, procesează evenimentele care au avut loc și așteaptă din nou; se termină de obicei la ordinea altui 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ă. :-) */

    Sistemul de fișiere


    În vechile "-uri" Unix, numelui i-au fost atribuite 14 litere, în cele noi această restricție a fost eliminată. Pe lângă numele fișierului, directorul conține identificatorul său de inod - un număr întreg care determină numărul blocului în care se inregistreaza atributele fisierului Printre acestea: numarul utilizatorului - proprietarul fisierului, grupurile de numere Numarul referirilor la fisier (vezi mai jos) Data si ora crearii, ultima modificare si ultimul acces la fisier Atribute de acces Atributele de acces contin fisierul tip (a se vedea mai jos), drepturile modifică atributele la pornire (a se vedea mai jos) și permisiunile de acces la acesta pentru proprietar, coleg de clasă și alții pentru citire, scriere și executare. Dreptul de a șterge un fișier este determinat de dreptul de a scrie pe suprafața director.

    Fiecare fișier (dar nu un director) poate fi cunoscut sub mai multe nume, dar trebuie să fie pe aceeași partiție. Toate linkurile către fișier sunt egale; fișierul este șters atunci când ultima legătură către fișier este eliminată. 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 când prăbușire când sistemul de operare închide fișierele deschise de proces, acest fișier temporar a fost șters de sistemul de operare.

    Există o altă caracteristică interesantă a sistemului de fișiere: dacă, după crearea fișierului, scrierea în acesta nu a fost 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 (fișier care conține numele și identificatorii altor fișiere);
    • link simbolic (șir cu numele altui fișier);
    • dispozitiv de blocare (disc sau bandă magnetică);
    • dispozitiv serial (terminale, porturi seriale și paralele; discurile și benzile au, de asemenea, o interfață pentru dispozitive seriale)
    • canal numit.

    Fișierele speciale pentru lucrul cu dispozitive sunt de obicei localizate în directorul /dev. Iată câteva dintre ele (în nominalizarea 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 - terminalul cu care este asociată sarcina;
    • wd*- hard disk-uriși subsecțiunile acestora, inclusiv:
      • wd - hard disk;
      • wds - partiția acestui disc (numită 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 alte drepturi. Î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 l-a lansat nu ar trebui.) De exemplu, funcționează 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, unde numele complet al fișierului arată ca „drive:\path\name”, și RISC-OS, unde arată ca „-filesystem-drive:$.path.name” (care are, în general, avantajele sale), Unix folosește transparent Notația „/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/partitionfile dir`. În același timp, 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 de a demonta.

    La pornire, fiecare proces se poate aștepta să aibă trei fișiere deschise pentru el, pe care le cunoaște ca standard de intrare standard la descriptorul 0; ieșire standard stdout pe descriptorul 1; și standard de ieșire stderr pe descriptorul 2. Când este conectat, când utilizatorul introduce un nume de utilizator și o parolă și shell-ul este pornit, 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 comenzi


    Unix vine aproape întotdeauna cu două shell-uri, sh (shell) și csh (un shell asemănător C). Pe lângă ele, există și bash (Bourne), ksh (Korn) și altele. Fără a intra în detalii, iată principiile generale:

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

    Comanda constă din numele programului de pornit și argumente. Argumentele sunt separate de numele comenzii și unele de altele prin spații și file. Unele caractere speciale sunt interpretate de către shell în sine. Caracterele speciale sunt " " ` \ ! $ ^ * ? | & ; (ce altceva?).

    unu Linie de comanda pot fi date mai multe comenzi. Echipele pot fi împărțite; (execuție secvențială a comenzii), & (execuția comenzii simultane asincrone), | (execuție sincronă, stdout-ul primei comenzi va fi alimentat stdin-ul celui de-al doilea).

    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 trebuie să ia în sine niște gesturi foarte netriviale.

    Manuale - omule


    Dacă aveți nevoie de informații despre orice comandă, lansați comanda „man command_name”. Aceasta va fi afișată pe ecran prin programul „mai mult” - vezi cum să-l gestionezi pe Unix cu comanda „man more”.

    Documentație suplimentară

  • ), al treilea (GNU/Linux) și multe locuri ulterioare.

    Sistemele UNIX au o mare importanță istorică deoarece au răspândit unele dintre conceptele și abordările care sunt populare astăzi în domeniul OS și al software-ului. De asemenea, în timpul dezvoltării sistemelor Unix, a fost creat limbajul C.

    Exemple de sisteme de operare notabile asemănătoare UNIX includ: BSD, Solaris, Linux, Android, MeeGo, NeXTSTEP, Mac OS X, Apple iOS.

    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 B (B), care era o versiune simplificată (pentru implementare pe minicalculatoare) a limbajului BCPL dezvoltat în limbaj. Bi, ca și BCPL, era un limbaj interpretat. În 1972, a fost lansată a doua ediție a UNIX, rescrisă în limbajul B. În 1969-1973, a fost dezvoltat un limbaj compilat bazat pe B, numit C (C).

    Despică

    Un motiv important pentru divizarea în UNIX a fost implementarea în 1980 a stivei de protocoale TCP/IP. Î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-urile Berkley și interfața stratului de transport TLI. Interfața stratului de transport).

    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, nu a implementat inițial TCP/IP sau alte protocoale de rețea, dar astfel de implementări au fost furnizate. de către terți..

    Implementarea TCP/IP a fost inclusă oficial și definitiv în distribuția de bază a System V versiunea 4. Acest lucru, împreună cu alte considerente (în mare parte de piață), a determinat demarcarea finală între cele două ramuri ale UNIX - BSD (Universitatea din Berkeley) ș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 arome comerciale de UNIX, cum ar fi AIX, CLIX, HP-UX, IRIX, Solaris.

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

    Sisteme de operare gratuite asemănătoare UNIX

    LA acest moment GNU/Linux și membrii familiei BSD preiau rapid piața de pe sistemele comerciale UNIX și infiltrează simultan ambele computere desktop utilizatorii finali, precum și sistemele mobile și încorporate.

    Sisteme proprietare

    Influența UNIX asupra evoluției sistemelor de operare

    Ideile din spatele UNIX au avut un impact uriaș asupra dezvoltării sistemelor de operare pentru computere. Sistemele UNIX sunt acum recunoscute ca unul dintre cele mai importante sisteme de operare din punct de vedere istoric.

    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ă forțeze un stil de programare asupra programatorului. C a fost primul limbaj de nivel înalt care a oferit acces la toate caracteristicile procesorului, cum ar fi referințe, tabele, deplasări de biți, incremente și așa mai departe. Pe de altă parte, libertatea limbajului C a condus la erori de depășire a tamponului. în funcțiile standard de bibliotecă C, cum ar fi gets și scanf. Au rezultat multe vulnerabilități infame, cum ar fi cea exploatată în faimosul vierme Morris.

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

    UNIX a oferit posibilitatea de a utiliza protocoalele TCP / IP într-un mod relativ calculatoare ieftine, ceea ce a dus la creșterea rapidă a internetului. Aceasta, la rândul său, a contribuit la descoperirea rapidă a mai multor vulnerabilități majore în sistemul de securitate, arhitectură și utilități de sistem UNIX.

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

    Rol social în comunitatea profesională IT și rol istoric

    UNIX original rula pe computere mari multi-utilizator, care oferea, de asemenea, 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ă, conform mai multor opinii, 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 hardware la hardware și dezvoltat în limbajul portabil C, care a „decuplat” dezvoltarea programelor de hardware specific. În plus, experiența utilizatorului s-a dovedit a fi „dezlegată” de hardware și producător - o persoană care a lucrat cu UNIX pe VAX a lucrat cu ușurință cu acesta pe 68xxx și așa mai departe.

    Producătorii de hardware la acea vreme erau deseori cool în privința UNIX, considerându-l o jucărie și oferind sistemul lor 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 despre acest lucru de la DEC cu privire la VMS-ul său. Corporațiile au ascultat acest lucru, dar nu mediul academic, care avea totul pentru sine în UNIX, de multe ori nu avea nevoie de sprijin oficial din partea producătorului, s-a gestionat pe cont propriu și a apreciat ieftinitatea și portabilitatea UNIX.

    Astfel, UNIX a fost probabil primul sistem de operare portabil pe diferite hardware.

    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, cu suficientă memorie, hard disk și suficient sistem de operare avansat (multitasking, protecție a memoriei) pentru a funcționa cu aplicații 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 procesorul Motorola 68xxx, la fel ca în computerele Apple (deși sub 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 dus imediat la portarea întregului ecosistem software UNIX.

    Sistemele de operare serioase proprietare, cum ar fi VMS, și-au început declinul chiar din acest moment (chiar dacă era posibil să se transfere sistemul de operare în sine la 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 majoritatea calculatoare puternice in lume.

    Cu toate acestea, în acest moment, ecosistemul PC a început să se mute la GUI în fața Windows 3.0. Avantajele uriașe 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ță - implementări precum SCO și Interactive UNIX nu au putut face față suportului pentru aplicațiile Windows. În ceea ce privește GUI pentru UNIX, numită X11 (au existat și alte implementări, mult mai puțin populare), aceasta nu putea funcționa pe deplin pe computerul unui utilizator obișnuit din cauza cerințelor de memorie - X11 necesita 16 MB pentru funcționarea normală, în timp ce Windows 3.1 cu performanțe suficiente pentru rulați atât Word, cât și Excel în același timp în 8 MB (aceasta a devenit dimensiunea standard de memorie a computerului la momentul respectiv). La preturi mariîn memorie, acesta a fost factorul limitativ.

    Succesul Windows a dat impuls unui proiect intern Microsoft sub numele Windows NT, care era compatibil cu Windows prin API, 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 multiprocesoare, permisiuni pentru fișiere și directoare, jurnal de sistem. Windows NT a introdus și fișierul de jurnal sistem NTFS, care în ceea ce privește capabilitățile la acea vreme depășea 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 inițial popular datorită cerințelor sale mari de memorie (aceași 16 MB), a permis Microsoft să intre pe piața soluțiilor de server, cum ar fi DBMS. Mulți nu credeau la acea vreme î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 nume mari precum Oracle și Sun. La această îndoială s-a adăugat și faptul că baza de date 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ă împingă UNIX și pe piața serverelor corporative.

    Combinația factorilor de mai sus, precum și o scădere uriașă a prețului procesoarelor video 3D, care s-au transformat din echipamente profesionale în echipamente casnice, au distrus în esență conceptul de stație de lucru până la începutul anilor 2000.

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

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

    În plus, Stallman și tovarășii săi, conștienți de faptul că instrumentele de dezvoltare neproprietate sunt necesare pentru succesul software-ului non-corporat, au dezvoltat un set de compilatoare pentru diferite limbaje de programare (gcc), care, împreună cu GNU dezvoltat anterior utilitati (inlocuire utilități standard UNIX) a constituit un pachet software necesar și destul de puternic pentru dezvoltator.

    De fapt, doar nucleul sistemului de operare lipsea pentru a crea un UNIX complet gratuit. Și a fost dezvoltat de studentul finlandez Linus Torvalds. Nucleul a fost dezvoltat de la zero și nu este un derivat nici al BSD, nici al System V în ceea ce privește codul sursă (deși conceptele erau încă împrumutate, de exemplu, Linux avea funcțiile namei și bread), dar într-o serie de nuanțe (sistem apeluri, bogat / proc, lipsă de sysctk) - tinde mai mult spre cele din urmă.

    • POSIX 1003.2-1992, definind comportamentul utilitaților, inclusiv shell-ul;
    • POSIX 1003.1b-1993, care completează POSIX 1003.1-1988, specifică suport pentru sisteme în timp real;
    • POSIX 1003.1c-1995, care completează POSIX 1003.1-1988, definește fire de execuție, cunoscute și sub numele de pthreads.

    Toate standardele POSIX sunt consolidate în documentul IEEE 1003.

    Din motive de compatibilitate, mai mulți constructori de sisteme UNIX au sugerat utilizarea ELF, formatul de sisteme SVR4 pentru fișiere binare și obiect. Formatul unic asigură că fișierele binare sunt pe deplin consistente în cadrul aceleiași arhitecturi de computer.

    Structura de directoare a unor sisteme, în special GNU/Linux, este definită în standardul ierarhiei sistemului de fișiere. Cu toate acestea, în multe privințe, acest tip de standard este controversat și, chiar și în cadrul comunității GNU/Linux, este departe de a fi universal.

    Comenzi standard UNIX

    • Creați și navigați în fișiere și directoare: atingeți , , , , , , pwd , , mkdir , rmdir , find , ;
    • Vizualizarea și editarea fișierelor: mai mult , mai puțin , , ex, , emacs ;
    • Procesare text: echo , cat , grep , sort , uniq , sed , awk , tee , head , tail , cut , , split , printf ;
    • Comparare fișiere: comm , cmp , diff , patch ;
    • Diverse utilitare shell: yes , test , xargs , expr ;
    • Administrare sistem: chmod , chown , , , , who , , mount , umount ;
    • Comunicatii: mail, telnet, ftp, finger, rsh, ssh;
    • Shell: , bash , csh , ksh , tcsh , zsh ;
    • Lucreaza cu cod sursași cod obiect: cc, gcc , ld, , yacc , bison , lex , flex , ar, ranlib, make ;
    • Comprimare și arhivare: comprimați, decomprimați, gzip , gunzip , tar
    • Lucrul cu fișiere binare: , șiruri

    Următoarea este o listă de 60 de comenzi din secțiunea 1 a primei versiuni de UNIX:

    • b, bas, bcd, boot
    • cat , chdir , verifica , chmod , chown , cmp ,
    • data , db, dbppt, , , dsw, dtf,
    • mail , mesg , mkdir , mkfs , mount ,
    • rew, rkd, rkf, rkl, , rmdir , roff

    Note

    Vezi si

    maestru de silabă 19 martie 2011 la 23:16

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

    • Cameră de depozitare *
    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 prin utilizarea fișierelor simple, de obicei text.
    2. Utilizarea pe scară largă a liniei de comandă.
    3. Folosind benzi transportoare.
    În zilele noastre, UNIX este folosit în principal pe servere și ca sistem pentru echipamente.
    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 atât ca marcă de conformitate, cât ș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. Open Group a aruncat recent lumină asupra publicării „Single UNIX Specification”, 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ă a sistemelor de operare bazate pe UNIX, care sunt dezvoltate în cadrul proiectului GNU (proiect pentru dezvoltarea de software open source). Linux rulează pe o mare varietate de arhitecturi de procesoare, de la ARM la Intel x86.

    Cele mai cunoscute și comune 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”, în timp ce susținătorii „software-ului liber” folosesc termenul „GNU/Linux”. 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 ar 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 poate crea propriul proiect!

    Concluzie
    Astfel, lanțul a învățat de la noi: UNIX -> UNIX-like OS -> Linux.

    În concluzie, pot spune că diferențele dintre Linux și UNIX sunt evidente. UNIX este un concept mult mai larg, baza pentru construirea și certificarea tuturor sistemelor asemănătoare UNIX, iar Linux este caz special UNIX.

    Etichete: unix, linux, nix, linux, 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 prin utilizarea fișierelor simple, de obicei text.
    2. Utilizarea pe scară largă a liniei de comandă.
    3. Folosind benzi transportoare.
    În zilele noastre, UNIX este folosit în principal pe servere și ca sistem pentru echipamente.
    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 atât ca marcă de conformitate, cât ș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. Open Group a aruncat recent lumină asupra publicării „Single UNIX Specification”, 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ă a sistemelor de operare bazate pe UNIX, care sunt dezvoltate în cadrul proiectului GNU (proiect pentru dezvoltarea de software open source). Linux rulează pe o mare varietate de arhitecturi de procesoare, de la ARM la Intel x86.

    Cele mai cunoscute și comune 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”, în timp ce susținătorii „software-ului liber” folosesc termenul „GNU/Linux”. 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 ar 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 poate crea propriul proiect!

    Concluzie
    Astfel, lanțul a învățat de la noi: UNIX -> UNIX-like OS -> Linux.

    În concluzie, pot spune că diferențele dintre Linux și UNIX sunt evidente. UNIX este un concept mult mai larg, baza pentru construirea și certificarea tuturor sistemelor de tip UNIX, iar Linux este un caz special al UNIX.

    Etichete: unix, linux, nix, linux, unix