Punto informatico Network
Canali
20080829221338

GNU e Linux - Storia... "antica"

19/12/2009
- A cura di
Linux & Open Source - Dai primi sistemi in time-sharing alle distribuzioni moderne. Tre decenni di tecnologie e menti che confluiscono.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

storia (1) , linux (1) , gnu (1) .

Valutazione

  •  
Voto complessivo 5 calcolato su 189 voti

La multiutenza consente a più persone di accedere alla stessa macchina nello stesso lasso di tempo, e di credere che essa sia interamente a loro disposizione.

Un esempio molto semplice e frequente è la connessione ad un sito Internet. Apriamo il nostro browser e digitiamo l'indirizzo: la pagina del sito ci compare davanti e ci possiamo fare tutto ciò che il server ci concede, come se fossimo sul posto e come se fosse tutto solo per noi. Ma non è vero: è solo un'illusione data dalla multiutenza, e si può pensare come una forma analoga di multitasking dove, al posto dei processi, ci sono le istanze utente.

Tutto questo sotto il profilo del time-sharing, ovvero la "condivisione temporale" gestita dai kernel moderni che prende diverse forme, come multiutenza (condivisione di risorse da parte degli utenti) o multitasking (condivisione di risorse da parte dei processi).

Sembra impensabile che fino ad un certo punto della storia dell'informatica soltanto un utente o un processo alla volta potesse utilizzare una macchina. Ma si sa, le tecnologie non saltano fuori dal nulla, e prima della comparsa di una nuova idea c'è sempre un qualche cosa di "più primitivo". Il time-sharing fu un punto di svolta, e il CTSS fu una pietra miliare. Ma non finì qui, ci furono molti "raffinamenti successivi" nella storia di GNU/Linux e per conoscerli dobbiamo tornare in carreggiata...

Multics, una fucina di nuove idee

Il Multics (Multiplexed Information and Computing System) fu uno sforzo congiunto di Bell Labs, MIT e General Electric per fornire un nuovo sistema operativo che utilizzasse il time-sharing. Lo sviluppo del software cominciò nel 1964 e, al pari del CTSS, portò una serie di innovazioni tecnologiche al mondo dell'informatica.

Fu il primo sistema operativo ad introdurre un filesystem gerarchico (il sistema cartelle-file-sottocartelle connesse insieme da una directory radice) e le access control lists (o ACL), ovvero un metodo per controllare quale utente avrebbe potuto compiere quale azione su quale file: è l'equivalente dei moderni "permessi" in un filesystem Linux. Introdusse inoltre i link simbolici, ovvero dei collegamenti "virtuali" a dei file "reali" posti in luoghi differenti del filesystem, e fu uno dei primi sistemi operativi a supportare più di un processore.

I progettisti del Multics implementarono inoltre una versione primitiva del dynamic linking (linking dinamico) tra processi in memoria: un processo che ne facesse richiesta poteva disporre successivamente di ulteriori segmenti di memoria da utilizzare nell'esecuzione. Questo permetteva ai processi di usare le routine o le funzioni più recenti programmate per essi. Il dynamic linking è estensivamente utilizzato dai compilatori odierni: le librerie condivise (dynamic linking libraries, o .dll in Windows e i shared objects o .so* in Linux) si basano su questo principio.

Un'altra grande idea fu un tipo primitivo di riconfigurazione hardware automatica "a caldo". Periferiche come banchi di memoria e unità disco potevano essere scambiati mentre la macchina era in funzione. Una specie di antenato del Plug'n'Play.

Bell Labs, Multics e Space Travel

I Bell Labs trovarono il Multics carente ed uscirono dal progetto nel 1969. Apprezzarono gli obiettivi di Multics ma non la sua architettura, a loro giudizio eccessivamente complessa. Ciononostante avevano bisogno di un sistema operativo per continuare le loro ricerche.

Cominciò tutto da un videogioco, scritto da Ken Thompson e chiamato Space Travel, per il sistema GE-645 della General Electric. Vide che era troppo lento e pesante e lo riscrisse su un PDP-7 della DEC (Digital Equipment Corporation), e fu così sorpreso dal risultato che chiese aiuto a Dennis Ritchie per scrivere un sistema operativo su quella nuova macchina. Il primo nome del sistema fu dato da Brian Kernighan, loro collega ricercatore ai Bell Labs: Unics, in contrapposizione a "Multics", che fu poi trasformato in UNIX e infine UNIX. Riprogettarono quello che poi divenne un sistema operativo più semplice e compatto, sebbene ugualmente versatile e robusto, e lo scrissero interamente in linguaggio assembly PDP-7.

