Di cosa stiamo parlando Quello universalmente noto come `Linux

Transcript

Di cosa stiamo parlando Quello universalmente noto come `Linux
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.