close

Unix

Vai alla navigazione Vai alla ricerca
Image
Albero genealogico dei sistemi Unix

Unix ( IPA : [ ˈ j u ː n ɪ k s ] [1] [2] [⇨] ) è una famiglia di sistemi operativi portatili , multitasking e multiutente basati sulle idee dell'originale AT&T Unix progetto sviluppato negli anni '70 nel Bell Labs da Ken Thompson , Dennis Ritchie e altri.

I sistemi operativi della famiglia Unix sono caratterizzati da un design modulare, in cui ogni attività viene eseguita da un'utilità separata , l'interazione viene eseguita tramite un unico file system e una shell di comando viene utilizzata per lavorare con le utilità .

Le idee alla base di Unix hanno avuto un enorme impatto sullo sviluppo dei sistemi operativi per computer. I sistemi Unix sono ora riconosciuti come uno dei sistemi operativi storicamente più importanti.

Image
Esecuzione di UNIX V6 nell'emulatore pdp-11 su Windows 7
Image
Esecuzione di UNIX V5 nell'emulatore pdp-11 su Windows 7
Image
logo UNIX .

Il primo sistema Unix è stato sviluppato presso la divisione Bell Labs di AT&T . Da allora, è stato creato un gran numero di diversi sistemi Unix. Solo quei sistemi operativi che sono stati certificati per la specifica UNIX singola [3] sono legalmente autorizzati ad essere chiamati "UNIX" . Il resto, sebbene utilizzi concetti e tecnologie simili, sono chiamati sistemi operativi simili a Unix ( inglese  Unix-like ).

Caratteristiche

La principale differenza tra i sistemi simili a Unix e altri sistemi operativi è che sono intrinsecamente sistemi multi-tasking multiutente. In Unix, molte persone possono lavorare contemporaneamente, ognuna al proprio terminale , mentre ognuna di loro può eseguire molti processi di elaborazione diversi che utilizzeranno le risorse di questo particolare computer.

Il secondo colossale pregio di Unix è la sua natura multipiattaforma. Il cuore del sistema è progettato in modo tale da poter essere facilmente adattato a quasi tutti i microprocessori.

Unix ha altre caratteristiche:

  • utilizzare semplici file di testo per configurare e gestire il sistema;
  • uso diffuso delle utilità lanciate dalla riga di comando ;
  • interazione con l'utente tramite dispositivo virtuale - terminale;
  • rappresentazione di dispositivi fisici e virtuali e di alcuni mezzi di comunicazione tra processi sotto forma di file ;
  • l'uso di pipeline da diversi programmi, ognuno dei quali esegue un'attività.

Applicazione

Dagli anni '80, i sistemi Unix sono stati distribuiti principalmente tra i server . Dagli anni 2010, i sistemi basati sul kernel di sistemi simili a Unix si sono diffusi come sistemi embedded per vari hardware, inclusi gli smartphone . I sistemi Unix dominano anche i supercomputer , in particolare Linux è installato sul 100% dei supercomputer TOP500 .

Tra i sistemi per workstation e per uso domestico, i sistemi operativi Unix e simili a Unix si classificano al secondo posto ( macOS ), al terzo ( Linux ) [4] e a molti altri posti in popolarità dopo Microsoft Windows .

Storia

Predecessori

Image
Varianti Unix per anno

Nel 1957, presso i Bell Labs, iniziarono i lavori per la creazione di un sistema operativo per uso interno. Sotto la guida di Viktor Vysotsky , è stato creato il sistema BESYS . Successivamente ha preso in carico il progetto Multics e in seguito è diventato capo della divisione informazioni presso Bell Labs.

Nel 1964 apparvero i computer di terza generazione, per i quali le capacità di BESYS non erano più adatte. Vysotsky e i suoi colleghi hanno deciso di non sviluppare un proprio nuovo sistema operativo, ma di unirsi a Multics, un progetto congiunto tra General Electric e MIT . Il gigante delle telecomunicazioni AT&T , che includeva Bell Labs, ha fornito un sostegno sostanziale al progetto, ma si è ritirato nel 1969 perché il progetto non ha portato vantaggi finanziari.

