Research Unix

Questa voce o sezione  sull'argomento informatica è priva o carente di note e riferimenti bibliografici puntuali.

* * *

Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento.

Research Unix è un termine che si riferisce alle varie versioni del sistema operativo Unix sviluppate per i computer computer DEC PDP-7, PDP-11, VAX e Interdata 7/32 e 8/32, realizzate dal Bell Labs Computing Sciences Research Center, comunemente conosciuto come Dipartimento 1127.

## Storia

[modifica | modifica wikitesto]

Versione Unix 7 per il PDP-11, eseguito in SIMH

Il termine "Research Unix" è stato introdotto per la prima volta in un articolo pubblicato nel Bell System Technical Journal (Volume 57, Numero 6, Luglio/Agosto 1978)[1]. Questa denominazione è stata coniata per distinguere questa iterazione del sistema operativo Unix da altre versioni interne sviluppate nei laboratori Bell Labs, come PWB/UNIX e MERT, che avevano subito modifiche significative rispetto alle prime versioni del Computer Systems Research Group (CSRC). L'uso del termine "Research Unix" è stato inizialmente sporadico, ma ha acquisito maggiore rilevanza a partire dalla versione 8 del sistema, estendendosi successivamente anche alle versioni precedenti. Prima dell'ottava edizione, il sistema era comunemente conosciuto semplicemente come "UNIX" (in maiuscolo) o come "UNIX Time-Sharing System."

La quinta edizione di Unix è stata distribuita da AT&T alle istituzioni educative, mentre la sesta edizione è stata resa disponibile anche per le organizzazioni commerciali. Le istituzioni accademiche dovevano versare una tariffa di 200 dollari, mentre le aziende erano tenute a pagare 20.000 dollari, una cifra significativa destinata a scoraggiare un utilizzo commerciale del sistema.

Nonostante questa differenziazione tariffaria, la sesta edizione si è rivelata essere la versione più diffusa negli anni '80. Per identificare le versioni specifiche di Research Unix, si faceva comunemente riferimento all'edizione del manuale corrispondente, poiché le prime versioni erano state sviluppate in modo organico senza una distribuzione al di fuori dei Bell Labs. Di conseguenza, la prima edizione è considerata la versione iniziale, mentre la decima rappresenta l'edizione finale di Research Unix.

Questi dettagli evidenziano la storia complessa dello sviluppo di Research Unix e il suo ruolo cruciale nell'evoluzione dei moderni sistemi operativi Unix e Unix-like.

Un altro modo comune di indicare la versione è "Unix versione x" (o "Vx"), dove x rappresenta la versione del manuale. Tutte le moderne edizioni di Unix (ad eccezione dei sistemi Unix compatibili come Coherent, Minix e Linux) derivano dalla settima edizione.

A partire dall'ottava edizione, il sistema operativo Research Unix ha mostrato una forte correlazione con BSD, poiché si decise di utilizzare 4.1cBSD come base per questa versione. In un post pubblicato su Usenet nel 2000, Dennis Ritchie descrisse queste ultime versioni di Research Unix come più simili a BSD piuttosto che a System V, il quale includeva anch'esso del codice derivante da BSD. Ritchie osservò:

«Research Unix ottava edizione è partito (così mi sembra) da BSD 4.1c, ma con molto materiale sostituito dal nostro. Si è proseguito allo stesso modo per la nona e la decima edizione. Il set di comandi ordinario, ritengo, era a tratti più simile a BSD piuttosto che a SysVish, ma rimaneva piuttosto eclettico.»

Questa evoluzione sottolinea l'importanza della collaborazione tra i vari sviluppatori e le influenze reciproche tra i sistemi operativi, contribuendo così alla formazione delle moderne distribuzioni Unix-like.

## Versioni

[modifica | modifica wikitesto]

Edizione del manuale  | Data di rilascio  | Descrizione

|
|

