Tutto inizia in un'estate finlandese, Linus Benedict Torvalds



Scaricare 1 Mb.
Pagina1/20
13.11.2018
Dimensione del file1 Mb.
  1   2   3   4   5   6   7   8   9   ...   20

Luglio 1991

Tutto inizia in un'estate finlandese, Linus Benedict Torvalds, ancora un giovane studente dell' Università di Helsinki, inizia a lavorare al suo hobby: Linux.
Il 3 Luglio lo si sente informarsi su usenet:
"
Hello netlanders,
Due to a project I'm working on (in minix), I'm interested in the posix standard definition. Could somebody please point me to a (preferably) machine-readable format of the latest posix rules? Ftp-sites would be nice.
"
Torvalds giustificherà poi la folle impresa con queste parole: "I couldn't afford some of the commercial OSes and I didn't want to run DOS or Windows -- I don't even know, did Windows really exist then?".


 

 

5 Ottobre 1991

Nello stesso anno viene rilasciata la versione 0.02. Il post su usenet che ne annuncia la presenza è diventato un classico.
Grazie all'archivo di 20 anni di storia di Usenet su
Google possiamo ricordare.

 

 

Gennaio 1992

Viene rilasciata la versione 0.12. Risulta relativamente stabile e supporta vario hardware.
Da questa versione in poi la crescita di Linux inizia a diventare progressiva e dirompente, sia come numero di coder che supportano lo sviluppo, sia come utilizzatori.
"
Earlier kernel releases were very much only for hackers: 0.12 actually worked quite well"

 

 

Aprile 1992

Rilasciate la versione 0.95 e 0.96. Il salto è diretto dalla 0.12. Nascono le prime distribuzioni: la MCC Linux e la SLS.

 

 

1994

Viene rilasciata la prima versione definitiva 1.0.
Nascono RedHat, Debian, SUSE tutt'ora fra le distribuzioni più diffuse.
Linux, che resta copyrighted by Linux Torvalds, diventa ufficialmente un software aperto, abbracciando in pieno la General Public License (GPL) del movimento GNU Open Source.
Grazie all'aumento esponenziale dell'interesse da parte della comunità mondiale nascono i primi
LUGs (Linux User Groups), ormai diffusi anche in Italia.

 

 

1995

Compaiono sul mercato delle nuove distribuzione commerciali come Caldera Linux. Kernel 1.2 out in Marzo.
Dal kernel 1.3 in sviluppo si passerà direttamente al 2.0


 

 

1996

Rilasciata la versione 2.0.
Compaiono le prime versioni tradotte in più lingue.
Linux ha bisogno di una
mascotte: nasce TUX, il pinguino più famoso del mondo.

 

 

1997

Da qui in poi la storia di Linux diventa sempre più Linus indipendent, nel 1997 lascia la Finlandia per raggiungere Santa Clara, Silicon Valley, dove lo aspetta, nella misteriosa start-up Transmeta, un ruolo che ai più non è chiaro.
Per anni, prima di annunciare al pubblico di produrre microprocessori a basso consumo e quotarsi al NASDAQ, Transmeta rimane un segreto impenetrabile intorno al quale si accumulano rumours e misteri:
- E' la società dove lavora Linus Torvalds (che continua a sviluppare Linux e non si capisce per cosa venga pagato)
- Fra i soci finanziatori figura Paul Allen (Microsoft co-founder)
- Assume programmatori e tecnici di altissimo livello
- Sfoggia per anni una
home page che è un capolavoro di anti-marketing.

 

 

1999

Dopo lunga attesa il kernel 2.2 vede la luce.

 

 

2001

Agli inizi dell'anno, dopo varie pre-version, su kernel.org appare l'immagine da 19.788.626 byte del 2.4.0 La prima release di un altro stable thread.

 

 

Oggi