I primi sistemi Unix

Image
Ken Thompson e Dennis Ritchie  , creatori di Unix

Unix è stato originariamente sviluppato per minicomputer PDP-7 sulla base delle idee di Multics alla fine degli anni '60 da Bell Labs, con importanti contributi di Ken Thompson , con input significativi di Dennis Ritchie e Douglas McIlroy . Poiché il sistema era single-tasking [5] , nel 1970 al sistema fu dato il nome Unics - Uniplexed Information and Computing Service [6] in contrapposizione al multitasking Multics - Multiplexed Information and Computer Services [7] . L'ortografia finale, "Unix", è attribuita a Brian Kernighan [8] [9] .

La prima versione fu chiamata "prima edizione" ( Edizione 1 ) e fu la prima versione ufficiale; a partire da esso, tutte le implementazioni di Unix contano il tempo di sistema dal 1 gennaio 1970 . Le prime versioni di Unix erano scritte in linguaggio assembly e non avevano un compilatore di linguaggio integrato di alto livello . Intorno al 1969, Ken Thompson, con l'assistenza di Dennis Ritchie, sviluppò e implementò il linguaggio Bee , che era una versione semplificata (per l'implementazione su minicomputer) del linguaggio BCPL sviluppato nel 1966 . Bi, come BCPL, era un linguaggio interpretato . Nel 1972 fu rilasciata la seconda edizione di Unix, riscritta nella lingua B. Tra il 1969 e il 1973 fu sviluppato un linguaggio compilato basato su B , chiamato C.

Nel 1973, la terza edizione di Unix uscì con un compilatore C integrato. Il 15 ottobre dello stesso anno apparve la quarta edizione, con il nucleo del sistema riscritto in C (nello spirito del sistema Multics, scritto anche nel linguaggio di alto livello PL/1 ), e nel 1975  - la quinta edizione, completamente riscritto in C.

Dal 1974 Unix si è diffuso tra le università e le istituzioni accademiche. Dal 1975 iniziarono ad apparire nuove versioni sviluppate al di fuori dei Bell Labs e la popolarità del sistema crebbe. Sempre nel 1975, Bell Labs pubblicò la sesta edizione , famosa per il suo commento ampiamente diffuso di John Lyons .

Nel 1978 il sistema era installato su più di 600 macchine, principalmente nelle università [10] . La settima edizione è stata l'ultima versione unificata di Unix. Fu in esso che apparve la shell Bourne , vicino al moderno interprete della riga di comando .

Dividi

All'inizio degli anni '80, AT&T, che possedeva i Bell Labs, si rese conto del valore di Unix e iniziò a costruire una versione commerciale del sistema operativo. Questa versione, messa in vendita nel 1982 , si chiamava UNIX System III ed era basata sulla settima versione del sistema.

Tuttavia, la società non è stata in grado di iniziare direttamente a sviluppare Unix come prodotto commerciale a causa di un divieto del governo degli Stati Uniti del 1956 . Il Dipartimento di Giustizia ha costretto AT&T a firmare un accordo che vietava all'azienda di svolgere attività non correlate alle reti e alle apparecchiature telefoniche e telegrafiche. Per poter ancora portare Unix al rango di prodotti commerciali, l'azienda ha donato il codice sorgente del sistema operativo ad alcuni istituti di istruzione superiore, concedendo in licenza il codice a condizioni molto liberali. Nel dicembre 1973, la Berkeley University [11] ricevette uno dei primi codici sorgente .

Dal 1978, BSD Unix , creato presso l'Università di Berkeley , inizia la sua storia . La sua prima versione era basata sulla sesta edizione. Nel 1979 fu rilasciata una nuova versione, chiamata 3BSD, basata sulla settima edizione. BSD supportava funzioni utili come la memoria virtuale e la sostituzione della pagina su richiesta. L'autore di BSD era Bill Joy .

Un motivo importante per la divisione in Unix è stata l'implementazione nel 1980 dello stack del protocollo TCP/IP . Prima di questo, la comunicazione da macchina a macchina in Unix era agli albori: il metodo di comunicazione più significativo era UUCP (un mezzo per copiare file da un sistema Unix a un altro, originariamente funzionante su reti telefoniche utilizzando modem ).