Edizione 1  | 3 novembre 1971  | La prima edizione del manuale Unix, pubblicata il 3 novembre 1971, è stata modellata sulla versione del manuale del PDP-11. Questa edizione includeva la Thompson shell,[2] i comandi `mail`, `cp` e `su`. Il sistema operativo era stato sviluppato per due anni[3], essendo stato portato dal PDP-7 al PDP-11/20 nel 1970
Edizione 2  | 12 giugno 1972  | Nella seconda edizione del manuale Unix, il numero totale di installazioni era di 10, una cifra che fu considerata "più di quello che ci si aspettava" secondo la prefazione al manuale. Questa edizione includeva il comando `echo`[4] e il primo compilatore C, segnando un passo significativo nell'evoluzione del sistema operativo.
Edizione 3  | febbraio 1973  | Sono stati introdotti diversi strumenti e funzionalità significative, tra cui il linguaggio di programmazione C, il concetto di pipeline, detto Unix pipe, per la comunicazione tra processi, il programma Crypt per la crittografia e Yacc, un generatore di parser. I comandi del sistema operativo sono stati organizzati in due directory principali: /bin e /usr/bin, richiedendo all'utente di specificare il percorso dei comandi. In questa configurazione, /usr fungeva anche da punto di montaggio per un secondo disco rigido. Il numero totale di installazioni di questa edizione era di 16.
Edizione 4  | novembre 1973  | Questa edizione Unix, rappresenta la prima versione scritta in C. In questa edizione sono stati introdotti diversi strumenti, tra cui groups[5], `grep` e `printf`[3]. Il numero totale di installazioni era indicato come "più di 20". Inoltre, il manuale è stato formattato utilizzando troff[6] per la prima volta. Questa versione è stata descritta da Ken Thompson e Dennis Ritchie nella rivista Communications of the ACM,[7] segnando la prima presentazione pubblica del sistema operativo.[3]
Edizione 5  | giugno 1974  | Fu ampiamente distribuita alle istituzioni educative. In questa versione furono introdotti comandi fondamentali come `find`, `dd `, oltre al concetto di sticky bit. Il sistema operativo era progettato per le macchine PDP-11/40 e altri modelli della serie PDP-11 con indirizzi a 18 bit. Il numero totale di installazioni superava le 50. Questa versione migliora la chiarezza e la coerenza del testo, mantenendo il contenuto originale.
Edizione 6  | maggio 1975  | Ha introdotto importanti strumenti come i linguaggi di programmazione `ratfor` e `bc`. Questa è stata la prima versione distribuita anche agli utenti commerciali[8], con la possibilità di portare il sistema su hardware non PDP. Nel maggio 1977, è stata rilasciata una versione ridotta chiamata MINI-UNIX, progettata per macchine a basso costo come il PDP-11/10
Edizione 7  | gennaio 1979  | Furono introdotti strumenti fondamentali come la Bourne shell, `cpio`, `sed`, `ioctl`[9], `awk`, `f77`[10], `spell`[11] e `stdio`[12]. Questa versione incorporò la maggior parte degli strumenti provenienti da PWB/UNIX e presentava un kernel ampiamente modificato, con oltre l'80% di codice nuovo rispetto alla sesta edizione. Nel febbraio 1979, fu progettato un port chiamato 32V[13] per l'hardware DEC VAX[14]; 32V divenne la base per la 4BSD.
Edizione 8  | febbraio 1985  | È una versione modificata di4.1cBSD[15] per il VAX, con la shell di System V e i socket sostituiti da STREAMS[16]. Utilizzato esclusivamente e concesso solo per uso educativo. Il terminale Blit divenne l'interfaccia grafica principale. Fu aggiunto un file system di rete che consente l'accesso remoto ai file nel formato `/n/hostname/path` e una API. È la prima versione priva di codice assembly nella documentazione
Edizione 9  | settembre 1986  | In questa edizione venne incorporato il codice sorgente di 4.3BSD ma venne distribuito solo per uso interno all'azienda. Questa versione includeva una generalizzazione degli Streams ICP[17] introdotti nella versione 8. La chiamata al sistema di montaggio fu estesa per supportare lo streaming di un file, collegato a un programma in user level. Questo meccanismo serviva a implementare la connessione di rete nello spazio utente.[18] Altre innovazioni includevano `make`[19] e il `Sam`.[20]. Secondo Dennis Ritchie, le versioni V9 e V10 erano "concettuali": sebbene esistessero manuali, non fu mai rilasciata una distribuzione completa e coerente del sistema operativo.[21]
Edizione 10  | ottobre 1989  | L'ultimo Research Unix. Nonostante il manuale fosse stato pubblicato al di fuori di AT&T da Saunders College Publishing[22], non esistevano distribuzioni complete del sistema operativo[21]. Le novità includevano strumenti grafici di typesetting, strumenti per lavorare con troff[6], un interprete per il linguaggio C, programmi di animazione e molti altri strumenti poi distribuiti in Plan 9, come il tool di build Mk[23] e la shell rc. La versione 10 fu anche la base per il sistema operativo IX di Doug McIlroy e James A. Reeds.[24]