Nel 1973 fu riscritto nel linguaggio C, creato dai Bell Labs appositamente per il nuovo UNIX, che portò il sistema operativo ad essere fregiato della definizione di "portabile". La caratteristica di "portabilità", infatti, consente ad un software scritto in un determinato linguaggio (definito per l'appunto "portabile") di essere compilato, assemblato e fatto girare su una macchina di qualsiasi architettura, a patto di avere il compilatore appositamente creato per quella macchina.

BSD, quattro anni dopo

Fino al 1982 il codice sorgente di UNIX poteva essere distribuito alle università, permettendo a ricercatori esterni di estenderne le funzionalità. Una di queste università fu l'Università di California, a Berkeley, che installò una delle prime versioni di UNIX sul loro PDP-11 nel 1974.

Grazie al lavoro estensivo di Bill Joy, un laureando di Berkeley, nel 1977 vide la luce per la prima volta una specie di "aggiunta" a UNIX, un compilatore del linguaggio Pascal e un editor di testo lineare, ex. Berkeley Software Distribution, o BSD, nacque, e con il passare del tempo Joy aggiunse ulteriori componenti. Alla prima versione, 1BSD, seguirono altre.

2BSD aggiunse una versione modificata del primo editor lineare ex, chiamata vi, e un tipo di shell UNIX (la C shell) la cui sintassi degli script ricorda molto la sintassi del C. Entrambi i software sono sopravvissuti al tempo e vengono utilizzati ancora oggi, sebbene in maniera meno frequente. Nel 1983 2.9BSD fu la prima versione di BSD ad essere una vera e propria "derivazione" di UNIX piuttosto che un "gruppo" di software modificati. Essa rimase sul PDP-11 quasi fino ai giorni nostri, nel 1995 con 2.11BSD.

Nel 1978 arrivò a Berkeley un VAX (Virtual Address eXtension), una macchina costruita da DEC che implementava un nuovo tipo di utilizzo della memoria, la memoria virtuale, che permette di "ingannare" un processo facendogli credere che la memoria a cui ha accesso sia contigua e relativamente vasta, mentre nella realtà può essere più o meno limitata e frammentata in RAM.

Al tempo UNIX non sapeva che cosa fosse la memoria virtuale, e così gli studenti di Berkeley riscrissero per la maggior parte il codice del kernel di UNIX e rilasciarono 3BSD, uno dei primi sistemi operativi che seppe utilizzare la memoria virtuale, nel 1979, come "biforcazione" di quel BSD che rimase sul PDP-11.

Una nuova branca dell'università di Berkeley, Computer Systems Research Group (CSRG) fu voluta dalla DARPA (Defense Advanced Research Project Agency, una "costola" del Dipartimento della Difesa statunitense) per continuare le ricerche su BSD. CSRG lavorò a tutte le versioni successive sviluppate su VAX, le 4*BSD, e sulla portabilità del sistema da quando divenne chiaro, nel 1986, che il VAX stava invecchiando troppo per poter produrre risultati apprezzabili. Nel 1995 la CSRG venne chiusa, lasciando in eredità la 4.4BSD-Lite Release 2.

Lynne Jolitz e William Jolitz, studenti dell'università di Berkeley, avevano sufficiente esperienza sul sistema BSD quando, nel 1992, rilasciarono 386BSD, una versione libera di BSD, derivata sia da versioni del PDP-11 (2.9BSD) che da versioni VAX (4.3BSD Net/2). In breve si formò una comunità di entusiasti che da 386BSD generarono NetBSD e FreeBSD nel 1993, e OpenBSD nel 1995. E fu così che anche BSD, "zio" di GNU/Linux, venne fatto conoscere al grande pubblico, con tre varianti principali che vengono usate ancora oggi.

Un salto in avanti

UNIX, in mezzo a tutta la tempesta di cambiamenti, subì evoluzioni e revisioni come qualsiasi altro software... fino a che la sua fama arrivò ad un'università di Amsterdam, facoltà di Scienze della Computazione, dove insegnava il professor Andrew S. Tanenbaum.

Pagina successiva
Pagina precedente
GNU e Linux - Storia... "antica"

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2025 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.26 sec.
    •  | Utenti conn.: 48
    •  | Revisione 2.0.1
    •  | Numero query: 44
    •  | Tempo totale query: 0.03