25
Linux Day Avellino framework Felice Pescatore www.storiainformatica.it Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

Embed Size (px)

DESCRIPTION

Ripercorriamo la storia dei sistemi *nix nell'ambito del Linux Day 2013 di Avellino

Citation preview

Page 1: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

Linux Day Avellinoframework

Felice Pescatorewww.storiainformatica.it

Da Thompson a Torvalds:

passato, presente e futuro del mondo

*nix

Page 2: 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

Page 3: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

3

Le origini di Unix

Page 4: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 5: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 6: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 7: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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!

Page 8: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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 

Page 9: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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)

Page 10: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 11: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

11

Da Unix a Linux passando per Minix

Page 12: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 13: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 14: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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 :-)“

Page 15: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 16: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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.

Page 17: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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).

Page 18: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

Linux oggi

18

Page 19: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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].

Page 20: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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.

Page 21: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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.

Page 22: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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à.

Page 23: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

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

Page 24: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

@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

Page 25: Da Thompson a Torvalds: passato, presente e futuro del mondo *nix

THANKS FOR WATCHING

25