Sono state proposte due interfacce di programmazione delle applicazioni di rete: i socket Berkley e l'interfaccia del livello di trasporto TLI ( Transport Layer Interface ) . 

L'interfaccia socket Berkley è stata sviluppata presso l'Università di Berkeley e utilizzava lo stack di protocollo TCP/IP sviluppato lì. TLI è stato creato da AT&T secondo la definizione del livello di trasporto del modello OSI ed è apparso per la prima volta in System V versione 3. Sebbene questa versione contenesse TLI e flussi, originariamente non implementava TCP/IP o altri protocolli di rete, ma tali implementazioni erano fornite da terzi. .

L'implementazione del TCP/IP è stata ufficialmente e definitivamente inclusa nella distribuzione di base di System V versione 4. Questo, insieme ad altre considerazioni (principalmente di marketing), ha causato la demarcazione finale tra i due rami di Unix - BSD (University of Berkeley) e System V (versione commerciale di AT&T). Successivamente, molte aziende, avendo concesso in licenza System V da AT&T, hanno sviluppato le proprie versioni commerciali di Unix, come AIX , CLIX , HP-UX , IRIX , Solaris .

A metà del 1983 fu rilasciata la versione 4.2 di BSD, che supportava le reti Ethernet e Arpanet . Il sistema è diventato molto popolare. Tra il 1983 e il 1990, molte nuove funzionalità sono state aggiunte a BSD, come un debugger del kernel, il file system di rete NFS , il file system virtuale VFS e capacità di rete di file notevolmente migliorate.

Nel frattempo, AT&T stava rilasciando nuove versioni del suo sistema, chiamate System V. Nel 1983 fu rilasciata la versione 1 (SVR1 - System V Release 1), che includeva l' editor di testo vi a schermo intero , la libreria curses , I/O buffering e memorizzazione nella cache degli inode . La versione 2 (SVR2), rilasciata nel 1984 , implementava l'accesso esclusivo ai file (blocco dei file), l'accesso alle pagine su richiesta (impaginazione a richiesta), copy -on -write. La versione 3 è stata rilasciata nel 1987 e includeva, tra le altre cose, TLI, così come il supporto del file system remoto RFS . La versione 4 (SVR4), sviluppata in collaborazione con Sun e rilasciata il 18 ottobre 1988 , supportava molte funzionalità BSD, inclusi TCP/IP, socket e la nuova shell csh . Inoltre, c'erano molte altre aggiunte, come i collegamenti simbolici , la shell ksh , il file system di rete NFS (preso in prestito da SunOS ), ecc.

Le moderne implementazioni di Unix non sono generalmente sistemi V o BSD puri. Implementano funzionalità sia da System V che da BSD.

Sistemi operativi gratuiti simili a Unix

Image
desktop KDE

Nel 1983, Richard Stallman annunciò la creazione del Progetto GNU  , un tentativo di creare da zero un sistema operativo gratuito simile a Unix, senza utilizzare il codice sorgente originale . Gran parte del software sviluppato da questo progetto, come GNU toolchain , Glibc (la libreria C standard ) e Coreutils ,  gioca un ruolo chiave in altri sistemi operativi liberi. Tuttavia, il lavoro sulla creazione di un sostituto per il kernel Unix , necessario per eseguire completamente i compiti di GNU, è progredito molto lentamente. Allo stato attuale, GNU Hurd  , un tentativo di creare un kernel moderno basato sull'architettura del microkernel Mach  , è ancora lontano dall'essere completo.

Nel 1991 , quando Linus Torvalds pubblicò il kernel Linux e portò collaboratori, usare gli strumenti sviluppati dal Progetto GNU era la scelta più ovvia. Il sistema operativo GNU e il kernel Linux insieme costituiscono il sistema operativo noto come GNU/Linux . Le distribuzioni del sistema (come Red Hat e Debian ), che includono il kernel, le utilità GNU e il software aggiuntivo, sono diventate popolari sia tra gli hobbisti che tra le aziende .