Linux è una reale alternativa al mondo Microsoft e Unix, si ritrova milioni di utenti, migliaia di sviluppatori e un mercato in espansione.
E' presente in sistemi integrati, è usato per il controllo di dispositivi robotizzati e ha volato a bordo dello shuttle, praticamente gira su oggetti elettronici di tutti i tipi, dai palmari alle workstation Alpha, risultando l'OS in assoluto più soggetto a porting.
Nessuno ormai si sogna di considerarlo un progetto sperimentale che non possa essere usato in applicazioni mission-critical, IBM "lo monta sui suoi server" (e lo pubblicizza pure), Microsoft lo considera il principale nemico da combattere (e non lesina risorse nel farlo), Oracle ci fa girare sopra il suo DB.






GNU General Public License

 

Il testo ufficiale della GPL

 









Linux non è l'unico sistema operativo Open source.
Ne esistono
molti altri in circolazione ma quelli più conosciuti sono i dialetti *BSD (FreeBSD, OpenBSD, NetBSD).
Lo stesso kernel di
Mac Os X, Darwin, è open source (è basato su FreeBSD e Mach 3.0).

The cathedral and the bazaar di Eric Raymond è un illuminante libro sui modelli di sviluppo di software di una grande software house con sorgenti segreti (la cattedrale) e di una community di sviluppatori (il bazaar) che condividono, debuggano, sviluppano un progetto dai sorgenti aperti.


Linux è l'esempio più clamoroso di cosa il bazaar può fare. Il libro aiuta a capire perchè tutto questo è potuto accadere.




GNU e Open Source

Nel 1985 Richard Stallman, ex ricercatore del MIT, fondò la Free Software Foundation (FSF), finanziata per donazioni, alla cui base c'era il progetto GNU, che ambiva alla realizzazione di un sistemaq operativo free, nel senso più esteso del termine.
Il software free, rilasciato con la GNU General Public Licence (
GPL), in questo contesto, implica:
- Ridistribuzione Libera del software e del codice
- Il Codice Sorgente è Aperto e disponibile per lettura, modifiche, analisi, controllo
- Prodotti derivati da prodotti GPL devono avere licenza GPL
- Copyright dell'autore


Linux è il più famoso progetto GNU, di fatto è composto dal kernel di Torvalds e da molte altre utility e programmi di base, ispirate agli equivalenti Unix (Stallman insiste nel volerlo chiamare GNU/Linux, sarebbe effettivamente più corretto e rispettoso degli sforzi di moltissimi programmatori che non hanno la fama di Linux Torvalds, ma è oggettivamente un nome meno accattivante).

Spesso associato al concetto di free software è quello di opensource le differenze sono sottili, sotto certi aspetti inafferabili. Semplificando si può dire che l'Open Source si basa su principi pragmatici ed economici, mentre il Free Software (così come descitto nella GPL) ha radici più etiche e filosofiche.
In inglese si usa definire l'opensource come
free as beer e il free software come free as speech.
Per l'OSI (
Open Source Initiative) si dovrebbe rilasciare il codice del proprio software, perchè è una scelta commercialmente sostenibile e valida, per la FSF il codice dovrebbe essere aperto per rispettare la libertà degli autori e degli utenti.
Fra i fondatori dell'OSI figura
Eric Raymond noto fra l'altro per aver scritto il libro/manifesto "The Cathedral and the bazaar" il cui percorso editoriale è emblematico su cosa può essere un modello di business basato sull'open source: il libro è liberamente disponibile, nella sua interezza, in rete e chiunque può leggerlo ma l'autore ha venduto i diritti di pubblicazione su carta alla O'Reilly (che ne vende parecchie copie).




Non essendoci dati di vendita centralizzati è difficile valutare la diffusione di Linux.

Informazioni e indicazioni utili vengono date da Linux Counter, dove viene oltretutto fatto un censimento (volontario) sul numero di utenti Linux: nel Gennaio 2002 risultavano 117.842 utenti registrati e 105.408 macchine registrate. Questo stima è ovviamente per difetto (la registrazione viene fatta sul sito stesso).


Il gestore di questo sito (ovviamente un Linux enthusiast) stima in 18.000.000 il numero di utenti Linux.

Altro indicatore interessante è Netcraft, che, pur senza fare riferimento a singoli OS, dà indicazioni utili sui server Web utilizzati in rete.

Recenti ricerche varie fatte sulla diffusione di Linux nel mondo danno risultati diversi:
- IDC stima 1.300.000 server Linux consegnati nel 1999;
- Dataquest ben più prudenzialmente stima in 543.778 il numero di server Linux consegnati nel 2001.

