Unix ( IPA : [ ˈ j u ː n ɪ k s ] [1] [2] ) este o familie de sisteme de operare portabile , multi- tasking și multi-utilizator , care se bazează pe idei din AT&T Unix original . proiect dezvoltat în anii 1970 în Centrul de Cercetare Bell Labs de Ken Thompson , Dennis Ritchie și alții.
Sistemele de operare ale familiei Unix sunt caracterizate printr-un design modular, în care fiecare sarcină este efectuată de un utilitar separat , interacțiunea se realizează printr-un singur sistem de fișiere și se folosește un shell de comandă pentru a lucra cu utilitare .
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.
Primul sistem Unix a fost dezvoltat la divizia Bell Labs a AT&T . De atunci, au fost create un număr mare de sisteme Unix diferite. Numai acele sisteme de operare care au fost certificate conform specificației unice UNIX [3] au dreptul legal 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 ).
Principala diferență dintre sistemele de tip Unix și alte sisteme de operare este că acestea sunt în mod inerent sisteme multi-utilizator multi-tasking. În Unix, mulți oameni pot lucra simultan, fiecare la propriul terminal , în timp ce fiecare dintre ei 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 în așa fel încât să poată fi adaptat cu ușurință la aproape orice microprocesor.
Unix are alte caracteristici:
Începând cu anii 1980, sistemele Unix au fost distribuite în principal între servere . Începând cu anii 2010, sistemele bazate pe nucleul sistemelor asemănătoare Unix au devenit larg răspândite ca sisteme încorporate pentru diferite hardware, inclusiv smartphone-uri . Sistemele Unix domină și supercalculatoarele , în special, Linux este instalat pe 100% din supercalculatoarele TOP500 .
Printre sistemele pentru stații de lucru și uz casnic, sistemele de operare Unix și Unix-like se clasează pe locul al doilea ( macOS ), al treilea ( Linux ) [4] și multe locuri ulterioare în popularitate după Microsoft Windows .
În 1957, au început lucrările la Bell Labs pentru crearea unui sistem de operare pentru uz intern. Sub conducerea lui Viktor Vysotsky a fost creat sistemul BESYS . Ulterior, a preluat conducerea proiectului Multics , iar mai târziu a devenit șeful diviziei de informații la Bell Labs.
În 1964, au apărut computerele de a treia generație, pentru care capacitățile BESYS nu mai erau potrivite. Vysotsky și colegii săi au decis să nu dezvolte propriul sistem de operare nou, ci să se alăture Multics, un proiect comun între General Electric și MIT . Gigantul de telecomunicații AT&T , care includea Bell Labs, a oferit proiectului un sprijin substanțial, dar s-a retras în 1969 , deoarece proiectul nu aducea beneficii financiare.
Unix a fost dezvoltat inițial pentru minicalculatoarele PDP-7 pe baza ideilor Multics la sfârșitul anilor 1960 de Bell Labs, cu contribuții majore din partea Ken Thompson , cu contribuții semnificative din partea Dennis Ritchie și Douglas McIlroy . Întrucât sistemul avea o singură sarcină [5] , în 1970, sistemul a primit numele de Unics - Uniplexed Information and Computing Service [6] spre deosebire de multitasking Multics - Multiplexed Information and Computer Services [7] . Ortografia finală, „Unix”, este atribuită lui Brian Kernighan [8] [9] .
Prima versiune a fost numită „prima ediție” ( Ediția 1 ) și a fost prima versiune oficială; pornind de la acesta, toate implementările Unix numără timpul sistemului de la 1 ianuarie 1970 . 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 Bee , care a fost o versiune simplificată (pentru implementare pe minicalculatoare) a limbajului BCPL dezvoltat în 1966 . Bi, ca și BCPL, era un limbaj interpretat . În 1972, a fost lansată a doua ediție a Unix, rescrisă în limbajul B. Între 1969 și 1973, a fost dezvoltat un limbaj compilat bazat pe B , numit C.
În 1973, a treia ediție a Unix a apărut cu un compilator C încorporat. Pe 15 octombrie a aceluiași an a apărut cea de-a patra ediție, cu nucleul sistemului rescris în C (în spiritul sistemului Multics, scris tot în limbajul de nivel înalt PL / 1 ), iar în 1975 - ediția a cincea, complet rescris în C.
Din 1974, Unix a devenit larg răspândit printre universități și instituții academice. Din 1975, au început să apară noi versiuni dezvoltate în afara Bell Labs, iar popularitatea sistemului a crescut. Tot în 1975, Bell Labs a lansat cea de -a șasea ediție , renumită pentru comentariul său larg răspândit de John Lyons .
Până în 1978, sistemul a fost instalat pe peste 600 de mașini, în principal la universități [10] . A șaptea ediție a fost ultima versiune unificată a Unix. În el a apărut shell-ul Bourne , apropiat de interpretul modern al liniei de comandă .
La începutul anilor 1980, AT&T, care deținea Bell Labs, și-a dat seama de valoarea Unix și a început să construiască o versiune comercială a sistemului de operare. Această versiune, care a fost pusă în vânzare în 1982 , se numea UNIX System III și se baza pe cea de-a șaptea versiune a sistemului.
Cu toate acestea, compania nu a putut să înceapă direct dezvoltarea Unix ca produs comercial din cauza unei interdicții guvernamentale din 1956 din SUA . Departamentul de Justiție a forțat AT&T să semneze un acord care interzicea companiei să se angajeze în activități care nu erau legate de rețelele și echipamentele de telefonie și telegraf. Pentru a putea aduce in continuare Unix la rangul de produse comerciale, compania a donat codul sursa al sistemului de operare unor institutii de invatamant superior, licentiand codul in termeni foarte liberali. În decembrie 1973, Universitatea Berkeley [11] a primit unul dintre primele coduri sursă .
Din 1978, BSD Unix , creat la Universitatea din Berkeley , își începe istoria . Prima sa versiune a fost bazată pe a șasea ediție. În 1979 a fost lansată o nouă versiune, numită 3BSD, bazată pe cea de-a șaptea ediție. BSD a acceptat funcții utile, cum ar fi memoria virtuală și înlocuirea paginilor la cerere. Autorul BSD a fost Bill Joy .
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 ( 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, 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 marketing), 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 .
La mijlocul anului 1983, a fost lansată versiunea BSD 4.2, care acceptă rețelele Ethernet și Arpanet . Sistemul a devenit foarte popular. Între 1983 și 1990, la BSD au fost adăugate multe caracteristici noi, cum ar fi un depanator de kernel, sistemul de fișiere de rețea NFS , sistemul de fișiere virtual VFS și capabilități de rețea de fișiere mult îmbunătățite.
Între timp, AT&T lansa versiuni noi ale sistemului său, numite System V. În 1983, a fost lansată versiunea 1 (SVR1 - System V Release 1), care includea editorul de text vi pe ecran complet , biblioteca curses , I/O tamponare și stocarea în cache a inodelor . Versiunea 2 (SVR2), lansată în 1984 , a implementat accesul exclusiv la fișiere (blocarea fișierelor), accesul la pagini la cerere (paging la cerere), copierea la scriere. Versiunea 3 a fost lansată în 1987 și includea, printre altele, TLI, precum și suportul pentru sistemul de fișiere la distanță RFS . Versiunea 4 (SVR4), dezvoltată în colaborare cu Sun și lansată pe 18 octombrie 1988 , a acceptat multe caracteristici BSD, inclusiv TCP/IP, socket -uri și noul shell csh . În plus, au existat multe alte completări, cum ar fi legăturile simbolice , shell -ul ksh , sistemul de fișiere de rețea NFS (împrumutat de la SunOS ), etc.
Implementările moderne ale Unix nu sunt în general sisteme pure V sau BSD. Ei implementează funcții atât de la System V, cât și de la BSD.
În 1983, Richard Stallman a anunțat crearea Proiectului GNU , o încercare de a crea de la zero un sistem de operare gratuit asemănător Unix, fără a utiliza codul sursă original . O mare parte din software-ul dezvoltat de acest proiect, cum ar fi lanțul de instrumente GNU , Glibc ( biblioteca standard C ) și Coreutils , joacă un rol cheie în alte sisteme de operare gratuite. Cu toate acestea, munca de creare a unui înlocuitor pentru nucleul Unix , necesar pentru a îndeplini pe deplin sarcinile GNU, a progresat extrem de lent. În prezent, GNU Hurd , o încercare de a crea un nucleu modern bazat pe arhitectura microkernelului Mach , este încă departe de a fi finalizată.
În 1991 , când Linus Torvalds a publicat nucleul Linux și a adus colaboratori, utilizarea instrumentelor dezvoltate de Proiectul GNU a fost alegerea evidentă. Sistemul de operare GNU și nucleul Linux alcătuiesc împreună sistemul de operare cunoscut sub numele de GNU/Linux . Distribuțiile sistemului (cum ar fi Red Hat și Debian ), care includ nucleul, utilitarele GNU și software-ul suplimentar, au devenit populare atât printre pasionați, cât și printre companii .
La începutul anului 1992, a fost lansat 386/BSD , bazat pe Networking Release 2. UNIX Systems Laboratories a intentat un proces împotriva BSDI, iar apoi împotriva Universității din Berkeley , pentru că a permis distribuirea fișierelor Unix în formate sursă și binar pentru aproape nimic, ceea ce a subminat însăși afacerea USL.
Pe tot parcursul anului 1992, USL nu a adus niciun succes semnificativ în litigiu, dar a apărut o cerere reconvențională de la Universitatea din California . La începutul anului 1993, distribuția 386/BSD și-a schimbat numele în NetBSD . În decembrie 1993, a apărut o altă distribuție - FreeBSD , destinată utilizatorilor obișnuiți. După achiziționarea USL de către Novell , până în vara anului 1993, au început negocierile pentru stabilirea statutului codurilor BSD. Până în ianuarie 1994 , CSRG și Novell au convenit să elimine trei fișiere din 18000 Networking Release 2, unele dintre fișiere urmând să fie editate, iar la aproximativ 70 de fișiere universitatea urma să adauge informații despre drepturile de autor USL.
În iunie 1994, a fost lansată o versiune „curată” a 4.4BSD-Lite . Din acest moment, grupurile BSDI, NetBSD și FreeBSD au trebuit să-și resincronizeze versiunile de sisteme cu un sistem „curat” 4.4BSD-Lite. Astfel, toate evoluțiile făcute în cei trei ani de la introducerea procesului USL au trebuit să fie revizuite pentru încălcarea drepturilor de autor și utilizarea codului terților. Rescrieți părți importante ale nucleului și ale mediului de operare. Mult mai târziu, OpenBSD , TrustedBSD și DragonFlyBSD s-au separat în proiecte independente .
În 1997, Apple căuta o bază pentru noul său sistem de operare și a ales NEXTSTEP , un sistem de operare kernel gratuit dezvoltat de NeXT .
În 2000 , Apple Inc. lansează sistemul de operare Darwin compatibil cu POSIX cu sursă deschisă . Combină codul scris de Apple însuși cu codul de la NeXTSTEP , FreeBSD și alte proiecte open source. Darwin este un set de componente de bază utilizate în Mac OS X și Apple iOS . Este compatibil cu specificația unică UNIX Versiunea 3 (SUSv3) și aplicațiile și utilitarele POSIX.
Pe 14 iunie 2005 , a fost deschis codul sursă pentru sistemul de operare Solaris . Acest proiect, precum și sistemul de operare creat pe baza lui, a fost numit OpenSolaris . Pe 17 iunie, la trei zile după deschiderea codului, a fost creată distribuția SchilliX . În mai 2008, a apărut prima distribuție oficială a OpenSolaris 2008.05. Există mai mult de zece distribuții bazate pe OpenSolaris, dintre care cele mai faimoase sunt BeleniX și Nexenta OS .
În acest moment, GNU/Linux și membrii familiei BSD preiau rapid piața de pe sistemele comerciale Unix și infiltrează simultan atât desktop-urile utilizatorilor finali, cât și sistemele mobile și încorporate.
De la divizarea AT&T , marca comercială Unix și drepturile asupra codului sursă original și-au schimbat proprietarii de mai multe ori, în special, au aparținut multă vreme lui Novell .
În 1993, Novell a transferat drepturile asupra mărcii comerciale și pentru a certifica software-ul conform acestei mărci către consorțiul X/Open , care apoi a fuzionat cu Open Software Foundation pentru a forma The Open Group . Acesta reunește corporații de calcul și organizații guvernamentale de top, inclusiv IBM , Hewlett-Packard , Sun , NASA și multe altele. Consorțiul dezvoltă standarde de sistem de operare deschise, dintre care cel mai important este specificația unică UNIX , cunoscută anterior ca POSIX . Potrivit The Open Group, numai sistemele certificate conform specificației unice UNIX pot purta numele UNIX.
În 1995, Novell a vândut drepturile asupra licențelor existente și dezvoltarea ulterioară a System V către Santa Cruz Operation . În 2000, Santa Cruz Operation și-a vândut afacerea Unix către Caldera , care apoi a fost redenumită SCO Group . Deși acest nume este similar cu acronimul SCO folosit de Operațiunea Santa Cruz, acestea sunt două companii diferite.
Grupul SCO a susținut că deținea și drepturile asupra codului sursă Unix și a lansat o campanie împotriva diverșilor utilizatori și vânzători de sisteme asemănătoare Unix pentru drepturi de autor. Cu toate acestea, Novell susține că drepturile asupra codului sursă nu au fost transferate la Operațiunea Santa Cruz și, prin urmare, nu au trecut către Grupul SCO, ci rămân la Novell, ceea ce a confirmat verdictul instanței. În ciuda acestui fapt, în august 2009, Curtea de Apel al 10-lea circuit din SUA a anulat decizia anterioară, ordonând o investigație suplimentară pentru a stabili proprietarul de drept al dreptului de autor asupra codului sursă al sistemului de operare [12] . În iunie 2010, instanța a pus capăt acestei probleme, confirmând un alt verdict emis anterior (în aprilie 2010) în favoarea Novell și refuzând să ia în considerare plângerile suplimentare din partea SCO Group [13] .
Sistemele Unix au o mare importanță istorică, deoarece au propagat unele dintre conceptele și abordările populare ale sistemelor de operare și software -ului de astăzi . De asemenea, în timpul dezvoltării sistemelor Unix, a fost creat limbajul C.
La fel ca Multics , Unix a fost scris într-un limbaj de nivel înalt, mai degrabă decât într-un asamblare (care era dominantă la acea vreme).
Acesta conținea un model de fișier simplificat semnificativ, în comparație cu sistemele de operare predecesoare . Sistemul de fișiere includea atât servicii, cât și dispozitive (cum ar fi imprimante , terminale și hard disk ) și le oferea o interfață superficial uniformă , dar mecanismele suplimentare pentru lucrul cu dispozitive (cum ar fi IOCTL și biții de acces) nu se încadrau în simplu " model de flux de octeți”.
Unix a popularizat ideea lui Multics de un sistem de fișiere ierarhic cu adâncime de imbricare arbitrară. Alte sisteme de operare (inclusiv DOS) din acea vreme permiteau împărțirea spațiului pe disc în directoare sau secțiuni, dar numărul de niveluri de imbricare era fix și, adesea, exista un singur nivel de imbricare. Mai târziu, toate sistemele de operare proprietare majore[ clarify ] au dobândit capacitatea de a crea subdirectoare recursive, împrumutate tot de la Multics.
Faptul că interpretul de comenzi a devenit doar unul dintre programele utilizatorului , iar programele separate acționează ca comenzi suplimentare, este o altă inovație a Multics. popularizat de Unix. Limbajul shell Unix este utilizat de utilizator atât pentru lucrul interactiv, cât și pentru scrierea de scripturi , adică nu există un limbaj separat pentru descrierea postului, ca, de exemplu, în sistemul IBM JCL . Deoarece shell-ul și comenzile sistemului de operare sunt programe obișnuite, utilizatorul le poate alege în funcție de preferințe sau chiar poate scrie propriul shell. În cele din urmă, pot fi adăugate noi comenzi la sistem fără a recompila nucleul . Noul mod de a crea lanțuri de programe care procesează datele secvenţial, propus pe linia de comandă Unix, a promovat utilizarea procesării paralele a datelor.
Caracteristicile esențiale ale Unix au fost concentrarea deplină pe text I/O și presupunerea că dimensiunea unui cuvânt de mașină era un multiplu de opt biți. Inițial, Unix nu avea nici măcar editori binari - sistemul a fost complet configurat folosind comenzi text. Cea mai mare și cea mai mică unitate de I/O a fost octetul de text , care a distins complet I/O Unix de I/O orientat spre înregistrări ale altor sisteme de operare. Concentrarea pe utilizarea textului pentru a reprezenta tot ceea ce este posibil a făcut ca așa - numitele conducte să fie utile . Orientarea textului pe 8 biți a făcut Unix mai scalabil și mai portabil decât alte sisteme de operare. De-a lungul timpului, aplicațiile de text au câștigat ziua[ clarifica ] și în alte domenii, de exemplu, la nivelul protocoalelor de rețea precum Telnet , FTP , SMTP , HTTP și altele.
Unix a contribuit la utilizarea pe scară largă a expresiilor regulate , care au fost implementate pentru prima dată în editorul de text pentru Unix. Caracteristicile oferite programelor Unix au devenit baza interfețelor standard ale sistemului de operare ( POSIX ).
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ă 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 altele asemenea. Pe de altă parte, libertatea limbajului C a condus la erori de depășire a tamponului în funcțiile standard ale bibliotecii 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 permis utilizarea protocoalelor TCP/IP pe computere relativ 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 securitatea, arhitectura și utilitățile 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-ul însuși. ( mai mult... )
Unele dintre cele mai cunoscute exemple de sisteme asemănătoare Unix sunt macOS , Solaris , BSD și NeXTSTEP .
Caracteristici ale Unix care disting această familie de alte sisteme:
Numărul mare de arome diferite ale sistemului Unix a condus la necesitatea standardizării caracteristicilor sale pentru a face aplicațiile mai ușor de portat și pentru a salva utilizatorul de a fi nevoit să învețe specificul fiecărei variante a 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) în același timp cu UNIX System V Release 4. Acest document, totuși, nu a devenit oficial.
Alături de versiunile UNIX System V , a existat direcția Unix BSD . Pentru a asigura compatibilitatea între System V și BSD , au fost create grupuri de lucru POSIX ( interfață de sistem de operare portabilă pentru Unix ) . 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. ( mai mult... ) În 1990 a fost adoptat de IEEE ca IEEE 1003.1-1990 și mai târziu ca ISO/IEC 9945.
În prezent[ clarifica ] cele mai importante sunt următoarele standarde ( mai multe... ):
Toate standardele POSIX sunt consolidate în documentul IEEE 1003.
La începutul anilor 1990, The Open Group a propus un alt standard asemănător POSIX, Common API Specification , sau Spec 1170. Standardul a câștigat mai multă popularitate decât POSIX deoarece era disponibil gratuit, în timp ce IEEE necesita o taxă mare pentru accesul la dvs. standard.
În 1998, au început lucrările de unificare a acestor standarde. Drept urmare, aceste standarde sunt acum aproape identice. Standardul comun se numește Single UNIX Specification Version 3 și este disponibil gratuit pe Internet [14] .
Din motive de compatibilitate, mai mulți creatori de sisteme Unix au sugerat utilizarea ELF , formatul de sisteme SVR4 pentru fișiere binare și obiect . Format unic complet asigură că binarele se potrivesc î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. .
Printre comenzile standard Unix [15] :
60 de comenzi din secțiunea 1 a primei versiuni de Unix:
Unix și sisteme de operare asemănătoare Unix | |
---|---|
Sisteme de operare |
|
Straturi de compatibilitate |
|
Categorie Wikimedia Commons Wikibooks Wikiquote |
ale sistemelor de operare | Aspecte|||||
---|---|---|---|---|---|
| |||||
Tipuri |
| ||||
Nucleu |
| ||||
Managementul proceselor |
| ||||
Gestionarea și adresarea memoriei |
| ||||
Instrumente de încărcare și inițializare | |||||
coajă | |||||
Alte | |||||
Categorie Wikimedia Commons Wikibooks Wiktionar |