Le versioni 3, 4 e 5 non dovrebbero essere confuse con UNIX 3.0, UNIX 4.0 e UNIX 5.0 rilasciate da AT&T UNIX Support Group. Dopo la versione 10 lo sviluppo di Unix ai Bell Labs fu interrotto in favore di Plan 9 (che condivide parte del suo spazio utente con V10).

## Note

[modifica | modifica wikitesto]

1. ^ Byte Magazine Volume 08 Number 10 - UNIX, 1983-10. URL consultato il 12 aprile 2024.
2. ^ La Thompson shell è stata la prima shell di Unix, introdotta nella prima versione del sistema operativo Unix nel 1971 e sviluppata da Ken Thompson. Questa shell fungeva da semplice interprete di comandi, non progettato per la scrittura di script, ma ha comunque introdotto diverse funzionalità innovative per l'interfaccia a riga di comando.
3. ^ a b c McIlroy, A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF), su cs.dartmouth.edu, CSTR, n. 139, Bell Labs, 1987.
4. ^ Il comando `echo` è uno strumento versatile e ampiamente utilizzato per la visualizzazione di messaggi e la gestione dell'output nei terminali Unix. È particolarmente utile nella scrittura di script per comunicare informazioni all'utente o per registrare dati in file.
5. ^ In ambito Unix, i groups (gruppi) sono collezioni di utenti che possono condividere file e altre risorse di sistema. Ogni gruppo ha un nome, un numero di identificazione del gruppo (GID) e un elenco di nomi utente che ne fanno parte.
6. ^ a b In ambito Unix, troff è un sistema di elaborazione documentale sviluppato da Bell Labs, utilizzato principalmente per la formattazione e il typesetting di testi. È l'evoluzione del programma roff, originariamente creato per il sistema CTSS del MIT.
7. ^ D. M. Ritchie e K. Thompson, The UNIX Time-Sharing System, in CACM, vol. 17, n. 7, 1974, pp. 365-375. URL consultato il 26 aprile 2015 (archiviato dall'url originale il 30 dicembre 2005).
8. ^ Fiedler, Ryan, The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace, in BYTE, ottobre 1983, p. 132\. URL consultato il 30 gennaio 2015.
9. ^ In ambito Unix, ioctl (Input/Output Control) è una chiamata di sistema utilizzata per controllare i parametri di dispositivi speciali e interagire con i driver di dispositivo. Questa funzione consente di eseguire operazioni che non possono essere facilmente gestite tramite le normali chiamate di I/O, come leggere e scrivere dati.
10. ^ In ambito Unix, F77 si riferisce a un compilatore per il linguaggio di programmazione Fortran 77. È stato uno dei primi compilatori completi per Fortran 77 e ha giocato un ruolo significativo nello sviluppo di software scientifico e ingegneristico.
11. ^ In ambito Unix, spell è un programma di controllo ortografico standard per la lingua inglese. Introdotto nella sesta edizione di Unix, è stato originariamente sviluppato da Stephen C. Johnson presso i Bell Labs nel 1975.
12. ^ In ambito Unix, STDOUT (Standard Output) è il flusso predefinito attraverso il quale un programma scrive i suoi output. Questo flusso è rappresentato dal file descriptor numero 1 e, per impostazione predefinita, è collegato al terminale dell'utente.
13. ^ in ambito Unix si riferisce alla creazione di una versione del sistema operativo Unix, denominata 32V, progettata specificamente per l'hardware DEC VAX. Questo port rappresenta un'importante evoluzione nella portabilità di Unix, consentendo al sistema operativo di funzionare su architetture diverse da quelle originariamente supportate, come il PDP-11.
14. ^ In ambito Unix, DEC VAX si riferisce a una serie di computer sviluppati dalla Digital Equipment Corporation (DEC), caratterizzati da un'architettura a 32 bit e dalla gestione della memoria virtuale. Il termine VAX è un acronimo per Virtual Address eXtension.
15. ^ La 4.1cBSD è una versione intermedia della Berkeley Software Distribution (BSD) rilasciata nel 1983, durante lo sviluppo della successiva versione 4.2BSD. Questa release includeva vari bugfix e miglioramenti rispetto alle versioni precedenti.
16. ^ In ambito Unix, STREAMS è un framework nativo per il sistema Unix System V, progettato per implementare driver di dispositivi a carattere, protocolli di rete e comunicazione tra processi.
17. ^ In ambito Unix, la frase "generalizzazione degli Streams ICP" si riferisce all'estensione e all'adattamento del framework STREAMS per la comunicazione interprocesso (ICP, Inter-Process Communication). Dettagli STREAMS è un'architettura modulare che consente di gestire flussi di dati tra processi in user space e driver nel kernel. La "generalizzazione" implica che il sistema è stato reso più flessibile e applicabile a una varietà di scenari di comunicazione, non limitandosi a un singolo tipo di interazione. Incorporazione di ICP: L'integrazione degli Streams ICP significa che il sistema ora supporta una gamma più ampia di protocolli e modalità di comunicazione, facilitando la creazione di applicazioni che richiedono interazioni complesse tra diversi processi o dispositivi. In sintesi, questa frase indica un miglioramento significativo nella capacità di gestire la comunicazione tra processi, rendendo il sistema più versatile e potente.
18. ^ David L. Presotto e Dennis M. Ritchie, Interprocess Communication in the Ninth Edition Unix System, in Software—Practice and Experience, vol. 19, 1990. URL consultato il 26 aprile 2015 (archiviato dall'url originale il 3 febbraio 2015).
19. ^ In ambito Unix, make è un'utilità fondamentale per la gestione e la manutenzione di programmi software. È progettata per automatizzare il processo di compilazione, determinando quali parti di un programma devono essere ricompilate e emettendo i comandi necessari per farlo.
20. ^ M. D. McIlroy (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 Archiviato il 10 luglio 2012 in Internet Archive.. CSTR 139, Bell Labs.
21. ^ a b Dennis Ritchie, [TUHS] Re: V7 UNIX on VAX 11/750, su minnie.tuhs.org, 27 giugno 2003. URL consultato il 9 aprile 2014 (archiviato dall'url originale il 20 giugno 2014).
22. ^ Unix Tenth Edition Manual, su cs.bell-labs.com, Bell Labs. URL consultato il 25 dicembre 2013 (archiviato dall'url originale il 3 febbraio 2015).
23. ^ Il termine "tool di build Mk" si riferisce a un sistema di costruzione utilizzato per automatizzare il processo di compilazione e assemblaggio del codice sorgente in artefatti eseguibili nel contesto dello sviluppo software. Cos'è un sistema di build? Un sistema di build è un insieme di strumenti e procedure che gestiscono la trasformazione del codice sorgente in un prodotto finale, come un'applicazione o una libreria. Questo processo può includere la compilazione, il linking e altre operazioni necessarie per preparare il software per l'esecuzione o la distribuzione. Mk (Make) Il termine "Mk" si riferisce specificamente a Make, uno dei più noti tool di build. Make utilizza file di configurazione (tipicamente chiamati `Makefile`) per definire come i vari componenti del software devono essere costruiti e quali dipendenze devono essere soddisfatte. È stato ampiamente utilizzato in vari progetti software, ma presenta alcune limitazioni in termini di velocità e scalabilità, specialmente in progetti di grandi dimensioni come Android 1 3 .
24. ^ The IX Multilevel-Secure UNIX System, su cs.dartmouth.edu.

## Voci correlate

[modifica | modifica wikitesto]

* Unix
* Plan 9
* Inferno (sistema operativo)

## Altri progetti

[modifica | modifica wikitesto]

Altri progetti

* Wikimedia Commons

* Wikimedia Commons contiene immagini o altri file su Research Unix

## Collegamenti esterni

[modifica | modifica wikitesto]

* UNIX Evolution (PostScript) by Ian F. Darwin and Geoffrey Collyer
* Unix heritage \- More links and source code for some Research Unix versions
* The Evolution of the Unix Time-sharing System Archiviato l'8 aprile 2015 in Internet Archive. by Dennis M. Ritchie
* The Restoration of Early UNIX Artifacts by Warren Toomey, School of IT, Bond University
* Full Manual Pages documentation for Research Unix 8th Edition, su man.cat-v.org.

V · D · M

Sistemi operativi

Storia · Cronologia · Lista
Unix| | UNIX| AIX · Amiga Unix · A/UX · HP-UX · IRIX · macOS · Research Unix · SCO UNIX · Solaris · Tru64 · XENIX

|

Unix-like| | BSD| 386BSD · Darwin · DesktopBSD · DragonFly BSD · FreeBSD · FreeNAS · m0n0wall · NetBSD · OpenBSD · pfSense

|

GNU| GNU/Hurd · Varianti GNU (GNU/Linux · GNU/kFreeBSD · NexentaOS)
Altri| Android · MINIX · NeXTSTEP · OpenSolaris · Illumos (OpenIndiana) · OS-9 · QNX · Redox
Macintosh| | System Software| System 1 · System 2 · System 3 · System 4 · System 5 · System 6 · System 7

|

Classic Mac OS| Mac OS 8 · Mac OS 9
Mac OS X| Cheetah (10.0) · Puma (10.1) · Jaguar (10.2) · Panther (10.3) · Tiger (10.4) · Leopard (10.5) · Snow Leopard (10.6) · Lion (10.7)
OS X| Mountain Lion (10.8) · Mavericks (10.9) · Yosemite (10.10) · El Capitan (10.11)
macOS| Sierra (10.12) · High Sierra (10.13) · Mojave (10.14) · Catalina (10.15) · Big Sur (11.0) · Monterey (12.0) · Ventura (13.0) · Sonoma (14.0) · Sequoia (15.0)
Microsoft Windows| 95 · 98 · Me · NT 3.1 · NT 3.5 · NT 3.51 · NT 4.0 · 2000 · XP · Server 2003 \- FLP · Vista · Server 2008 · 7 · Server 2008 R2 · 8 · 8.1 · RT · Server 2012 · 10 · Server 2016 · Server 2019 · Server 2022 · 11
DOS| DR-DOS · FreeDOS · MS-DOS · PC DOS
WebOS| Desktoptwo · eyeOS · YouOS
Altri| AmigaOS · Apple DOS · Apple SOS · AROS · BeOS · CP/M · Haiku · IBM i · Inferno · Möbius · MorphOS · MVS · OS/2 · ProDOS · ReactOS · SkyOS · TempleOS · VMS · Cosmos · Chrome OS
Per dispositivi mobili
(palmari e smartphone)| Android · iOS · Sailfish OS · Windows Phone 8 (Windows Phone 8.1) · Windows 10 Mobile · Palm OS · Symbian OS · Windows CE (Pocket PC · Windows Mobile · Windows Phone 7 · Microsoft Auto) · MeeGo · altri

Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
*[PDF]: documento in formato PDF
*[url originale]: http://www.cs.bell-labs.com/10thEdMan