All'inizio del 1992, 386/BSD , basato su Networking Release 2 , è stato rilasciato . UNIX Systems Laboratories ha intentato una causa contro BSDI, e poi contro l' Università di Berkeley , per aver consentito la distribuzione di file Unix in formato sorgente e binario praticamente per niente, il che ha minato l'attività della stessa USL.

Per tutto il 1992, la USL non ha portato alcun successo significativo nel contenzioso, ma è apparsa una domanda riconvenzionale dell'Università della California . All'inizio del 1993, la distribuzione 386/BSD aveva cambiato nome in NetBSD . Nel dicembre 1993 apparve un'altra distribuzione: FreeBSD , rivolta agli utenti ordinari. In seguito all'acquisizione della USL da parte di Novell , nell'estate del 1993, iniziarono le trattative per definire lo stato dei codici BSD. Entro gennaio 1994 , CSRG e Novell hanno deciso di rimuovere tre file da 18000 Networking Release 2, alcuni dei file da modificare ea circa 70 file l'università doveva aggiungere informazioni sul copyright USL.

Nel giugno 1994 è stata rilasciata una versione "pulita" di 4.4BSD-Lite . Da questo momento in poi, i gruppi BSDI, NetBSD e FreeBSD hanno dovuto risincronizzare le loro versioni di sistemi con un sistema 4.4BSD-Lite "pulito". Pertanto, tutti gli sviluppi realizzati nei tre anni trascorsi dal deposito della causa USL hanno dovuto essere rivisti per violazione del copyright e utilizzo di codice di terze parti. Riscrivi parti importanti del kernel e dell'ambiente operativo. Molto più tardi, OpenBSD , TrustedBSD e DragonFlyBSD si separarono in progetti indipendenti .

Nel 1997, Apple stava cercando una base per il suo nuovo sistema operativo e scelse NEXTSTEP  , un sistema operativo kernel gratuito sviluppato da NeXT .

Nel 2000 Apple Inc. rilascia il sistema operativo Darwin conforme a POSIX open source . Combina il codice scritto dalla stessa Apple con il codice di NeXTSTEP , FreeBSD e altri progetti open source. Darwin è un insieme di componenti principali utilizzati in Mac OS X e Apple iOS . È compatibile con la specifica UNIX singola versione 3 (SUSv3) e le applicazioni e le utilità POSIX.

Il 14 giugno 2005 è stato aperto il codice sorgente per il sistema operativo Solaris . Questo progetto, così come il sistema operativo creato sulla sua base, si chiamava OpenSolaris . Il 17 giugno, tre giorni dopo l'apertura del codice, è stata creata la distribuzione SchilliX . Nel maggio 2008 è apparsa la prima distribuzione ufficiale di OpenSolaris 2008.05. Esistono più di dieci distribuzioni basate su OpenSolaris, le più famose delle quali sono BeleniX e Nexenta OS .

Al momento, GNU/Linux ei membri della famiglia BSD stanno rapidamente conquistando il mercato dai sistemi Unix commerciali e contemporaneamente si infiltrano sia nei desktop degli utenti finali che nei sistemi mobili ed embedded.

Sistemi proprietari

Dopo la scissione di AT&T , il marchio Unix ei diritti sul codice sorgente originale hanno cambiato più volte proprietario, in particolare sono appartenuti a Novell per molto tempo .

Nel 1993 Novell ha trasferito i diritti sul marchio e sulla certificazione del software conforme a tale marchio al consorzio X/Open , che si è poi fuso con la Open Software Foundation per formare The Open Group . Riunisce le principali società di computer e organizzazioni governative, tra cui IBM , Hewlett-Packard , Sun , NASA e molti altri. Il consorzio sviluppa standard di sistemi operativi aperti, il più importante dei quali è la specifica UNIX singola , precedentemente nota come POSIX . Secondo The Open Group, solo i sistemi certificati per la specifica UNIX singola possono portare il nome UNIX.