A titolo di curiosità Google, nel Gennaio 2002, conta circa 50.500.000 pagine contenenti la parola linux (e 43.000.000 pagine con la parola windows).

Sempre a Gennaio 2002 esistono 480 Linux User Groups (LUG), di cui 16 in Italia.

Comunque si vogliano considerare questi numeri il dato certo è:


- La crescita nella diffusione di Linux è innegabile;
- Il suo utilizzo in ambiti aziendale, corporate e accademico sempre maggiore;
- La conoscenza delle sue potenzialità è sempre più precisa e consapevole.

Per kernel si intende il cuore di un sistema operativo, il codice che gestisce le risorse presenti sul nostro sistema e le rende disponibili alle applicazioni.
Il kernel si occupa principalmente di gestire:
- le comunicazioni con l'hardware del sistema,
- i file system, la memoria,
- l'accesso a queste risorse da parte dei processi (le applicazioni che girano sul sistema)...


Le versioni del kernel Linux sono identificate con numeri dal significato ben preciso. Per esempio il kernel 2.4.15 ha:
2- Il major number. I kernel della serie 1.x sono ormai piuttosto vecchi e pochissimo usati.
4- Il minor number. Se è pari il kernel viene considerato stable e pronto per sistemi in produzione, se è dispari lo si considera in development e da usare con cautela o per sperimentazione. Le release stable sono sempre figlie delle devel precedenti. Per esempio al momento in cui si scrive, il kernel stable è alla versione 2.4.18, mentre quello in sviluppo è alla 2.5.7 (da cui deriverà la 2.6.x o direttamente la 3.0.x). Solitamente nei kernel stable si tende a fare maintenance ed a implementare solo le features strettamente necessarie, lasciando a quello in development lo sviluppo di nuove funzionalità.
15- E' la revisione (patch) corrente. Questo è un numero progressivo che parte da 0. Da una revisione alla successiva possono passare da pochi giorni a varie settimane.
Esistono inoltre varie patch temporanee, anche non di Torwalds stesso (comuni sono le
-ac patch, di Alan Cox) che rappresentano stadi intermedi prima della release di una revisione definitiva.
Ha senso utilizzarle subito solo in caso di utilizzo di kernel con gravi problemi di sicurezza o stabilità (sul proprio sistema) che vengono risolte con le relative patch parziali.


Kernel Monolitico Vs Kernel Modulare

Esistono diversi tipi di kernel:

Monolitico

E' un singolo file binario eseguibile in modalità "kernel" che contiene il gestore del processo, della memoria, del sistema e tutto il resto.
Esempi di tali sistemi sono
UNIX, Linux, MS-DOS.

Microkernel

E' un piccolo nucleo ridotto ai minimi termini che ha il compito di gestire le comunicazioni fra i gestori di sistema, processi separati eseguiti al di fuori dal kernel. Esempi di tali sistemi sono BE OS, GNU HURD, MINIX.

Modulare

Per kernel Modulare si intende un' estensione del kernel monolitico, con la capacità di caricare/scaricare parti di codice (moduli) secondo necessità e richieste. Può esserlo Linux se lo si definisce in fase di configurazione pre-compilazione.

Il kernel monolitico è più veloce, poichè tutto il codice è già stato caricato al bootstrap dell'OS, ma di contro occupa maggiori risorse del sistema.
Un altro punto a favore è la maggiore stabilità: non richiede moduli evitando così pericolose dipendenze.
Il kernel
modulare è quello utilizzato da tutte le distribuzioni in fase di installazione di LINUX su una macchina.




Le distribuzioni

