Di cosa stiamo parlando Quello universalmente noto come 'Linux' - ma che in questo documento definiremo GNU/Linux e durante il corso capiremo perché - è un sistema operativo Multi-utente, Multi-processo, Multipiattaforma, che gira su modelli diversissimi di computers tra cui quelli basati sulle CPU della famiglia Intel 386 e successive, quelli che ci ritroviamo in casa od in ufficio. 'Linux', o meglio GNU/Linux è Software Libero. Cosa è il Software Libero L'espressione Software Libero si riferisce alla libertà dell'utente di eseguire, copiare, distribuire, studiare, modificare e migliorare il software. I valori di riferimento del Software Libero sono gli stessi da sempre in uso presso la comunità scientifica e tenuti in alta considerazione per l'elevata prolificità: - Lo scambio libero delle informazioni - La condivisione di idee e risultati - L'utilizzo libero del patrimonio comune delle conoscenze Nello specifico fa riferimento a quattro tipi di libertà per gli utenti: libertà di utilizzare il programma per qualsiasi scopo; libertà di studiare il programma e adattarlo alle proprie esigenze; libertà di copiare il programma in modo da aiutare il prossimo; libertà di migliorare il programma e di distribuire pubblicamente i miglioramenti, in modo che tutta la comunità ne tragga beneficio. ... e la comunità siamo noi! • • • • Un programma è Software Libero se l'utente ha tutte queste libertà. In questa visione il protagonista è l'utente finale: come utenti possiamo eseguire il programma per i nostri scopi, possiamo condividerlo in una comunità di utenti, mettendo in comune modifiche e miglioramenti. Perché queste libertà siano effettive, ovvero sia possibile studiare il funzionamento del programma e migliorarlo, aggiungendo nuove funzionalità, adattandolo alle proprie esigenze e correggendo eventuali malfunzionamenti è necessario avere accesso al codice sorgente del programma stesso. Il codice sorgente è la sequenza di istruzioni così come viene scritta dal programmatore. Questo avviene solitamente in un linguaggio di programmazione che definiremo di alto livello che in gergo informatico significa vicino ad una lingua parlata (il nostro comune modo di comunicare). Successivamente il codice sorgente viene convertito in un file binario eseguibile (quello che il computer è in grado di capire) attraverso la fase di compilazione. Il programma eseguibile in formato binario, essendo essenzialmente costituito da una sequenza di numeri, se non se ne dispone il codice sorgente, è difficilmente modificabile e riadattabile. E' anche difficile capirne i meccanismi che ne regolano le funzionalità. Stallman e la Free Software Foundation Richard M. Stallman, o RMS come desidera farsi chiamare, nel 1971 era un ricercatore presso il laboratorio di Intelligenza Artificiale del Massachusset Institute of Technology. 'Quando cominciai a lavorare nel laboratorio di Intelligenza Artificiale del Massachusset Institute of Technology nel 1971, entrai a far parte di una comunità in cui ci si scambiavano i programmi, che esisteva già da molti anni. La condivisione del software non si limitava alla nostra comunità; è un cosa vecchia quanto i computer, proprio come condividere le ricette è antico come il cucinare. Ma noi lo facevamo più di quasi chiunque altro.' Ad un certo punto le cose cambiarono, un episodio 'simbolo' che racconta lui stesso ha a che fare con una stampante. La stampante era veloce ed aveva una buona qualità ma la carta si inceppava spesso... Stallman si mette al lavoro per limitare l'inconveniente ma non trova i sorgenti del driver: il produttore non li ha forniti ! Dopo aver inutilmente cercato di ottenerli dal produttore si rivolge ad uno dei programmatori che aveva lavorato sui drivers. 'Mi disse di aver promesso che non me ne avrebbe fornito una copia. Era la prima volta che mi imbattevo conto come questi accordi producano laboratorio. La nuova generazione di elaboratori ma nessuno di questi era libero: si ottenerne una copia eseguibile. in una clausola di non divulgazione, e mi resi immediatamente delle vittime. In questo caso la vittima ero io. Io e il mio come il VAX o il 68020, avevano il proprio sistema operativo, doveva firmare un accordo di non-diffusione persino per Questo significava che il primo passo per usare un computer era promettere di negare aiuto al proprio vicino. Una comunità cooperante era vietata. La regola creata dai proprietari di software proprietario era: se condividi il software col tuo vicino sei un pirata. Se vuoi modifiche, pregaci di farle! C'erano un programma o dei programmi che io potessi scrivere, per rendere nuovamente possibile l'esistenza di una comunità?' La risposta era semplice: innanzitutto serviva un sistema operativo. Stallman decise di lasciare il posto di lavoro al M.I.T. per iniziare la realizzazione di un Sistema Operativo costituito interamente da software che tutti potessero utilizzare liberamente. Nasce il Progetto GNU 'Nel gennaio 1984 lasciai il mio posto al MIT e cominciai a scrivere software GNU. Dovetti lasciare il MIT, per evitare che potesse interferire con la distribuzione di GNU come software libero. Se fossi rimasto, il MIT avrebbe potuto rivendicare la proprietà del lavoro, ed avrebbe potuto imporre i propri termini di distribuzione, o anche farne un pacchetto proprietario Scelsi di rendere il sistema compatibile con Unix, in modo che fosse portabile, e che gli utenti Unix potessero passare facilmente a esso.' Il nome GNU fu scelto secondo una tradizione hacker, come acronimo ricorsivo che significa GNU's Not Unix GPL - General Public Licence In che modo viene garantita la libertà del Software Libero? La maggior parte del software esistente viene distribuito sotto una licenza d'uso: per il Software Libero si è realizzata appositamente la General Public Licence. Diversamente dalla maggior parte delle altre licenze che reprimono la libertà dell'utente del software impedendogli tutta una serie di operazioni, la GPL è realizzata per permettere esplicitamente all'utente le libertà a cui si è accennato sopra e per garantire che queste libertà possano mantenersi nel tempo. Oltre alla GPL esistono altre licenze simili che sono definite compatibili ed accettate come tali dalla Free Software Foundation Definizione di Open Source Spesso si usano indistintamente i termini Open Source e Software Libero come se identificassero la stessa cosa. Nella realtà non è così. La definizione Open Source fu coniata da alcuni esponenti della comunità del Software Libero (in inglese Free Software) nel timore dei possibili impatti negativi del termine 'Free Software' rispetto al mondo degli affari. Cosa possibile sia per l'ambiguità di significato di Free (nella lingua inglese significa sia libero che gratuito), sia per la carica ideologica associata ai principi di libertà. Con la definizione di Open Source si sono voluti mettere in luce i numerosi vantaggi pratici (facilità di adattamento, affidabilità, sicurezza, conformità agli standard, indipendenza dai singoli fornitori) evitando riferimenti ed implicazioni filosofiche e politiche. Fu quindi fondata una Open Source Initiative che potesse garantire i termini di tale definizione. In ogni caso, meno di poche La differenza sugli aspetti gli insiemi di applicativi designati da software libero e open source coincidono a eccezioni. fondamentale è nel tipo di approccio: parlando di software libero si pone l'accento sociologici ed etici, che sono volutamente rimossi nella visione open source. E' comunque opportuno notare che un software è open source se i termini secondo i quali viene distribuito rispondono alla Open Source Definition dell'Open Source Initiative: in particolare, se una licenza rientra in tale definizione, allora tale licenza può essere dichiarata licenza open source. Ma la definizione potrebbe cambiare nel tempo (nessuno garantisce che questo non possa accadere) e quindi è possibile che una licenza attualmente open source non lo sia nel futuro o viceversa. Una licenza invece è libera (o meglio, una versione di una licenza è libera) se e solo se rispetta le quattro libertà fondamentali. Pertanto se una versione di una licenza è libera, allora lo sarà per sempre. A prescindere dalle implicazioni sociali il software libero presenta numerosi vantaggi rispetto al software proprietario: * essendo possibile modificare liberamente il software, è possibile personalizzarlo ed adattarlo alla proprie esigenze * il codice sorgente è sottoposto ad una revisione da parte di moltissime persone, pertanto è più difficile che contenga bachi e malfunzionamenti. In ogni caso, è sempre possibile per chiunque tenere un indice pubblico dei problemi, in modo che gli utenti li conoscano * se viene scoperto un baco o una falla di sicurezza, la sua correzione di solito è molto rapida * essendo il sorgente liberamente consultabile, è molto difficile inserire intenzionalmente nel software backdoor, cavalli di Troia o spyware senza che questi vengano prontamente scoperti ed eliminati, come invece è accaduto per alcune applicazioni commerciali (ad esempio il caso del database Firebird della Borland che conteneva una backdoor scoperta quando di tale software sono stati pubblicati i sorgenti) * non esistendo standard proprietari, le cui specifiche sono normalmente segrete, è molto più facile costruire software interoperabile * permettere a chiunque di modificare i sorgenti garantisce che ogni nuova funzionalità o copertura di un baco possa essere proposta da chiunque e immediatamente applicata dagli sviluppatori. Questo permette di avere rapidamente a disposizione un software che rispetta le esigenze di chi ha richiesto le modifiche in caso di necessità[7] * la complessità e le dimensioni di alcune applicazioni di software libero (ad esempio, dei sistemi operativi) è tale che è necessario il supporto commerciale di un'azienda ; il software libero si presta a creare nuove opportunità di business nel campo della formazione e del supporto, oltre che della eventuale personalizzazione del software. * collaborando con sviluppatori volontari e utilizzando il lavoro della comunità, anche le piccole e medie imprese sono in grado di sviluppare e vendere prodotti di alta qualità, senza dover ampliare il loro organico. Cosa è GNU/Linux All'inizio degli anni '90 il progetto GNU aveva prodotto una notevole quantità di software. La metodologia usata era quella dello scrivere un programma che svolga uno stesso compito di uno già esistente, magari anche con la stessa interfaccia ma partendo da zero. Il software prodotto dal Progetto GNU era molto apprezzato, talmente apprezzato che spesso finiva per sostituire completamente i corrispondenti programmi proprietari. Però gli utenti potevano utilizzarli su un sistema operativo proprietario perché, per avere un sistema operativo completamente libero mancava ancora una parte che il Progetto GNU non era ancora stato in grado di portare a compimento: il Kernel. Kernel Che cos'è? 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)... 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 comunicazioni fra i gestori di sistema, processi separati eseguiti al di fuori di tali sistemi sono BE OS, GNU HURD, MINIX. Modulare - Per kernel Modulare si intende un'estensione del kernel monolitico, caricare/scaricare parti di codice (moduli) secondo necessità e richieste. Può lo si definisce tale in fase di configurazione pre-compilazione. di gestire le dal kernel. Esempi con la capacità di esserlo Linux se Il kernel monolitico è più veloce, poiché tutto il codice è già stato caricato al bootstrap dell'OS, e piu' stabile ma e' di dimensioni maggiori ed occupa piu' risorse del sistema. I kernel monolitici più moderni come il Kernel Linux e FreeBSD possono caricare dei moduli in fase di esecuzione, a patto che questi siano previsti in fase di compilazione, permettendo così l'estensione del kernel quando richiesto, mantenendo al contempo le dimensioni del codice nello spazio del kernel al minimo indispensabile. GNU/Linux Il Progetto GNU aveva in cantiere un kernel, nome di progetto Hurd. Era stata scelta una architettura di tipo Microkernel ma questo aveva creato una serie di problemi nella fase di debug che avevano notevolmente allungato i tempi di sviluppo. Lo stesso Hurd tuttora è funzionante ma non ancora abbastanza stabile per essere usato in produzione. All'inizio del 1991 uno studente finlandese, Linus Benedict Torvalds, iniziò a lavorare ad un programma per poter leggere la sua posta dall'Università di Helsinki. L'implementazione è a basso livello, funzionava senza nessun sistema operativo sottostante ed era in grado di eseguire piu' di un processo per volta, poi fu aggiunta la possibilità di salvare i dati e quindi implementata la gestione di un file system: il terminale di Linus si stava trasformando in un kernel e lui iniziava a rendersene conto. Linus Torvalds fece un annuncio su usenet (libera traduzione) 'Un saluto a tutti gli utilizzatori di minix. Sto realizzando un sistema operativo (solo un hobby, non vuole essere grande e professionale come gnu) per cloni AT 386(486). E' in lavorazione da Aprile, ed inizia ad essere pronto. Vorrei dei pareri dalle persone che apprezzano o non apprezzano minix perché il mio OS in qualche modo, per ragioni di praticità, gli assomiglia. Ho fatto un porting di bash(1.08) e gcc(1.40) e la cosa sembra funzionare.' Questo annuncio suscitò notevole interesse e molti iniziarono a collaborare al progetto, chiedendo nuove funzionalità e proponendo del codice da integrare. Nel Dicembre 1991 viene rilasciato Linux 0.11: è la prima versione ad essere self-hosted, Linux 0.11 può essere compilato sotto Linux 0.11 Nel Marzo 1992 la versione 0.95 è la prima in grado di eseguire l'X Window System (l'interfaccia grafica a finestre) Il 14 Marzo 1994 vede la luce Linux 1.0.0 Nel Maggio 1996 Tux il pinguino viene proposto come mascotte di Linux. Il 18 December 1999 vengono rilasciate le IBM mainframe patches per il kernel 2.2.13 che permettono a Linux di essere usato su macchine di classe enterprise Il 4 Gennaio 2001 viene rilasciato Linux 2.4.0 17 Dicembre 2003 è la volta di Linux 2.6.0 La dimensione del kernel è passata da 10,239 (Linux 0.01) a 5,929,913 (Linux 2.6.0) linee di codice sorgente. Con la disponibilità del kernel Linux è finalmente disponibile un sistema operativo interamente Libero che possiamo correttamente chiamare GNU/Linux. Oggi collaborano allo sviluppo di GNU/Linux e di tutti i progetti correlati migliaia di programmatori sparsi per il mondo che lavorano e restano di contatto attraverso internet costituendo il più grande progetto collaborativo del mondo. La stessa infrastruttura di internet è in larga parte basata su server GNU/Linux. Data la sua natura, chiunque può scaricarlo da internet ed iniziare ad utilizzarlo senza bisogno di alcun tipo di codici, registrazioni od altro, di conseguenza è impossibile sapere esattamente quanti sono gli utilizzatori di GNU/Linux. E' difficilmente stimabile quante persone usano GNU/Linux nel mondo. Linux, per la sua natura di Software Libero ma anche per la stabilità e l'efficienza raggiunte, viene utilizzato in moltissimi ambiti, dai grossi server di produzione ai tablet PC, ai navigatori satellitari (tom-tom), ai router, ai ricevitori satellitari, in robotica, etc Distribuzioni, perché? Anche se è possibile per chiunque costruirsi il proprio sistema raccogliendo da internet tutti i componenti ed assemblandoli sul proprio PC può essere un processo dispendioso in termini di tempo e certamente non alla portata di tutti. Per ovviare a questo qualcuno ha pensato di riunire ed organizzare tutti i componenti necessari aggiungendo delle utilità per facilitare installazione e configurazione, creando così quella che viene definita una distribuzione di GNU/Linux. Una Distribuzione GNU/Linux è quindi un confezionamento (packaging) con procedure che rendono comoda e semplice l'installazione. Come si diceva in precedenza il Linux di Linus non è l'intero Sistema Operativo ma il semplice kernel. Ad esso ogni distribuzione aggiunge tutto il software necessario per avere un sistema operativo completo di programmi sia applicativi che di servizio. NOTA: questo è il motivo per cui Stallman insiste nella correttezza del chiamare il sistema operativo GNU/Linux invece che semplicemente Linux come molti fanno per comodità: poiché tutte le utility di base, dal gcc (compilatore) alle utility di gestione file sono state sviluppate dal progetto GNU. 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 del sistema, di files di configurazione, programmi, file system; - Configurazioni predefinite del software installato. Panoramica delle principali distribuzioni Le distribuzioni note sono circa 300. quella che segue è una selezione (arbitraria :-) di quelle più note: Slackware Distribuzione GNU/Linux tra le più longeve, fu creata da Patrick Volkerding, allora studente, sulla base della distribuzione SLS, e pubblicata per la prima volta il 16 luglio 1993 Slackware tende a essere essenziale ed elegante, escludendo alcuni programmi ed adottando utilità semplificate in nome di snellezza e stabilità del sistema. Priva di strumenti di configurazione a interfaccia grafica e di un sistema di pacchettizzazione avanzato è considerata per puristi. Red Hat Adattabile ad usi diversi dai desktop a server di produzione. 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 rpm che facilita installazione e aggiornamento del software. Da alcuni anni il marchio Red Hat identifica una serie di 'prodotti' (Sistema Operativo, contratti di assistenza, aggiornamenti, ...) venduti ad aziende corporations (quella che viene definita una distribuzione commerciale) Contemporaneamente Red Hat ha quindi dato vita al progetto Fedora che rappresenta la continuazione della distribuzione originaria con in più una maggiore apertura alla partecipazione della comunità nello sviluppo della distribuzione stessa rispetto al passato. Fedora rappresenta il laboratorio di innovazione e sperimentazione dal quale RedHat preleva i pacchetti da introdurre nella sua distribuzione commerciale. Dai sorgenti delle versioni enterprise di Red Hat, i cui sorgenti sono disponibili per motivi di licenza sono nate diverse distribuzioni. Mandriva Mandriva Linux, prima conosciuta come Mandrake Linux, è una distribuzione GNU/Linux nata nel 1998 come derivazione di Red Hat, cui aggiungeva l'allora nuovo desktop grafico KDE Orientata principalmente al desktop, alla facilità di gestione ed installazione, particolarmente consigliata agli utenti meno esperti La facilità della distribuzione è dovuta ai molti assistenti ed alle procedure guidate che si trovano negli strumenti di configurazione che permettono anche ad un utente con modeste conoscenze informatiche di amministrare il sistema abbastanza agevolmente Degno di nota il sistema di gestione dei pacchetti, urpmi, che si occupa di scaricare, installare e provvedere alle dipendenze di un programma in automatico, ed il Centro di Controllo da dove si possono controllare con procedure guidate i vari aspetti del sistema SUSE (openSUSE) Distribuzione molto diffusa in Europa, solida e ben accessoriata. Fondata alla fine del 1992 come gruppo di consultazione Unix iniziò distribuendo pacchetti software che contenevano Slackware e SLS; pubblicò la prima vera distribuzione S.u.S.E. Linux 4.2 del 1996. E' caratterizzata da YAST (YAST2), un programma di installazione ed amministrazione che gestisce partizionamento dell'hard disk, setup del sistema, aggiornamenti online, configurazione della rete, del firewall, amministrazione degli utenti e molto altro con una amichevole interfaccia utente. Nel 2004 la società è stata acquisita da Novell decisa ad incentrare su Linux lo sviluppo della propria attività. Quindi avvenne una apertura nel processo di sviluppo della serie SUSE Professional in grado di coinvolgere un maggior numero di utenti e sviluppatori tramite la community openSUSE. Dal server del YaST Online Update è possibile scaricare sia le distribuzioni SUSE OSS, completamente Open Source, che quelle di Novell (SLED – SLES) Debian Diversamente dalla maggior parte delle distribuzioni più note non è rappresentata o sponsorizzata da una società ma è interamente supportata dalla comunità. Debian è conosciuta per la sua aderenza alle filosofie di GNU e del Software Libero, le rigide politiche riguardo alla qualità dei pacchetti e le release, il modo aperto di sviluppare e testare il software e la libertà di scelta concessa all'utente. Il Debian Project ha formalizzato con i suoi utenti questi impegni attraverso il "Contratto Sociale Debian" e le "Linee Guida Debian per il Software Libero". Il sistema di gestione dei pacchetti di Debian è tra i più avanzati esistenti e integra un sistema di risoluzione delle dipendenze, la possibilità di effettuare molto facilmente un upgrade (di alcuni pacchetti o dell'intero sistema operativo) e la possibilità di passare da una release ad un'altra. Viene tradizionalmente considerata per puristi ed esperti risulta generalmente meno user-friendly delle altre per ciò che concerne configurazione e manutenzione. Ubuntu Ubuntu è nata nel 2004, basata su Debian, ed è un progetto finanziato dalla società Canonical Ltd (Isola di Man), pur rimanendo in tutto e per tutto un software libero. Ideatore dell'iniziativa e titolare di Canonical è Mark Shuttleworth, un giovane imprenditore sudafricano diventato fiero sostenitore dell'open source, al cui servizio ha posto le sue risorse. Si concentra sulla facilità di installazione e d'uso e sul rilascio regolare (semestrale) delle nuove versioni. Rispetto a Debian, Ubuntu ha un orientamento più spiccato verso l'utilizzo desktop e un'attenzione maggiore al supporto dell'hardware dei portatili. Il nome deriva da una antica parola Zulu diffusa in varie parti dell'Africa e che corrisponde indicativamente al concetto di "umanità verso gli altri", a volte tradotto anche "io sono ciò che sono per merito di ciò che siamo tutti". Tradizionalmente GNU/Linux veniva distribuito su uno o una serie di supporti, prima Floppy poi CD e la prima operazione da farsi per essere in grado di utilizzare (od anche solo provare il sistema operativo era fare spazio sull'hard disk ed eseguire una installazione. Da alcuni anni sono state sviluppate delle distribuzioni che sono confezionate come Live CD, ovvero distribuzioni che sono in grado di mandare in esecuzione il sistema operativo direttamente dal supporto stesso (CD o DVD) sul quale viene distribuito. Tale tecnica ha avuto tale successo che moltissime distribuzioni sono disponibili come live-CD installabile. Knoppix Knoppix è famosa per il fatto di essere una delle piu complete tra le distribuzioni Live CD e, per le sua qualita', la prima ad essersi diffusa su larga scala. Creata da Klaus Knopper, comprende un sistema avanzato di riconoscimento hardware, che le permette di essere lanciata su quasi tutti i sistemi con architettura x86. Questa sua peculiarità ne fa uno strumento indispensabile per il recupero di sistemi danneggiati e/o compromessi. Attualmente lo sviluppo è arrivato alla versione 6.x, disponibile sia in formato CD-ROM che DVD. Essendo derivata da Debian (è una Custom Debian, 100% compliant), può venire usata per avere una installazione veloce e completa della Debian stessa. Una volta installata su disco fisso infatti, tramite il tool messo a disposizione all'interno del CD, si può utilizzare apt-get per terminare l'installazione degli eventuali pacchetti mancanti. Dalle ultime versioni è inoltre possibile "installare" pacchetti anche su Live-CD. LiveCD Quando accendiamo un computer vengono eseguite una serie di operazioni che culminano nella ricerca di un sistema operativo da eseguire. La stessa cosa vale per la maggior parte dei dispositivi elettronici evoluti con la differenza che in molti casi il sistema operativo è in qualche modo integrato nel dispositivo stesso (su chip). Il compito di eseguire le operazioni preliminari è assegnato al BIOS del PC il quale al termine dei suoi compiti provvede a fare la scansione dei dispositivi presenti alla ricerca, appunto, di sistema operativo da 'lanciare'. La scansione avviene secondo un ordine stabilito nella configurazione dei BIOS ed è modificabile dall'utente. Tra i dispositivi che possono contenere un sistema operativo in un computer moderno sono compresi: Floppy-Disk, Hard-Disk, CD/DVD-ROM, USB-storage. Una distribuzione di Linux su LiveCD è un sistema operativo completo in grado di essere mandato in esecuzione ed utilizzato direttamente dal CD-ROM su cui e' memorizzato. Perché ciò accada è necessario che il BIOS sia impostato per fare la scansione del lettore CD prima che dell'harddisk (che solitamente contiene un sistema operativo installato). Il Sistema Operativo contenuto su LiveCD provvederà ad utilizzare una parte della memoria ram del computer per memorizzare quelle parti del sistema che devono essere essere scrivibili (sul CD non si può scrivere!) Vantaggi: - la possibilità di essere usato su un computer senza intaccare il contenuto del H.D od addirittura privo di hard disk Svantaggi: - una maggiore lentezza a causa dei tempi di accesso al CD - maggiore fabbisogno di RAM Recentemente, con l'aumentare delle capacita' ed il diminuire dei costi, e' possibile avere un sistema live utilizzando un pendrive USB al posto del CDROM. Il vantaggio maggiore è nei tempi di accesso che diminuiscono e nella possibilità di usare il pendrive stesso per memorizzare i dati utente. Se difficilmente viene distribuito direttamente su pendrive invece che su CD, dati i costi notevolmente maggiori, è facile effettuare il trasferimento dell'intero sistema da CD (o da file immagine) Quale scegliere? La scelta di una distribuzione piuttosto che di un'altra dipende da moltissimo fattori. Come si è detto prima ciascuna distribuzione è caratterizzata da un target, da una maggiore o minore facilità d'uso, da una predisposizione d un certo tipo di hardware, etc. Ciascuno tenderà a scegliere quella con cui trova maggiori affinità. Tipicamente chi si avvicina a GNU/Linux inizia con il provare una distribuzione su LiveCD, poi installa una distribuzione orientata al desktop e dopo qualche anno migra verso distribuzioni che offrono una maggiore specializzazione ed un maggiore controllo del sistema. Un utilizzatore evoluto di GNU/Linux è in grado di calibrare perfettamente il sistema operativo al computer che usa ottenendone un notevole miglioramento in pretazioni. E' possibile installare GNU/Linux su un computer con windows GNU/Linux può convivere sullo stesso computer con altri sistemi operativi. All'accensione del computer un programma permette di scegliere quale dei sistemi operativi presenti deve essere avviato. GNU/linux puo' essere installato su un hard disk diverso sullo stesso computer o suddividento l'hard disk già presente. Le moderne distribuzioni orientate al desktop (difficilmente un server conterrà più di un sistema operativo se non per motivi di test!) sono in grado suddividere il disco, rilevare il sistema operativo già presente e configurare il boot loader in modo da permettere la scelta al boot in modo totalmente o quasi totalmente automatico. Wine E' anche possibile eseguire all'interno di GNU/Linux programmi compilati per funzionare con windows questo avviene usando wine. Wine (Wine Is Not an Emulator, un acronimo ricorsivo, Wine non è un emulatore) è un software nato originariamente per Linux, poi esteso ad altri sistemi operativi, con lo scopo di permettere il funzionamento dei programmi sviluppati per il sistema operativo Microsoft Windows. Il progetto è stato difficile e dispersivo per gli sviluppatori in parte per l'incompleta o incorretta documentazione delle Win32 API. La maggior parte delle funzioni di Win32 sono documentate, ma alcuni ambiti, come i formati dei file e i protocolli, non hanno una descrizione ufficiale da parte di Microsoft. Lo stesso vale per funzioni di basso livello e per oscuri bug che dovrebbero essere duplicati precisamente affinché le applicazioni si comportino come previsto. Gli sviluppatori di Wine hanno quindi dovuto ricorrere spesso al reverse engineering. Il progetto Wine non intende realizzare un emulatore. La sua funzione primaria è quella di realizzare un layer di compatibilità per il maggior numero di applicazioni Windows fornendo le API necessarie per il loro funzionamento. In questo senso, Wine non emula nessuna architettura o sistema operativo, bensì fornisce una estensione al supporto run-time dei programmi che richiedono specifiche funzioni di Windows. Per fare ciò Wine si appoggia al sistema X11, in quanto gran parte delle applicazioni native per Win32 necessitano di primitive grafiche per la gestione di finestre (le applicazioni a riga di comando sono comunque utilizzabili tramite il programma wineconsole). Virtualizzazione. Gli enormi progressi degli ultimi anni nella potenza di calcolo dei PC e l'abbassarsi dei costi dei dispositivi di memoria (RAM e dischi) hanno permesso di sviluppare programmi in grado di creare un PC virtuale all'interno di un altro fisico. In questo modo è possibile utilizzare, in caso di necessità, una installazione completa di Windows ospite di un sistema operativo GNU/Linux. Questo permette di avere a disposizione entrambi i sistemi operativi e le eventuali applicazioni ma se ne devono, ovviamente, possedere le rispettive licenze d'uso. Dove reperire documentazione. GNU/Linux è sviluppato attraverso internet. La prima fonte di documentazione è proprio internet. Tra le altre cose è stato creato un Linux Documentation Project che offre un a grande quantità di testi (in varie forme) di cui si possono reperire traduzioni italiane attraverso l'Italian Linux Documentation Project. Il modo più pratico per ottenere informazioni è affidarsi a Google in grado di offrire links diretti a documenti che possono interessare la nostra ricerca. La documentazione puo' presentarsi in varie forme tra cui: How-to (come fare qualcosa) , FAQ (le domande piu' prequenti e relative risposte) pagine man (pagine del manuale in linea di linux), news, siti web contenenti articoli, manuali in formato elettronico. GNU/Linux e la Sicurezza: GNU/Linux deriva concettualmente da UNIX, un Sistema Operativo nato per lavorare in rete, è stato sviluppato nell'ottica della rete sacrificando talvolta la facilità d'uso per favorire la sicurezza. E' in grado nativamente di garantire sicurezza e prestazioni maggiori rispetto ad altri sistemi. Dei circa 73.000 virus esistenti oggi, la quasi totalità ha come obiettivo i PC equipaggiati con sistemi operativi Microsoft. Pochissimi (attualmente si contano sulle dita di una mano) mirano invece ai sistemi operativi Unix like come GNU/Linux. I sistemi operativi di casa Redmond vengono maggiormente colpiti perché, data la loro grande diffusione e l'elevata vulnerabilità, costituiscono un vero e proprio obiettivo per i potenziali creatori di virus. GNU/Linux rappresenta, per sua natura, un terreno poco fertile per i virus informatici, data soprattutto la bassa standardizzazione della piattaforma, basta semplicemente considerare le differenze che intercorrono tra le diverse distribuzioni Linux (Debian, Slackware, SuSe e così via). In ambiente Linux, perché un virus raggiunga il suo obiettivo, bisogna servirsi di una parte del sistema operativo e i controlli di accesso basati sui proprietari ed i gruppi restringono fortemente il campo di lettura, scrittura ed esecuzione dei file di accesso. Per cui è difficile scrivere un virus che possa diffondersi indisturbato in un ambiente Linux se non all'interno di un singolo account utente. Problema dei formati Un file documento (ad esempio una relazione o una poesia) che non sia in puro formato testo (.txt) ma che sia invece stato realizzato con un word processor (.doc) contiene molte informazioni oltre al contenuto oggettivo (la poesia). Nel caso di un word processor verranno, ad esempio aggiunte informazioni sulla formattazione del testo, il tipo e le dimensioni dei caratteri e via dicendo. La disposizione di queste informazioni all'interno del file dipende da programma che lo ha generato (ed in ultima analisi dal programmatore che ha pensato quel formato di documento). Se io voglio leggere correttamente quel documento ho bisogno di un programma che conosca la disposizione di quelle informazioni. Il problema nasce se il produttore del programma non ha fornito documentazione su come quelle informazioni sono memorizzate all'interno del file. Per leggere quel file potrei essere costretto ad acquistare il programma che lo ha generato. Nonostante i produttori di software commerciale, quasi mai documentino i formati utilizzati da propri programmi e talvolta utilizzino modifiche a quei formati per indurre una migrazione di massa (a pagamento) a nuove versioni dei propri programmi, i programmi Open Source in generale possiedono buone capacità di interazione con i files generati da software proprietario.