Nel 1995, Novell ha venduto i diritti sulle licenze esistenti e sull'ulteriore sviluppo di System V a Santa Cruz Operation ru en . Nel 2000, Santa Cruz Operation ha venduto la sua attività Unix a Caldera , che è stata poi ribattezzata SCO Group . Sebbene questo nome sia simile all'acronimo SCO utilizzato dall'operazione Santa Cruz, sono due società diverse.

Il gruppo SCO ha affermato di detenere anche i diritti sul codice sorgente Unix e ha lanciato una campagna contro vari utenti e fornitori di sistemi simili a Unix per i diritti d'autore. Tuttavia, Novell afferma che i diritti sul codice sorgente non sono stati trasferiti all'operazione Santa Cruz e quindi non sono passati al gruppo SCO, ma sono rimasti con Novell, cosa che il verdetto del tribunale ha confermato. Nonostante ciò, nell'agosto 2009, la Corte d'Appello del Decimo Circuito degli Stati Uniti ha ribaltato la precedente decisione, ordinando un'ulteriore indagine per stabilire il legittimo proprietario dei diritti d'autore sul codice sorgente del sistema operativo [12] . Nel giugno 2010, il tribunale ha posto fine a questa questione, confermando un altro verdetto emesso in precedenza (nell'aprile 2010) a favore di Novell e rifiutandosi di prendere in considerazione ulteriori denunce da parte di SCO Group [13] .

L'influenza di Unix sull'evoluzione dei sistemi operativi

I sistemi Unix sono di grande importanza storica perché hanno diffuso alcuni dei più diffusi concetti e approcci di sistemi operativi e software odierni . Inoltre, durante lo sviluppo dei sistemi Unix, è stato creato il linguaggio C.

Come Multics , Unix è stato scritto in un linguaggio di alto livello piuttosto che in assembly (che all'epoca era dominante).

Conteneva un modello di file notevolmente semplificato rispetto ai sistemi operativi precedenti . Il file system includeva sia servizi che dispositivi (come stampanti , terminali e dischi rigidi ) e forniva loro un'interfaccia superficialmente uniforme , ma meccanismi aggiuntivi per lavorare con i dispositivi (come IOCTL e bit di accesso) non si adattavano al semplice " flusso di byte” modello.

Unix ha reso popolare l'idea di Multics di un file system gerarchico con profondità di annidamento arbitraria. Altri sistemi operativi (incluso DOS) dell'epoca consentivano di dividere lo spazio su disco in directory o sezioni, ma il numero di livelli di nidificazione era fisso e, spesso, c'era un solo livello di nidificazione. Successivamente, tutti i principali sistemi operativi proprietari[ chiarire ] hanno acquisito la capacità di creare sottodirectory ricorsive, anch'esse mutuate da Multics.

Il fatto che l'interprete dei comandi sia diventato solo uno dei programmi utente e che programmi separati agiscano come comandi aggiuntivi, è un'altra innovazione di Multics. reso popolare da Unix. Il linguaggio della shell Unix viene utilizzato dall'utente sia per il lavoro interattivo che per la scrittura di script , ovvero non esiste un linguaggio di descrizione del lavoro separato, come, ad esempio, nel sistema IBM JCL . Poiché la shell ei comandi del sistema operativo sono programmi regolari, l'utente può sceglierli in base alle proprie preferenze o addirittura scrivere la propria shell. Infine, è possibile aggiungere nuovi comandi al sistema senza ricompilare il kernel . Il nuovo modo di creare catene di programmi che elaborano i dati in sequenza, proposto sulla riga di comando di Unix, ha promosso l'uso dell'elaborazione parallela dei dati.

Le caratteristiche essenziali di Unix erano la sua piena focalizzazione sull'I /O di testo e il presupposto che la dimensione di una parola macchina fosse un multiplo di otto bit. Inizialmente, Unix non aveva nemmeno editor binari: il sistema era completamente configurato utilizzando comandi di testo. L'unità più grande e più piccola di I/O era il byte di testo , che distingueva completamente Unix I/O dall'I/O orientato ai record di altri sistemi operativi. L'attenzione all'uso del testo per rappresentare tutto ciò che è possibile ha reso utili le cosiddette pipeline .  L'orientamento del byte di testo a 8 bit ha reso Unix più scalabile e portatile rispetto ad altri sistemi operativi. Nel tempo, le app di testo hanno vinto il giorno[ chiarire ] e in altre aree, ad esempio, a livello di protocolli di rete come Telnet , FTP , SMTP , HTTP e altri.

Unix ha contribuito all'uso diffuso delle espressioni regolari , che sono state implementate per la prima volta nell'editor di testo ed per Unix. Le funzionalità fornite ai programmi Unix sono diventate la base delle interfacce del sistema operativo standard ( POSIX ).

Ampiamente usato nella programmazione dei sistemi, il linguaggio C , originariamente creato per lo sviluppo di Unix, ha superato Unix in popolarità. Il linguaggio C è stato il primo linguaggio "tollerante" che non ha cercato di imporre uno stile di programmazione al programmatore. C è stato il primo linguaggio di alto livello che ha dato accesso a tutte le funzionalità del processore, come riferimenti , tabelle, spostamenti di bit , incrementi e simili. D'altra parte, la libertà del linguaggio C ha portato a errori di buffer overflow nelle funzioni della libreria C standard come gets e scanf . Ne sono risultate molte famigerate vulnerabilità, come quella sfruttata nel famoso worm Morris .

I primi sviluppatori di Unix hanno contribuito all'introduzione dei principi della programmazione modulare e del riutilizzo nella pratica ingegneristica.

Unix ha consentito l'uso dei protocolli TCP/IP su computer relativamente economici, il che ha portato alla rapida crescita di Internet . Questo, a sua volta, ha contribuito alla rapida scoperta di diverse importanti vulnerabilità nella sicurezza, nell'architettura e nelle utilità di sistema di Unix.

Nel corso del tempo, i principali sviluppatori Unix hanno sviluppato norme culturali di sviluppo software che sono diventate importanti quanto Unix stesso. ( altro… )

Alcuni degli esempi più noti di sistemi simili a Unix sono macOS , Solaris , BSD e NeXTSTEP .

Caratteristiche architettoniche

Caratteristiche di Unix che distinguono questa famiglia da altri sistemi:

  • file system ad albero, caratteri con distinzione tra maiuscole e minuscole nei nomi, restrizioni molto deboli sulla lunghezza di nomi e percorsi;
  • non esiste il supporto del kernel per i file strutturati: a livello di chiamata di sistema, un file è un flusso di byte;
  • la riga di comando si trova nello spazio degli indirizzi del processo in corso di avvio, e non viene recuperata da una chiamata di sistema dal processo dell'interprete dei comandi (come accade, ad esempio, in RSX-11 );
  • le variabili d'ambiente sono usate per passare il contesto ;
  • avviare processi chiamando fork() , ovvero la possibilità di clonare il processo corrente con tutto lo stato;
  • i concetti di standard input , standard output e standard error output ;
  • I/O solo tramite descrittori di file .
  • supporto tradizionalmente estremamente debole per I/O asincrono rispetto a VMS e Windows NT ;
  • l'interprete dei comandi è implementato come una normale applicazione che comunica con il kernel con ordinarie chiamate di sistema (in RSX-11 e VMS , l'interprete dei comandi è stato eseguito come un'applicazione speciale, posta in memoria in modo speciale, utilizzando speciali chiamate di sistema, sono state supportate anche le chiamate, consentendo all'applicazione di accedere all'interprete dei comandi principale);
  • un comando da riga di comando non è altro che il nome di un file di programma, non è richiesta alcuna registrazione speciale e sviluppo speciale di programmi come comandi (cosa che era pratica comune in RSX-11 , RT-11 ).
  • non viene accettato un approccio con un programma che pone domande all'utente sulle sue modalità di funzionamento, vengono invece utilizzati i parametri della riga di comando (in VMS , RSX-11 , RT-11 , i programmi funzionano anche con la riga di comando, ma in sua assenza è stato richiesto di inserire i parametri);
  • spazio dei nomi del dispositivo nella directory /dev, che può essere gestito dall'amministratore, contrariamente all'approccio di Windows, in cui questo spazio dei nomi si trova nella memoria del kernel, e l'amministrazione di questo spazio dei nomi (ad esempio, l'impostazione dei diritti di accesso) è estremamente difficile a causa di la mancanza di memoria persistente (ogni volta durante il caricamento);
  • uso estensivo di file di testo per la memorizzazione delle impostazioni, al contrario di un database binario di impostazioni, come, ad esempio, in Windows;
  • uso estensivo di utilità di elaborazione del testo per eseguire attività quotidiane sotto il controllo di script;
  • "Promozione" del sistema dopo il caricamento del kernel eseguendo gli script con un interprete dei comandi standard;
  • uso diffuso di pipe con nome (pipe) ;
  • tutti i processi tranne init sono uguali, non ci sono "processi speciali";
  • lo spazio degli indirizzi è diviso in un kernel globale per tutti i processi e una parte locale per il processo, non c'è una parte "di gruppo" dello spazio degli indirizzi, come in VMS e Windows NT, così come la possibilità di caricare il codice lì ed eseguirlo è lì;
  • utilizzo di due livelli di privilegi del processore (anziché, ad esempio, quattro in VMS );
  • abbandonare l'uso degli overlay a favore della divisione del programma in diversi programmi più piccoli che comunicano tramite named pipe o file temporanei;
  • l' assenza di APC e analoghi, ovvero segnali arbitrari (e non rigidamente elencati nella serie standard) che non vengono consegnati fino a quando il processo non li vuole ricevere esplicitamente (Windows, VMS ).
  • Il concetto di segnale è unico per Unix ed estremamente difficile da trasferire su altri sistemi come Windows.

Standard

Image
GUI di basso livello tramite X

Il gran numero di diverse versioni del sistema Unix ha portato alla necessità di standardizzare le sue funzionalità per semplificare il porting delle applicazioni e salvare l'utente dal dover apprendere le specifiche di ciascuna versione di Unix.

A tale scopo , nel 1980 è stato creato il gruppo di utenti /usr/group . I primi standard sono stati sviluppati nel 1984-1985.

Uno dei primi standard è stata la System V Interface Definition (SVID), rilasciata da UNIX System Laboratories (USL) contemporaneamente a UNIX System V Release 4. Questo documento, tuttavia, non è diventato ufficiale.

Insieme alle versioni UNIX System V , c'era la direzione Unix BSD . Per garantire la compatibilità tra System V e BSD , sono stati creati gruppi di lavoro POSIX ( Portable Operating System Interface for Unix ) .  Esistono molti standard POSIX, ma il più noto è POSIX 1003.1-1988, che definisce l' API (Application Programming Interface). Viene utilizzato non solo in Unix, ma anche in altri sistemi operativi. ( altro… ) Nel 1990 è stato adottato dall'IEEE come IEEE 1003.1-1990 e successivamente come ISO/IEC 9945.

Attualmente[ chiarire ] i più importanti sono i seguenti standard ( altro… ):

  • POSIX 1003.2-1992, che definisce il comportamento delle utility, inclusa la shell;
  • POSIX 1003.1b-1993, che integra POSIX 1003.1-1988, specifica il supporto per i sistemi in tempo reale;
  • POSIX 1003.1c-1995, che integra POSIX 1003.1-1988, definisce i thread, noti anche come pthread.

Tutti gli standard POSIX sono consolidati nel documento IEEE 1003.

All'inizio degli anni '90, The Open Group ha proposto un altro standard simile a POSIX, la Common API Specification o Spec 1170. Lo standard ha guadagnato più popolarità di POSIX perché era disponibile gratuitamente, mentre l'IEEE richiedeva una tariffa elevata per l'accesso al tuo standard.

Nel 1998 sono iniziati i lavori per unificare questi standard. Di conseguenza, questi standard ora sono quasi identici. Lo standard congiunto si chiama Single UNIX Specification Version 3 ed è disponibile gratuitamente su Internet [14] .

Per motivi di compatibilità, diversi creatori di sistemi Unix hanno suggerito di utilizzare ELF , il  formato di sistema SVR4 per file binari e oggetti . Formato unico completamente garantisce che i file binari corrispondano all'interno della stessa architettura del computer.

La struttura delle directory di alcuni sistemi, in particolare GNU/Linux , è definita nel Filesystem Hierarchy Standard . Tuttavia, per molti versi questo tipo di standard è controverso e, anche all'interno della comunità GNU/Linux, è tutt'altro che universale. .

Comandi standard

Image
Il comando man può visualizzare la pagina man per qualsiasi comando sul sistema.

Tra i comandi Unix standard [15] :

60 comandi dalla sezione 1 della prima versione di Unix:

Note

  1. "UNIX" è un marchio registrato di The Open Group .
  2. Domande frequenti sulle singole specifiche UNIX . www.opengroup.org. Data di accesso: 16 febbraio 2016 Archiviata dall'originale il 27 settembre 2011.
  3. Certificazione UNIX - Il Sistema UNIX - Il Marchio . www.unix.org. Data di accesso: 16 febbraio 2016 Archiviata dall'originale il 9 marzo 2016.
  4. Statistiche del sistema operativo  . www.w3schools.com Estratto il 23 marzo 2019 . Archiviato dall'originale il 17 settembre 2015.
  5. ^ Ritchie, Dennis M. L'evoluzione del sistema di condivisione del tempo Unix ( PDF). Estratto il 14 febbraio 2022 . Archiviato dall'originale il 3 aprile 2017.  
  6. "Informazioni Uniplex e servizio informatico"
  7. "Informazioni multiple e servizi informatici"
  8. ↑ Condividi, Intervista ad Alexey con Brian Kernighan (eng.) . Linux Journal (29 luglio 2003). Archiviato dall'originale il 18 ottobre 2017.  
  9. Intervista a Peter G. Neumann  // ;login:  [ it] . — Vol. 42 . — pag. 38 . Archiviato dall'originale il 14 febbraio 2022.
  10. Funzione speciale: UNIX  //  InfoWorld: Journal. - 1982. - 29 novembre. — pag. 124 . — ISSN 0199-6649 .
  11. Vahalia Y. UNIX dall'interno. - San Pietroburgo: Pietro, 2003. - S. 33.
  12. ^ Il copyright Unix di Novell è stato rimosso (downlink ) (25/08/09). Estratto il 10 giugno 2010. Archiviato dall'originale il 12 giugno 2013. 
  13. SCO finalmente perso nella causa contro Novell (14/06/10). Estratto il 14 giugno 2010 . Archiviato dall'originale il 6 settembre 2011.
  14. Il gruppo aperto . Specifica UNIX singola versione 3 (1998). Estratto il 10 giugno 2010 . Archiviato dall'originale il 22 agosto 2011.
  15. Vedi anche l' elenco classificato dei comandi Unix Archiviato il 18 marzo 2009 su Wayback Machine

Letteratura

  • Evy Nemeth, Garth Snyder, Trent Hein, Ben Whaley. Manuale di amministrazione di sistema Unix e Linux, 4a edizione = Manuale di amministrazione di sistema Unix e Linux, 4a. - M .: "Williams" , 2011. - 1312 p. — ISBN 978-5-8459-1740-9 .
  • Robachevsky A. M., Nemnyugin S. A., Stesik O. L. Sistema operativo UNIX. - 2a ed. - San Pietroburgo. : BHV-Pietroburgo , 2010. - 656 pag. - ISBN 978-5-94157-538-1 UDC 681.3.06 LBC 32.973.26-018.2.
  • Roberto Shimonsky. Impara Unix da solo. 10 minuti per lezione = Sams Teach Yourself Unix in 10 minuti. - M .: "Williams" , 2006. - S. 272. - ISBN 0-672-32764-3 .
  • Eric C. Raymond. Arte della programmazione Unix = Arte della programmazione Unix. - M .: "Williams" , 2005. - S.  544 . — ISBN 0-13-142901-9 .
  • Robbins A. Unix. Directory. Per. dall'inglese. 4a edizione. - "KUDITS-PRESS" , 2007. - S. 864. - ISBN 5-91136-031-4 .

Collegamenti