Una Distribuzione (distro) è un confezionamento (packaging) di Linux, con procedure che rendono comoda e semplice l'installazione.
Si consideri che il "
Linux di Linus" non è veramente un OS ma il semplice kernel. A questo ogni distribuzione aggiunge tutto il software necessario per avere un sistema operativo completo di software applicativo e di servizio. Anche per questo Stallman insiste nel chiamarlo GNU Linux poiché tutte le utility di base, dal gcc (compilatore) alle utility di gestione file fanno parte del progetto gnu.
Notare che essendo queste utility (bash, vi, emacs, awk, gcc ecc.) scritte in tempi successivi rispetto agli equivalenti Unix, sono generalmente più evolute e migliori per l'inevitabile progresso della scienza informatica.
Le distribuzioni differiscono per:
- Numero e versioni dei programmi installabili;
- Versione del kernel utilizzata e modalità di pre-installazione (il kernel solitamente non viene compilato durante una normale installazione);
- Procedura di installazione (interfaccia utente e possibilità di definire opzioni e scegliere quale software installare);
- Organizzazione di file di configurazione, programmi, log nel file system;
- Configurazioni predefinite del software installato.

Le distribuzioni più note sono:



Red Hat

Red Hat è la più popolare distribuzione Linux e si adatta bene ad usi diversi (desktop, server, laptop). Pioniera nell'includere un meccanismo di update User Friendly e l'aggiornamento automatico tramite il RedHat Network. Ha introdotto il sistema di gestione di pacchetti software con estensione .RPM che facilita installazione e aggiornamento del software.

Debian

Distribuzione completamente sviluppata da una comunità che consta di centinaia di persone in tutto il mondo; fornisce un proprio sistema di pacchettizzazione simile all'RPM (pacchetti .DEB). Viene considerata per puristi ed esperti e risulta generalmente meno user-friendly delle altre.

S.U.S.E.

Distribuzione più diffusa in Europa, solida e ben accessoriata, RPM compatibile.
Utilizza un software di gestione e configurazione (YAST) completo, semplice, ma poco compatibile.

Mandrake

In crescente diffusione, usa pacchetti simili a RPM (MDK) che sono aggiornati molto rapidamente. E' molto user friendly e probabilmente è la più adeguata per un sistema desktop.

Slackware

Slackware è una delle prime distribuzioni. Si differenzia dalle altre per non usare package tipo RPM o DEB e viene generalmente considerata più ostica da installare. Per puristi.







Quale distribuzione usare?

E' difficile suggerire una specifica distribuzione da utilizzare per i propri server.
In questo corso viene utilizzata Red Hat perchè è la più
diffusa, perchè è ben bilanciata per diversi campi di attività, è ben supportata dalla casa madre (che offre anche servizi di supporto a pagamento) e generalmente è ben strutturata.
In genere, la migliore distribuzione da usare è quella che meglio si conosce e se si devono gestire diverse macchine è opportuno averle tutte con la stessa distribuzione e possibilmente versione, per facilità di aggiornamente e manutenzione.
Qualunque sia la distro adottata è sempre consigliabile installarne l'
ultima versione disponibile (contiene pacchetti e kernel più recenti) e seguirne sul relativo sito la segnalazione di eventuali aggiornamenti ( "errata"), possibilmente aspettando alcune settimane prima di metterla in produzione, visto che ogni nuova distribuzione tende ad avere bug e falle nella sicurezza che vengono aggiornate dopo l'iniziale diffusione pubblica.

Considerare che dopo l'installazione di una qualsiasi distribuzione, se si sta lavorando su un server che deve andare in produzione, sono auspicabili, consigliati e necessari una serie di interventi di post-installazione:
- Aggiornamento di tutti i pacchetti per i quali esistono degli errata (nuove versioni che aggiornano bug o buchi di quelle rilasciata con il CDROM originale);
- Rimozione di tutti i servizi non utilizzati;
- Eventuale aggiornamento del kernel;
- Implemementazione di script o configurazioni custom.


