Upload
felice-pescatore
View
223
Download
0
Embed Size (px)
DESCRIPTION
Ripercorriamo la storia dei sistemi *nix nell'ambito del Linux Day 2013 di Avellino
Citation preview
Linux Day Avellinoframework
Felice Pescatorewww.storiainformatica.it
Da Thompson a Torvalds:
passato, presente e futuro del mondo
*nix
AGENDA
• Le origini di Unix
• Da Unix a Linux passando per Minix
• Linux Oggi
2
3
Le origini di Unix
Cos’è un Sistema Operativo?I 5 punti salienti
Un Sistema Operativo (Operating System) è programma di controllo di un
calcolatore che consente di:
• allocare e gestire le risorse;
• schedulare i task;
• fornire una piattaforma per eseguire applicazioni utente;
• fornire una interfaccia di gestione delle risorse per gli sviluppatori;
• Fornire una interfaccia tra utilizzatori e computer.
4
Before UnixA batch world
5
Prima dell’avvento di Unix, la maggior parte dei sistemi operativi funzionano
come una collezione di processi batch, eseguiti in modo sequenziale.
Questo approccio, accettabile agli albori dell’elettronica moderna, non riesce
chiaramente a tenere il passo dell’inarrestabile evoluzione dei calcolatori.
#1
Enter data in files to be later processed
#2
Process Collection or “Batch” of files
#3
Enter data in files to be later processed
Space Travel and MULTICS 1969
6
Nel 1969, il giovane ingegnere a Ken Thompson è impegnato nel Progetto MULTICS
presso gli AT&T Bell Laboratories.
Parallelamente si dedica allo viluppo di Space Travel, un simulatore del Sistema Solare
che consente al giocatore di pilotare una navetta, navigando tra i pianeti e tentando
anche di effettuare l’atterraggio.
Il gioco è scritto inizialmente in assembly per MULTICS e poi convertito in Fortran per
GECOS (sistema operativo della GE messo a fattore comune per MULTICS). Il risultato
non è propriamente entusiasmante:• la simulazione soffre di frequenti «scatti» ed il
gioco è difficile da controllare a causa
dell’interazione tramite comandi da digitare sulla
tastiera;
• il costo per partita è di circa 75$ se si considera il
costo di impiego della CPU
Space Travel and PDP-7La nascita di Unix
7
Thompson, supportato da Dennis Ritchie, decide di sfruttare un PDP-7 poco
utilizzato per realizzare una versione «avanzata» di Space Travel, ritenendo il
suo sottosistema grafico assolutamente adeguato al compito.
L’impresa è però ardua: i due colleghi devono riscrivere praticamente l’intero
sistema di controllo dell’hardware da zero: dalle rutine di gestione
dell’aritmetica in virgola mobile fino al sistema di Debug.
Il tutto viene creato in assembly con un cross-compiler che gira su GECOS e
da cui si ricavano schede/nastri perforate/i da caricare nel PDP-7.
Thompson si innamora del PDP-7 e decide di creare un file-system ed una
serie di utility per operare direttamente con esso, senza la necessità di
passare attraverso GECOS: nasce il primo embrione di UNIX!
UNIXA name suggested by Peter Neumann
8
Il nome UNIX derivava da un gioco di parole sull'acronimo MULTICS
(Multiplexed Information and Computing Service), ironizzando sul fatto
che UNIX sarebbe riuscito a fare una cosa fondamentale che a MULTICS
non era riuscita (almeno finché AT&T era parte del progetto): eseguire
programmi.
Ken Thompson, Dennis Ritchie e Peter Neumann
UNIX evolution stepMost changes
9
• 1971, 3 novembre:
prima release ufficiale
di Unix
• 1972, 6 dicembre:
seconda release
• 1973: Unix viene quasi
interamente riscritto in
C
• 1978: nasce BSD
(Berkeley Software
Distribution)
BSDBerkeley Software Distribution
10
AT&T scegli come utenti privilegiati le Università e propria in una di esse,
Berkeley, Bill Joy e Chuck Haley effettuano importanti modifiche sul
codice originale di Unix (acquistato su nastro per 400$) e nel 1978
rilasciano una propria versione custom denominata "Berkeley Software
Distribution”: ovvero BSD.
Bill Joy
11
Da Unix a Linux passando per Minix
I sistemi operativi negli anni ‘80One leader
• Microsoft con il DOS domina il settore dei sistemi operativi per PC;
• Apple ha il MAC, ma la quota di mercato è esigua;
• UNIX è potente ma poco adatto ai Personal Computer e al mercato
consumer;
Tutti e tre hanno una caratteristica comune: sono proprietari e il loro codice
è protetto da copyright ed è chiuso.
Ciò rende impossibile effettuare alcuna modifica senza pagare alte
commissioni in licenze speciali.
11
Il progetto GNURichard Stallman
13
Nel 1983 Richard Stallman crea il progetto GNU, credendo fortemente che
il software deve essere libero da restrizioni di copyright in modo da poterlo
modificare, adattare e migliorare in base alle proprie esigenze.
GNU is a recursive acronym for “GNU's Not Unix” Aim at developing a complete Unix-like operating system which is free for copying and modification
Companies make their money by maintaining and distributing the software, e.g. optimally packaging the software with different tools (Redhat, Slackware, Mandrake, SuSE, etc)
Stallman built the first free GNU C Compiler in 1991. But still, an OS was yet to be developed
Minix e LinuxTanenbaum -> Torvalds
14
• Il professor Andrew Tanenbaum realizza a scopi didattici Minix, ispirato
a UNIX ma con un’architettura a microkernel ed eseguibile su un comune
PC;
• Il 17 settembre del 1991, Linus Torvalds, studente al secondo anno di
Computer all’Università di Helsinki, presenta pubblicamente il primo
embrione di un kernel monolitico, che diventerà Linux 0.01.
Message from Professor Andrew Tanenbaum to Linus Torvalds
" I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)“
Linux in the beginning… a terminal!
15
Linux nasce come un emulatore di terminale (scritto in C e Assembly)
eseguibile senza alcun sistema operativo e finalizzato, principalmente, a due
operazioni: mandare segnali alla porta seriale e riceverli, il tutto attraverso
due thread separati. Torvalds ne decide lo sviluppo trovando macchinoso e
inefficiente quanto realizzato da Tanenbaum con Minux.
Ben presto emerge la necessità di aggiungere il supporto ad un file system
per consentire la gestione di operazioni di I/O su disco (lettura e scrittura),
dando il via alla lenta trasformazione del terminale in un vero e proprio
Kernel.
ATTENZIONE: LINUX è in realtà il nome del KERNEL, mentre il nome del
sistema operativo che su esso si poggia è GNU/Linux con tutti i relativi
componenti
Linux in the beginning… the name!
16
Il nome "Linux”, a dispetto dell’assonanza tra il nome dell’ideatore e quello
del sistema (LINus UniX), è da attribuirsi a Ari Lemke, assistente
alla Helsinki University of Technology, che mette a disposizione lo spazio
FTP per il progetto (ftp.funet.fi) e lo sceglie come nome della directory. Il
nome originariamente scelto da Torvalds, invece, era Freax, una
combinazione tra “free”, “freak” e “x”, ad indicare le caratteristiche Unix-like
del sistema.
LINUX e MINIX non hanno alcun codice sorgente in
comune, ma condividono l’dea di fondo: realizzare un
sistema UNIX like in grado di funzionare sui comuni
personal computer.
Linux in the beginning… TUX!
17
Tux è la mascotte ufficiale del kernel
Linux, creata da Larry
Ewing nel 1996 ed ispirata da Tove
Torvalds, moglie di Linus.
TUX = Torvalds UniX (James
Hughes).
Linux oggi
18
Distribuzionitante soluzioni
19
Le differenze tra le varie distribuzioni Linux sono di carattere tecnico, organizzativo e filosofico. Le prime consistono in un diverso supporto dei dispositivi hardware e nella configurazione del sistema operativo e dei pacchetti software. Le seconde sono spesso motivate da scelte tecniche ma anche da ragioni storiche e/o filosofiche.
Il sito web DistroWatch offre una panoramica di tutte le distribuzioni Linux più note, attive o meno, e mantiene una classifica delle distribuzioni, usando il page viewcome misura della popolarità relativa[2].
Distribuzionicomposizione
20
Una tipica distribuzione Linux moderna comprende un kernel Linux,
librerie e strumenti GNU, software addizionale, documentazione, un
server grafico, un window manager e/o un ambiente
destkop un terminale virtuale, ed un sistema di gestione dei pacchetti.
Molte distribuzioni forniscono un sistema di installazione simile a quello
di altri moderni sistemi operativi. Distribuzioni self-hosting come Gentoo
Linux forniscono il codice sorgente di tutto il software ed includono le
versioni eseguibili solo di un kernel base, compilatore e programma di
installazione; questo programma compila tutto il software per la
specifica architettura del computer dell’utente.
FOSSFree and Open Source Software
21
La quasi totalità del software incluso in una distro Linux è FOSS (
Free and Open Source Software - Software libero Open Source) che è
distribuito dagli sviluppatori sia in forma precompilata che come codice
sorgente, cosa che permette agli utenti di modificare e ricompilare il
codice originale a proprio piacimento. Una parte del software incluso in
alcune distribuzioni può essere proprietario e non disponibile sotto forma
di sorgenti.
Distribuzionitante soluzioni
22
Ubuntu: attualmente la Distribuzione più diffusa, è basata su Debian e si propone di offrire un sistema operativo completo e semplice da utilizzare, insieme alle sue derivate ufficiali:
Kubuntu: versione di Ubuntu equipaggiata con il desktop environment KDE.Xubuntu: versione di Ubuntu equipaggiata con il desktop environment XFCE.Lubuntu: versione di Ubuntu equipaggiata con il desktop environment LXDE, adatto a PC molto vecchi e poco performanti.Edubuntu: versione di Ubuntu pensata
principalmente per l’utilizzo in ambito scolastico.Arch Linux: distribuzione rolling release minimalista, veloce, leggera ed altamente personalizzabile. Di default non è installato né il desktop environment, né il server X, e l’altissima necessità di utilizzare comandi da terminale e procedure di compilazione per l’installazione dei vari software la rende una distro poco adatta all’utenza comune. CentOS: derivata da Red Hat Linux, mira ad offrire un sistema operativo libero e gratuito per il mercato enterprise Chakra GNU/Linux: distribuzione che mira ad offrire una versione di Arch Linux completa e semplice da usare.
Debian: distribuzione contenente solo software libero e sostenuta da una comunità di volontari da tutto il mondo usata come base per molti altri sistemi operativi.DragonFly BSD: distro di linux gratuita della BSD la cui prima versione è stata pubblicata il 2008-12-13Fedora: distribuzione realizzata in stretta collaborazione con la comunità GNU/Linux e sponsorizzata da Red HatGentoo: distribuzione dedicata agli utenti esperti, è nota per il suo sistema di gestione dei pacchetti che permette di installare le applicazioni direttamente dal codice sorgente.Linux Mint: basata su Ubuntu, è equipaggiata di default con codec proprietari e con GNOME Shell e MATE al posto di Unity.Mandriva Linux: originariamente chiamata Mandrake Linux, punta all’utilizzo da parte degli utenti meno esperti con un sistema facile da utilizzare.Red Hat Linux: basata su Fedora, è una distribuzione commerciale direttamente sviluppata da Red Hat.openSUSE: distribuzione creata da sviluppatori volontari e sponsorizzata da Novell.SUSE Linux: versione commerciale di openSUSE sviluppata da Novell.Slackware: una delle distribuzioni più longeve (nasce nel 1993), è essenziale ed elegante ed è oggi una delle più apprezzate e utilizzate dall’utenza esperta per la sua alta stabilità.
DiffusioneGrowing and growing…
23
Nel 1992, quando Torvalds rese disponibile il codice sorgente di Linux, gli
utenti del “pinguino” erano circa un centinaio per poi diventare un migliaio
l’anno successivo.
http://linuxcounter.net/
At 19/10/2013 10:05pm, there are
120,206users and
98,064machines registered.
My guess at the number of Linux users
68,146,527
World population: 7,171,224,802Internet users: 2,672,415,435
@felicepescatore
ABOUT MEget in touch
24
Disciplined Agile Delivery Italy Group
Felice Pescatore, Agile Software
Architect
Email: [email protected]
Cell. 392/7157684
www.felicepescatore.it
THANKS FOR WATCHING
25