LinuxDay 2005 - Multimedialità con Linux - trascrizione
LinuxDay 2004 - Linux - Storia e caratteristiche vincenti - trascrizione
1. IV LINUX DAY
TERAMO 27 NOVEMBRE 2004
LINUX
NASCITA E
CARATTERISTICHE
VINCENTI
relatore: Maurizio Antonelli
Some rights reserved: http://www.maury.it#licenza
4. Spieghiamo brevemente cos'è questo codice sorgente. Un computer esegue un programma che
fondamentalmente è sotto forma di bit, sotto forma di una lunga serie di 1 e di 0 disposti in maniera
tale da essere interpretati come istruzioni eseguibili: il famoso linguaggio macchina. Programmare
scrivendo le istruzioni in questa maniera è naturalmente scomodissimo e difficilissimo. Andando
avanti nel tempo, gli informatici hanno inventato dei linguaggi che potevano essere tradotti da un
qualche sistema automatico in linguaggio macchina: d'apprima l'assembler esadecimale, sempre
linguaggio macchina, ma umanamente più accessibile, riducendo la difficoltà degli 1 e degli 0 a un
base 16 (per capire meglio: il nostro sistema numerico è a base 10). Poi linguaggi un po' più
semplici, spesso basati su parole del vocabolario inglese: il C, il Fortran, il Basic, fino ai moderni
Java, Perl, ecc. ecc. I file dei programmi scritti in questi linguaggi sono appunto il codice sorgente,
assolutamente incomprensibili da parte di una macchina. Furono creati così i famosi traduttori, che
avevano lo scopo di tradurre il codice sorgente del programma in linguaggio macchina, creando le
istruzioni binarie eseguibili dal computer. Ora un'altra piccola parentesi: in un primo momento si
realizzarono i traduttori di tipo interprete, che prendevano un'istruzione alla volta, la traducevano e
la facevano eseguire prima di passare all'istruzione successiva. Molto lento come processo, dato il
tempo dovuto alla traduzione tra un'esecuzione e la successiva. Chi ha usato il Commodore 64 ha
esperienza di queste cose: il C64 utilizzava per l'appunto un interprete per il Basic. Poi arrivarono i
compilatori, che prendono l'intero codice sorgente, lo traducono completamente creando dei file
binari eseguibili dalla macchina e poi l'esecuzione avviene senza la perdita di tempo dovuta dalla
traduzione in simultanea. Questi sono i traduttori di oggi.
Allora, riprendendo: Stallman aggiunse una funzione che mandava sui monitor un messaggio
quando la stampante era occupata da qualche lavoro di stampa. In questo modo si evitava di
mandare contemporaneamente più richieste ed il problema non si presentava più.
Poi il MIT cambiò la stampante. Sempre un'altra HP, ma stavolta la ditta produttrice, che aveva
cambiato politica in proposito, non fornì i sorgenti del programma di gestione della stampa. Il
problema della carta che si inceppava c'era sempre e stavolta Stallman era impotente: qualsiasi sua
insistenza di farsi dare il sorgente dei driver dalla HP era inutile.
Da qui l'idea di Stallman di formare il movimento dell'Open Source (o software libero) e il
progetto GNU, che nasce nel 1984. Il sistema operativo GNU doveva essere composto da
programmi a codice sorgente aperto, disponibile a tutti e da tutti modificabile. Doveva nascere con
il fine principale di dare un servizio ulteriore alla società, garantendo sicurezza, stabilità e
possibilità di essere modellato in base a qualsiasi esigenza...
ATTENZIONE: “software libero” non significa assolutamente “software gratuito”. Evitiamo di
continuare a fare confusione. Stallman più di una volta, venendo in Italia per conferenze, ha tenuto a
sottolineare che a differenza che negli Stai Uniti, dove si usa il termine “free” per entrambi i
concetti, gli italiani hanno la fortuna di avere due termini: “libero” e “gratis”. Quindi non facciamo
confusione. Il software libero non è gratis. Il programmatore può decidere tranquillamente di
metterlo in commercio a pagamento; gli obblighi a cui è tenuto perché il suo prodotto sia “open
source” sono ben altri.
5. Queste quattro libertà, che devono essere garantite dai progetti Open Source, le ho prese dal sito
dell'Italian Linux Society, l'associazione che ha indetto questo Linux Day, all'URL che vedete nella
slide.
Libertà 0 o libertà fondamentale:
La libertà di eseguire il programma per qualunque scopo, senza vincoli sul suo utilizzo.
Libertà 1:
La libertà di studiare il funzionamento del programma, e di adattarlo alle proprie esigenze.
Libertà 2:
La libertà di redistribuire copie del programma.
Libertà 3:
La libertà di migliorare il programma, e di distribuirne i miglioramenti.
Queste sono le quattro regole che riassumono quello che Stallman intendeva per software libero.
Come vedete, sono concetti decisamente diversi e lontani da quelli con cui vengono distribuiti i
software ai quali molta gente è abituata.
Stallman sviluppò in base agli ideali che si era prefissato il compilatore C, l'editor di testi Emacs e
nel resto del mondo partirono altri progettini, ma per essere un Sistema Operativo completo,
mancava una cosa fondamentale: un kernel...
7. Ora che si aveva un kernel che rispettava tutti i requisiti dell'Open Source ideato da Stallman, la
comunità si buttò con molto entusiasmo su tantissimi progetti senza i quali Linux non sarebbe stato
nessuno:
XWindow: l'ambiente grafico. Era impensabile che con l'avvento di Windows, dove tutto era
un'icona, dove la visuale era a colori, dove si utilizzava il mouse, Linux avrebbe retto il confronto
rimanendo col semplice ambiente testuale. Ecco quindi l'XFree, un ambiente grafico che permette
oggi alte risoluzioni, la possibilità di utilizzare il pc in maniera multimediale, con visualizzazione di
foto e filmati.
KDE, Gnome e altri windows manager. Gestori di finestre, ognuno con una sua veste grafica e un
suo modo di essere utilizzato, chi più, chi meno intuitivamente. È possibile installarli tutti e ogni
volta che si entra decidere su che ambiente lavorare. Inoltre gli sviluppatori li stanno arricchendo
sempre più con molte applicazioni: KOffice, una suite per ufficio; GnomeToaster un programma
per masterizzare in maniera veloce; KsCD, un programma per ascoltare i Compact Disk, ecc. ecc...
The Gimp: un programma per l'elaborazione di immagini e fotografie digitali. Completamente
Open Source e con tantissime funzioni. In continua evoluzione. È possibile aprire tantissimi formati
di foto digitale, compresi quelli proprietari di altri programmi commerciali.
Mozilla: una suite per il web. Comprende un browser, un client di posta, un programma per chat, e
altre cosette. Proviene direttamente dai codici sorgenti del Natscape Navigator ed è molto intuitivo
da utilizzare, senza avere tutte le falle di sicurezza che ha invece Internet Explorer.
Xine, Mplayer: lettori multimediali. Per DVD, VCD e file creati con vari codec. L'MPlayer
comprende anche un codificatore per comprimere i propri file creando CD, DVD o DivX.
OpenOffice.org: la suite per ufficio Open Source. Arriviamo all'ultimo arrivato, tappa
fondamentale dello sviluppo dell'Open Source. È una suite nata quando la Sun Microsystem decise
8. di scindere lo Star Office in due progetti distinti: uno proprietario, rivolto al mondo del business e a
sorgenti chiusi, lo StarOffice; un altro, invece, OpenOffice.org, a sorgenti aperti, che si rivolgeva
agli utenti con meno pretese, ma con la possibilità di avere a disposizione il codice sorgente. È una
suite che permette di lavorare anche con i documenti creati con il più diffuso Microsoft Office,
grazie alla possibilità di aprire i suoi formati proprietari, i .doc, ecc.. per intenderci. Questa
caratteristica è stata implementata grazie ad un gran lavoro di reverse engineering. Che cos'è: la
Microsoft non ha mai pubblicato la struttura di un .doc. Quindi i programmatori di Sun e della
comunità hanno dovuto studiare il prodotto finale, appunto diversi file .doc, per poter risalire alla
struttura. Per fare un esempio: avendo i giusti strumenti è possibile costruire una Ferrari avendone il
progetto. Immaginate però di non avere il progetto, ma una Ferrari già montata. Immaginate quanto
diventa difficile costruirne una identica, capire com'è strutturata, smontarla per carpirne i minimi
dettagli... Ecco, questo è il reverse engineering... Non è una cosa da poco...
Ebbene, OpenOffice.org apre tranquillamente i documenti di Office (attenzione a quelli troppo
complicati per cui si rivelano ancora alcuni problemi di impaginazione) e in più ha una funzione
utile per chi distribuisce i file in pubblico: la possibilità di esportare in formato PDF, un formato
difficilmente modificabile e che non contiene tutte quelle informazioni personali che memorizza,
invece, il .doc. In più OpenOffice.org ha un formato proprietario aperto, cosa che, invece, Office
non ha. Che succederebbe ai vostri .doc se un giorno Microsoft decidesse ti togliervi la licenza di
Office (cosa che può fare benissimo, anche per spingervi a comprare i suoi nuovi prodotti)? Con
OpenOffice.org questo rischio non c'è, perché chiunque è libero di scrivere programmi in grado di
leggere e modificare i .sx(w,x,i), appunto i formati propri di OpenOffice.org.
Attenzione, una piccola curiosità (di una certa importanza): Gimp, Mplayer, Mozilla,
OpenOffice.org sono disponibili anche per i Microsoft Windows e quindi potete già utilizzarli con
questi sistemi operativi.
Ecco qui. Questa domanda vuole essere provocatoria. Qualche mese fa, in un'intervista il patron di
Microsoft ha affermato che chi produce OpenSource è gente che programma nelle ore notturne, che
non essendo spinta da un guadagno personale non può produrre roba di buona qualità...
Il signor Gates però si è dimenticato forse di qualcosa: che molte persone realizzano cose non solo
per trarne un profitto, ma per semplice passione, per dare un ulteriore servizio alla società intera;
10. Passiamo ora a vedere un po' le caratteristiche fondamentali del sistema operativo GNU/Linux.
È un sistema multiutente. Il sistema operativo Linux, come tutti i sistemi Unixlike è stato
progettato per macchine con cui lavorano più persone. Quindi macchine dove si rende necessaria
una certa riservatezza, una certa sicurezza rispetto ai danni causati da altri utenti e anche un certo
diritto a personalizzare l'ambiente di lavoro (screensaver, sfondi, configurazioni, ecc...) senza
invadere lo stesso diritto degli altri.
È un sistema con un filesystem caratterizzato da permessi. Che significa? Questa è la
caratteristica che garantisce proprio la riservatezza dei propri documenti e la sicurezza nei confronti
di danni causati da terzi. Ogni file è caratterizzato da 9 permessi: lettura, scrittura, esecuzione da
parte del proprietario; lettura, scrittura, esecuzione da parte dei membri del gruppo del proprietario;
lettura, scrittura, esecuzione da parte di tutti gli utenti della macchina. Quindi il proprietario di un
file può decidere di non rendere accessibile in scrittura un determinato file ad altri utenti e garantirsi
così che quel file non subirà modifiche a propria insaputa. Ad esempio: io ho un documento che per
il momento voglio tenere segreto. Basterà che toglierò tutti e tre i permessi al mio gruppo e a tutti
gli utenti (si fa col comando di shell “chmod 700 nomefile”). In questo modo nessuno potrà
accedere per nessuno scopo, compresa la visualizzazione, al mio file.
C'è un superutente, l'utente root, che gestisce il sistema. C'è questo “superman” che è al di sopra
di ogni permesso. Legge e scrive tutto. Questo perché? Per poter risolvere situazioni in caso di
emergenza. Succede spesso, ad esempio, che un utente poco pratico modifichi in maniera errata dei
file personali di configurazione della shell (vedremo più avanti cos'è), in questo modo senza riuscire
più ad avere acceso al PC. In questo caso, per fortuna che c'è il superutente, l'amministratore, che,
anche se il file in questione non ha i permessi di scrittura per gli altri utenti, può modificarlo
ugualmente. Il superutente è anche l'unica persona che può installare programmi nel sistema (gli
utenti possono farlo solo nelle cartelle a loro aperte, tra le quali per ovvii motivi non ci sono file di
sistema), aggiornare gli stessi e modificare i file di configurazione di base delle varie applicazioni o
delle funzioni del sistema (tipo rete, o hardware vari).
È un sistema multitasking. Permette quindi di eseguire più applicazioni contemporaneamente,
12. Vediamo una piccola carrellata dei principali comandi di shell:
ls: è il comando per visualizzare tutti i file della directory corrente. Io personalmente la utilizzo con
le opzioni laF color, in maniera da farmi visualizzare tutti i file, compresi quelli nascosti,
caratterizzati dal nome che inizia per un punto (.), e facendomi visualizzare se sono dei file di dati,
delle directory o dei link, distinguendomeli anche con colori diversi.
pwd: è il comando per far visualizzare alla shell la posizione corrente nel filesystem: in quale
directory ci troviamo.
exit: è il comando per uscire come utente, rendendo la macchina disponibile ad altri.
cd: per entrare in una directory (piccola attenzione: le directory in unix si separano con lo slash (/) e
non con il backslash () come ci ha abituato qualcun'altro. Guarda caso, tutta internet, che funziona
sotto Unix, utilizza lo slash).
cp: è il comando per copiare un file. La sintassi è semplice: cp nome_file_origine
nome_file_destinazione
mv: muove/sposta un file. E' molto simile al comando cp, ma con la differenza che poi rimuove il
file di origine. E' utilizzabile anche per rinominare un file, naturalmente.
16. Un altro utile operatore è “>“ (redirezionamento dell'output ad un file). Con questo operatore si
può mandare l'output video (o meglio lo standard output) di qualsiasi comando ad un file.
Nell'esempio “cat testo1.txt testo2.txt > testone.txt” vengono concatenati i due file di testo e il testo
risultante dall'unione, invece che essere visualizzato sul monitor, viene mandato ad un nuovo file
creato apposta, il testone.txt.
Nell'altro esempio “ls laF color > la_mia_home.txt”, invece, viene creato un file contenente il
contenuto della directory.
Un altro utile comando di shell è “lpr”. Esso invia un file direttamente alla stampa. L'argomento di
lpr può essere qualsiasi file in formato testo semplice, ghostscript o in formato pdf. Se il formato è
di altro genere, la shell cerca di inviarlo come se fosse un testo semplice, quindi è meglio evitare,
dato che molto spesso si tratta di roba incomprensibile che non ha senso stampare.
18. Un altro sistema per velocizzare il lavoro, che si aggiunge al sistema degli alias, è quello di far
riconoscere alla shell cosa vogliamo battere sulla tastiera e fargli concludere il comando
automaticamente. Per questo si batte il tasto TAB dopo i primi caratteri di un comando o di un
nome di file. A questo punto la shell cercherà tutti i possibili comandi e file che iniziano con quei
caratteri e nel caso di risultato unico completerà automaticamente il comando od il nome del file. Se
il risultato non è unico, allora visualizzerà tutte le possibilità sullo schermo, invitando l'utente a
battere qualche carattere ulteriore. Il tasto TAB può essere utilizzato anche per completare i nomi
dei file argomento di un comando.
Vi assicuro che prendendo una certa dimestichezza con questa caratteristica, il lavoro diventa
velocissimo.
Come molti altri sistemi operativi, anche in Linux si utilizzano i due caratteri jolly da inserire nei
nomi dei file.
21. I primi tempi in cui lavorerete con Linux vi accorgerete subito di una cosa: è un sistema
stabilissimo. Chi viene da ambienti Microsoft saprà benissimo cosa significhi dover riavviare
spesso il computer. Con Linux questo, salvo rare eccezioni, non avviene mai. Il sistema operativo
rimane sempre in massima efficienza. La cosa che può capitare è che si blocchi qualche
applicazione; questo può succedere a causa di bachi nell'applicazione stessa, ma con Linux non
vedrete mai il puntatore del mouse bloccato. Il sistema continua a girare senza problemi e sarà
possibile chiudere la singola applicazione senza dover riavviare l'intero computer. Per chiudere
un'applicazione bloccata c'è il comando “kill”, a cui bisogna dare come argomento il PID, il numero
che identifica ogni applicazione, che si può trovare con il comando “ps u utente”. Verrà chiusa la
singola applicazione, senza bisogno di riavviare tutto il sistema.
E poi Linux, come tutti i sistemi UNIXlike, simili come struttura allo UNIX, offre una sicurezza
molto maggiore. Tutti quanti sentiamo sui telegiornali virus fa strage di PC qua, cracker viola il
sistema là, ecc...
Attenzione ad una cosa: “cracker” e non “hacker” come erroneamente nominano i massmedia. Il
cracker è il pirata informatico che fa un danno a qualcun altro per divertimento e/o per fini di lucro.
Il termine hacker, invece, identifica uno smanettone, uno che utilizza l'intelligenza e l'abilità per
degli scopi positivi. È una persona che utilizza l'intelligienza per riuscire ad utilizzare un qualcosa
per uno scopo per la quale non è stata progettata. Un esempio di hacker potete essere voi ogni qual
volta utilizzate ad esempio l'editor degli sms del vostro telefonino semplicemente per ricordarvi un
numero o una data; l'SMS è nato per un altro scopo, quello di messaggistica, ma voi l'avete
utilizzato come blocknotes; questa è una semplice azione di hackeraggio. Quindi attenzione a non
confondere hacker, termine positivo, con cracker, termine negativo che identifica il vandalo
informatico.
Allora, ebbene, con Linux il termine
virus
ve lo potete dimenticare
. Primo perché Linux è ancora
poco diffuso, quindi chi crea queste “subdole creature” prende poco in attenzione Linux. Un virus,
infatti, come prima cosa deve infettare il mio pc, come seconda poi deve diffondersi ad altri pc. Io
personalmente sono circondato da gente che utilizza Windows e quindi il virus si perderebbe subito,
22. poiché chiaramente un eseguibile Linux non può girare sotto Windows e viceversa. Il sistema
Windows, molto diffuso, invece si presta bene ad epidemie.
E poi il motivo più importante: il file system è caratterizzato da permessi. Quindi io singolo utente
che ho i diritti di scrittura solo della mia cartella personale e di qualche altra cartella meno
importante (tipo la /tmp), non potrò scrivere sui file di sistema, in quanto non ne ho i diritti di
scrittura. Quindi un programma che vuole scrivere sul sistema, tipo appunto un virus per installarsi,
non ne ha la possibilità. Questo è il motivo per cui non bisogna mai utilizzare l'utente root se non
per stretta necessità, poiché il superutente può scrivere ovunque. Quindi un virus non riesce ad
installarsi sul mio sistema e a parte qualche danno iniziale poi morirebbe lì. Quindi non si tratta
solo di diffusione. I sistemi UNIXlike sono sistemi che strutturalmente sono più robusti e
garantiscono più sicurezza sul piano “virus informatici”.
Poi ogni utente ha una sua password di accesso. Niente password, niente utilizzo del sistema. Io
utente posso entrare in remoto con la mia password, ma un cracker che non la conosce ha molte
difficoltà. Non è impossibile, ma molto difficile. Per la cronaca: Windows 98 permetteva l'entrata a
chiunque: in rete si trovano ancora programmini che permettono qualsiasi tipo di scherzetto a
distanza, via internet, ad una potenziale vittima, compreso lo spegnimento del computer.
Ultima cosa, molto importante: Linux è software libero. Quindi eventuali bachi di sicurezza
possono essere notati dall'umanità intera e non soltanto da 10 (più o meno) programmatori. La
probabilità di identificare bachi è più alta e saranno più tempestivamente corretti. Poi non sarà
possibile da parte del programmatore inserire codice maligno, tipo spyware per spiare quello che
facciamo o cose del genere, in quanto, avendo il sorgente, verrebbe subito individuato. Chi conosce
la programmazione e i vari linguaggi può vedere per filo e per segno tutte le operazioni che esegue
un programma.
Quindi Linux e il software opensource battono in sicurezza il software a cui siete abituati. Decidete
voi se vi sembra una cosa da nulla o, invece, molto importante...
Vediamo ora alcune possibili installazioni di Linux. Oltre ad essere installato come unico sistema
del computer, Linux offre anche la possibilità di condividere il PC con altri sistemi e sarà possibile
ogni volta decidere se far partire la macchina con Linux, con Windows 98, con BSD, ecc. ecc.
24. Passiamo ora a dare un'occhiata al file system di Linux.
Iniziamo col dire che in Linux qualsiasi cosa viene trattata come se fosse un file. Di file ce ne sono
tre tipi:
file di tipo directory o cartella, come esattamente in altri sistemi. Sono un tipo di file che non
contengono dati, ma sono strutture che permettono di contenere al loro interno altri file, in maniera
più ordinata, rendendo anche più facile l'accesso. Abbiamo già visto i comandi per creare,
cancellare od entrare in una directory. Una volta dentro una directory, quella diventerà il luogo di
lavoro della shell.
Poi ci sono i file di dati. Sono tutti i file eseguibili, creati e propri di qualche programma, file di
configurazione, di dati, ecc. Possono essere di due tipi. I file di tipo ASCII sono tutti quei file scritti
con codifica ASCII, il vecchio codice che assegna ad ogni carattere visualizzabile un numero da 0 a
255. Sono accessibili, leggibili e modificabili anche con un editor di testo, in quanto ogni byte che
compone il file è tranquillamente interpretabile e visualizzabile tramite il codice ASCII. L'esempio
più standard di un file ASCII è un file di testo semplice, creato col Notepad di Windows o con
qualche altro editor di testo semplice (in Linux ce ne sono diversi: vi, emacs, pico, kedit, ecc...). E
poi ci sono i file di tipo binario, non visualizzabili e difficilmente comprensibili. A questa categoria
appartengono tutti i file eseguibili, tutti i file complessi creati da qualche suite per ufficio, tutti quei
file che al loro interno contengono delle istruzioni che devono essere interpretate ed eseguite
esclusivamente dalla macchina. Ad esempio un foglio di calcolo sarà salvato su un file binario, in
quanto, oltre ai valori inseriti nelle singole celle, dovrà contenere anche delle istruzioni sul formato
(grasseto, sottolineato, ecc.), sui colori, sulle formule, ecc...
Infine ci sono i file di tipo collegamento o link. Sono dei file che in sé per sé non contengono dati,
ma si ricollegano ad altri file. Io posso così avere accesso ad un determinato file anche trovandomi
in una directory differente da quella in cui risiede, semplicemente perché nella directory dove sono
ho un collegamento al file in esame. Di collegamenti ne esistono due tipi: fisici e simbolici. Il
collegamento fisico è praticamente un secondo nome dato ad un file. In questa maniera il file risulta
due volte nel file system, anche in directory diverse, ma sul disco rigido è presente in singola copia,
permettendo un risparmio di spazio. Se ad esempio ho questi due file, /home/maury/a e
/home/guest/b, uno link fisico dell'altro, potrò modificare uno dei due a piacere per modificare il
file. Quindi un link fisico è lo stesso file, ma presente in due percorsi del filesystem differenti. Un
link simbolico è, invece, un file a sé, che contiene la posizione nel file system del file a cui punta. Il
25. concetto di link simbolico è molto simile al concetto di link a cui è abituato chi utilizza sistemi
operativi Microsoft. La differenza tra questi due tipi di collegamento è molto sottile e diventa
significativa per chi fa un utilizzo abbastanza avanzato del sistema. In tutti i modi non
approfondiamo, in quanto per capire bene bisogna introdurre il concetto di inode.
Ora vediamo la struttura del file system. In Unix e di conseguenza anche in Linux non esistono le
lettere di unità. Quindi dimentichiamoci dell'hard disk C:, del lettore cdrom D:, ecc... Tutte le
periferiche sono accessibili dalla directory root (radice) “/”. Ma allora, come si accede ad un hard
disk o ad un cdrom? Allora vediamo di introdurre il concetto di directory di mount, o punto di
mount. Esistono nel filesystem di Linux delle directory fittizie, che non contengono file che
risiedono nell'hard disk, ma che possono essere utilizzate per “visualizzare” (attenzione, non
contenere) il contenuto di un cdrom o di una partizione di disco rigido, o anche di qualche unità
che sta in rete. In genere queste directory si trovano nella directory /mnt, ma possono stare in
qualsiasi altra parte. Per renderle accessibili sarà necessario “montarle”, dire cioè al sistema di
renderle accessibili in un particolare punto di mount. Per far questo si utilizza il comando “mount”.
La sintassi è la seguente:
mount dispositivo punto_di_mount t tipo
Il dispositivo viene individuato dando il file virtuale che identifica quel dispositivo nella directory
/dev (device). Ad esempio gli hard disk IDE sono rappresentati dai file /dev/hda /dev/hdb /dev/hdc
ecc. e le partizioni in un singolo hard disk con un numero progressivo dopo il nome di device:
/dev/hda1, /dev/hda2, ecc. I cdrom, invece, spesso sono collegati su controller IDE e quindi anche
loro saranno rappresentati da /dev/hdc, ecc, ma in molte distribuzioni sono anche collegati tramite il
link /dev/cdrom, /dev/cdrom1, ecc.
Quindi per montare un cdrom e renderlo accessibile, si dovrà dare il comando
mount /dev/cdrom /mnt/cdrom t auto (iso9660)
Il tipo di filesystem, con l'opzione t auto verrà riconosciuto in automatico dal kernel.
26. Vediamo ora cosa ci presenta la directory radice, la root directory (/).
Se diamo il comando ls troviamo una ventina di directory figlie.
Allora, descriviamole un attimo:
/bin è una directory che contiene molti comandi binari ed eseguibili per tutti gli utenti. Questa
directory sarà scrivibile solo dall'utente root, così che un utente normale non potrà installare,
disinstallare applicazioni e tantomeno potrà fare danni al sistema. Gli utenti normali avranno solo il
permesso di lettura ed esecuzione. Molti dei comandi di base si trovano in questa directory: rm,
rmdir, ecc.
/boot contiene i file di boot, di avviamento, la parte centrale del kernel (senza moduli che verranno
caricati successivamente) che viene caricata come prima cosa e in alcuni casi i file di
configurazione del bootloader.
/dev l'abbiamo vista prima, contiene dei file speciali, virtuali, che rappresentano i dispositivi
collegati al computer: stampanti, harddisk, lettori dvdcdrom, masterizzatori, schede video, schede
audio, mouse, modem, ecc. ecc.
/etc è una directory destinata ai file di configurazione. Questi saranno i file di configurazione base,
poi ogni utente potrà personalizzare le varie applicazioni con dei file di configurazione che
risiederanno nella propria home.
/home contiene le cartelle personali di ogni utente. Nella propria home ogni utente avrà i propri
documenti, le configurazioni personali e tutto ciò che vorrà.
30. tar xzvf nome_file.tar.gz
che come vedete, il comando tar, tramite l'opzione “z” degizippa il .tar.gz prima di scomporlo.
Un'istruzione sola al posto di due.
Attenzione: a volte si utilizza un compressore differente dal Gunzip, il Bzip2, un compressore un
po' più potente per i file grandi. La procedura in questo caso è simile:
si decomprime col comando
bunzip2 nomefile.tar.bz2
e poi si detara come prima, oppure in maniera veloce
tar xjvf nomefile.tar.bz2
dove l'opzione z è sostituita dall'opzione j, che indica appunto di decomprimere un file bzip2 e non
un gzip.
31. E ora vediamo come si compila di solito il programma. Si entra nella directory che è risultata
dall'estrazione dal tarball.
cd nome_directory
Chiedendo una lista dei file con ls se ne notano alcuni coi nomi scritti completamente in maiuscolo,
tipo README, INSTALL. Questi sono dei file ASCII che conviene sempre leggere in quanto
contengono informazioni importanti sulla compilazione e sull'installazione del programma. Molti
programmi possono, infatti, richiedere delle procedure e delle opzioni differenti dalla norma. In
genere comunque si compila in questo modo:
./configure
che lancerà un tool automatico per il riconoscimento delle caratteristiche della macchina e del
sistema sul quale sarà installato il programma. Vedrete sul monitor l'elenco dei risultati di tutte le
analisi che fa questo tool. Inoltre scriverà il Makefile, un file dove saranno scritti tutti i parametri
per la compilazione e per l'installazione, indispensabile per i passaggi successivi.
Poi si va col comando
make
che eseguirà la compilazione vera e propria. Anche qui saranno visualizzati sul monitor tutti i
comandi ed eventuali messaggi di errore nel caso la compilazione non vada a buon fine. E'
interessante vedere che bella mole di comandi il programmatore ci ha risparmiato.
Alla fine della compilazione si installa il programma (da root, naturalmente) con
make install
e a questo punto il programma sarà pronto per essere eseguito.
32. Piccola curiosità: per disinstallare il programma, dalla stessa directory
make uninstall
Queste sono le procedure più comuni, ma meglio leggere sempre i file con i nomi in maiuscolo, in
quanto a volte sarà necessario qualche altro passaggio per la compilazione e l'installazione.
Allora, passiamo ora a qualche consiglio su una migrazione meglio gestibile.
Per passare a Linux in maniera meno shoccante, conviene iniziare a sostituire pian piano i vari
programmi, che si utilizzano col vecchio sistema, con quelli che verranno poi utilizzati sotto Linux.
Molti di questi, infatti, esistono anche per i sistemi Microsoft.
Iniziare con sostituire ad esempio l'Office di Microsoft con l'OpenOffice.org, convertendo pian
piano i documenti da .doc, ad esempio, in formato di OpenOffice.org (.sxw). Il Mozilla al posto di
Internet Explorer e di Outlook Express, avendo anche la possibilità di importare dai vecchi
programmi la rubrica, i messaggi di posta e gli indirizzi internet tra i preferiti. L'MPlayer al posto
del Windows Media Player, per vedere DVD e file multimediali. Provare il The Gimp per fare foto
ritocco. Xchat al posto di mIRC per chi usa il sistema di messaggistica IRC. E molti altri programmi
che potranno essere trovati in rete.
Questi sono tutti programmi che esistono anche per Windows, quindi si può iniziare a prenderci
familiarità senza dover installare ancora il sistema Linux.
35. Ed ora un po' di obiettività: ci sono anche alcuni contro:
1 – Utilizzare Linux richiederà del tempo per l'educazione al nuovo sistema. Ci si metterà un po' ad
orientarsi a dovere e per imparare ad utilizzare le nuove applicazioni open source. Quindi è
veramente gratuito? Sulla carta sì, ma qualche mese fa, in una conferenza (Rimini, 27 maggio 2004,
intervento di Paolo Attivissimo), ho sentito questa frase: “E' gratuito, a patto che il tuo tempo non
valga nulla”. Quindi preparatevi a qualche difficoltà iniziale. La cosa sicura è che vale la pena di
fare l'investimento. Naturalmente parlo per chi si fa assistenza da sé; in caso si chiamino degli
specialisti il discorso cambia.
2 – Molte applicazioni per determinati lavori mancano ancora all'appello. Abbiamo visto prima, ad
esempio, l'equivalente dell'AutoCad. Beh, per ora si usa il dualboot e al limite si ritorna “di là”, in
tutti i modi si può provare l'emulazione con il wine, un progetto che sotto Linux tenta di emulare le
API di Windows, rendendo possibile l'esecuzione di molti piccoli programmi eseguibili per DOS o
per Win32. I grandi programmi probabilmente non funzioneranno, ma molte applicazioni Windows
potranno essere utilizzate tranquillamente da Linux.
3 – Il problema maggiore: la compatibilità hardware. Molti hardware daranno problemi. Le ditte
continuano a vendere hardware fornendo driver per Microsoft e lasciando gli utenti di altri sistemi
operativi in mano alla comunità opensource, almeno per chi rende pubbliche le specifiche tecniche
del componente, altrimenti il discorso si fa più complicato. Preparatevi quindi ad avere problemi se
avete qualche hardware strano...
Riguardo a schede di rete Wireless o a SoftModem Conexant, segnalo in una piccola parentesi un
progetto a pagamento: il DriverLoader, un programma in grado di leggere ed interpretare i driver
per Windows, rendendoli utilizzabili anche sotto Linux. Io l'ho provato con una schedina wireless
per il mio portatile e funziona molto bene.
36. Allora, abbiamo visto brevemente 8 pro e 3 contro. Secondo voi quindi conviene quantomeno
provare ad effettuare il passaggio?
Io spero di avervi convinto, spero di avervi fatto una chiara presentazione delle caratteristiche di
Linux, sperando che possa esservi stata d'aiuto per convincervi a tentare la migrazione e che vi
possa essere stata d'aiuto per iniziare subito ad orientarsi discretamente bene nel nuovo sistema.
...e speriamo che domani Linux sia installato su qualche computer in più di oggi...