E' fondamentale essere ben preparati prima dell'installazione per evitare che ore di lavoro vadano in fumo per una mancata o sbagliata considerazione e analisi dei propri bisogni e del proprio hardware.
La raccolta di informazioni è il primo passo per evitare tutto ciò. Ecco cosa bisogna sapere per iniziare un'installazione:
-
Conoscere l'hardware a disposizione. Solitamente durante l'installazione il proprio hardware viene rilevato automaticamente, ma possono esserci rari casi in cui questo non accade. In genere se si usa un PC standard con una nuova distribuzione non ci sono problemi nel riconoscimento di componenti e periferiche.
- Sapere quali e quanti
Hard Disk sono presenti sul sistema, come sono partizionati, quali sono cancellabili.
- Il
tipo di computer su cui viene fatta l'installazione (server, desktop, laptop)
-
Configurazione di rete, se prevista (indirizzo IP, subnetmask, nome macchina, server DNS)
-
Configurazioni base del sistema (layout di tastiera, nomi utenti e password, timezone)
- I
servizi che dovrà offrire (deve diventare un server? Di che tipo?)
- I
programmi che ci interessa installare (solitamente è possibile sceglierli singolarmente o per gruppi).




Hardware, quale scegliere?

Una scelta importantissima è quella della configurazione hardware, dal numero di interfacce di rete al numero di processori, dalla dimensione dei dischi fissi a quanta ram utilizzare.
Ormai Linux offre una vasta compatibilità con la maggior parte dell'hardware esistente, sia direttamente a livello di kernel ufficiale, sia con driver rilasciati direttamente dai produttori, inoltre, per il vero hacker, avendo a disposizione i sorgenti del kernel, c'è sempre la possibilità ultima di scriversi autonomamente i propri driver.

Un breve quadro sulla scelta dell'hardware, si rimanda ai link indicati per informazioni più dettagliate:



CPU

Le distribuzioni standard contengono un Linux predisposto per processori Intel Based a 32 bit. (dal 386 al Pentium 4 Intel, oltre a compatibili quali AMD Athlon, Cyrix, Transmeta ecc.) Se si vuole installare Linux su un Mac, una Sun o un Compaq Alpha si deve trovare una distribuzione per PowerPC, Sparc o Alpha.
La potenza del processore dipende ovviamente dalle applicazioni usate, un Pentium 2 o superiore basta per normali applicazioni server senza eccessivo carico. Esiste il supporto multiprocessore.


RAM

Come sempre, più ce n'è, meglio è. Se si usa Linux senza interfaccia grafica, le esigenze sono modeste: 64Mb bastano per un sistema base, ma sono ovviamente da aumentare per server che devono gestire volumi di traffico medio/alti o ospitare applicativi pesanti.

HARD DISK

La scelta fra un sistema (E)IDE o SCSI dipende essenzialmente dal budget a disposizione. In genere, prima di pensare ad un sistema SCSI è opportuno "carrozzare" la macchina con un buon processore e abbastanza memoria. Il supporto per schede SCSI è ottimo.

CDROM - FLOPPY

Un normale CD-ROM IDE basta e avanza (di fatto, per un server, serve solo in fase di installazione). Il floppy può mancare se la motherboard supporta il boot direttamente dal CD (funzione comune in tutte le motherboard non vecchie).

SCHEDA VIDEO

Per un server (su cui si avrà soltanto l'interfaccia a caratteri) basta una semplice VGA. Per un desktop con interfaccia visuale il minimo è una SVGA.
E' disponibile l'accelerazione 3D su schede che supportano
OpenGL.

SCHEDA RETE

Si consiglia una scheda ethernet 10/100. Esistono driver per alcune schede gigabit, ma è opportuno verificarne l'esistenza per il proprio hardware.
Esiste anche il supporto per Token Ring e schede wireless (da verificare a seconda del modello).


ACCESSORI MULTIMEDIALI

Per un server non sono necessarie schede audio o accessori multimediali. I kernel dalla 2.4 in su, comunque supportano la Creative Sound Blaster live, schede audio meno recenti e le periferiche USB. Esiste anche il supporto Firewire.

MODEM

I modem esterni (analogici o ISDN) su interfaccia seriale (meglio) o USB sono normalmente utilizzabili.
Possibili complicazioni esistono per modem interni (Winmodem), che in genere sono sconsigliabili.




L'installazione di Linux si può eseguire seguendo metodi differenti: tramite CD-ROM (con boot diretto dal CD oppure via floppy) o via rete (ftp, nfs, smb).
In questo corso si affronta una normale installazione tramite

Condividi con i tuoi amici:
  1   2   3   4   5   6   7   8   9   ...   20


©astratto.info 2017
invia messaggio

    Pagina principale