Molti dei concetti qui esposti sono tratti dal libro "DaWindows a Linux", ed. Apogeo, di Paolo Attivissimo (Il suo libro è scaricabile gratuitamente all'indirizzo: Da Windows a Linux).
Le differenze che troverete tra i due sistemi operativi non debbono spaventarvi. Il normale utilizzo avviene da interfaccia grafica; e quest'ultima è molto simile nei due sistemi. E' bene comunque sapere fin dall'inizio alcune delle differenze tra i due sistemi, in modo da non trovarsi troppo disorientati nell'uso quotidiano.
Una delle differenze più vistose è la parte grafica. Non perchè siano sostanzialmente diverse nei due sistemi operativi, ma perchè in Windows è un componente essenziale e obbligatorio, mentre in Linux è un accessorio facoltativo. Esistono moltissimi sistemi Linux (basta pensare ai server) in cui l'interfaccia grafica non è nemmeno presente. E svolgono meravigliosamente il loro compito.
La separazione tra l'interfaccia grafica e l'interfaccia testuale è in Linux talmente netta che l'interfaccia grafica è considerata come un qualsiasi altro programma. All'interno di questo programma, chiamato X, gira un altro programma, il 'Windows Manager (KDE, Gnome, od altro, all'interno del quale girano i programmi che necessitano della grafica.
Un'altra fondamentale differenza è questa: ogni versione di Windows è un blocco unico. Il CD di Microsoft contiene tutti i componenti scritti per quella versione. I patch distribuiti successivamente sono soltanto delle pezze create per chiudere buchi del sistema. Ciò significa che il sistema verrà aggiornato solo con l'uscita di una nuova versione completa.
In Linux il discorso è completamente diverso. Ogni suo pezzo cresce e si evolve separatamente ed è subito disponibile a tutti gli utenti. L'evoluzione di Windows procede a sbalzi, quella di Linux è costante.
Questo tra l'altro significa che in Linux si può aggiornare il sistema, o parte di esso, mentre si sta tranquillamente lavorando, senza necessità di doverlo riavviare. L'aggiornamento ha effetto alla successiva apertura del programma interessato o al successivo riavvio del sistema.
Altra differenza: in Windows siamo abituati a distinguere chiaramente fra dischi rigidi, modems, stampanti, monitor, ecc. e sappiamo benissimo che non hanno niente a che vedere con files e cartelle.
In Linux le cose sono molto diverse. Tutti gli elementi sono un file. Esattamente come ho detto: il disco rigido per Linux è un file, il modem è un file, una cartella è un file, ecc..
Questo approccio, inizialmente disorientante, ha i suoi vantaggi: la gestione di questi elementi avviene tutta nello stesso modo rendendo più snello il funzionamento di Linux.
Una delle conseguenze pratiche è che in Linux i nomi dei dispositivi sono tutti nomi di files.
Eccone alcuni:
Porte seriali
Windows Linux
COM1 /dev/ttyS0
COM2 /dev/ttyS1
COM3 /dev/ttyS2
COM4 /dev/ttyS3
Porte parallele
Windows Linux
LPT1: /dev/lp0
LPT2: /dev/lp1
Floppy
Windows Linux
A: /dev/fd0
B: /dev/fd1
CD-ROM
Windows Linux
D: /dev/hdc
E: /dev/hdd
...
Dischi rigidi
In Windows vengono indicati con delle lettere. Facciamo alcuni esempi.
Avete un solo disco rigido con un'unica partizione. Windows chiamerà quella partizione con la lettera C:.
Linux la indicherà come /dev/hda1, dove h indica che si tratta di un disco IDE (se fosse stato scasi lo avrebbe chiamato sda1); a indica che è il primo disco rigido (il secondo è b, il terzo c, ecc.) ed 1 indica che si tratta della prima partizione.
Se adesso aggiungete una seconda partizione a quel disco, Windows vedrà le due partizioni come C: e D:, mentre il CD-ROM diventerà E:, mentre Linux le vedrà come /dev/hda1 e /dev/hda2 e il CD-ROM resterà /dev/hdc.
Ancora qualche considerazione sui dispositivi.
Mount
I vari dispositivi (floppies, dischi rigidi, CD-Roms, ecc.) in Linux vengono ignorati fino a che non gli viene detto di prenderli in considerazione (cosa che può anche avvenire in modo automatico). Il tutto avviene con il comando 'mount' (monta) che specifica il tipo di dispositivo, come utilizzarlo e dove visualizzarlo. Il comando contrario è 'umount' (smonta).
I parametri relativi al montaggio vengono memorizzati nel file di testo 'fstab' che si trova nella directory /etc.
Il perchè di questo comportamento è molto semplice: si vuole evitare che l'inserimento di un supporto CD-ROM) possa avviare all'insaputa dell'utente programmi pericolosi (in Windows il file autorun.inf viene eseguito automaticamente ogni volta che si inserisce il CD-ROM che lo contiene e può avviare qualsiasi programma che sia stato indicato nel file stesso: ad esempio, cosa già avvenuta, il programmino Back Orifice, potentissimo strumento di sorveglianza e manutenzione, che consegna il vostro computere nelle mani di qualche sconosciuto.
Il fatto poi che per poter togliere il CD-ROM dobbiate prima smontarlo (umount /dev/hdc) vi protegge da eventuali crash del sistema (provate a togliere un CD-ROM da Windows mentre un programma lo sta usando).
Maiuscole e minuscole
Windows può usare maiuscole e minuscole, ma non le distingue. Per lui i files prova.txt e Prova.txt sono la stessa cosa.
Linux riconosce e distingue le maiuscole dalle minuscole. I files prova.txt e Prova.txt sono per Linux due files diversi e distinti e pertanto possono coesistere nelle stessa directory. Questo può inizialmente portare ad errori. Ad esempio in windows potete lanciare il programma notepad.exe indifferentemente coi comendi: c:\Windows\notepad.exe, \windows\NOTEpad.exe o \WINDOWS\notepad.EXE. In Linux il nome delle directories e dei files deve invece rispettare esattamente le maiuscole e le minuscole, altrimenti non otterrete nulla.
Estensioni
Windows usa le estensioni per sapere di che tipo di file si tratta: tutti i documenti Word finiscono con .doc, i fogli di calcolo Excel con .xls e così via.
Linux no. Linux riconosce i tipi di file usando il 'magic number', vale a dire una sequenza di byte presente all'inizio del file. Così, ad esempio, se all'inizio del file trova la sequenza '0xffd8', Linux sa che il file in questione è un'immagine in formato jpeg, a prescindere dall'estensione che può avere.
Le uniche estensioni usate da Linux sono: un punto che precede il file e che segnala al sistema che si tratta di un file (o directory) nascosto, e la tilde come estensione finale che indica trattarsi di una copia.
L'estensione viene comunque usata per permettere all'utilizzatore di capire di cosa si tratta e può avere lunghezza qualunque.
Slash e Backslash
Se osservate attentamente i nomi dei files Linux che ho scritto più sopra, avrete certamente notato che, a differenza di Windows, viene usato il carattere "/" e non il carattere "\" tipico del sistema operativo Microsoft.
Perchè?
Il motivo è molto semplice: Linux rispetta gli standards.
Il sistema Unix, infatti, sistema da cui deriva Linux, era operativo molto, ma molto tempo prima che arrivasse Windows. E utilizzava (e utilizza tuttora) per l'appunto il carattere "/" . Se ci fate caso lo stesso carattere viene utilizzato anche su Internet dal momento che è nata su macchine Unix e Windows è arrivato dopo.