Confronto Windows-Linux
In questa pagina confronto alcuni aspetti di Windows e Linux. Le considerazioni
esposte derivano dalla mia esperienza quotidiana con entrambe i sistemi
operativi (sebbene non lo usi per lavoro, accendo il computer quasi tutti
i giorni...).
Frammentazione dei dischi
Il problema della frammentazione dei file (quindi dei dischi rigidi) è
legata all'idea di suddividere i dischi in settori di valore prefissato
(i cluster), e di suddividere conseguentemente i file in unità della
stessa dimensione. Poichè la dimensione di un file non è,
in generale, un multiplo intero della dimensione di un cluster, si presentano
due problemi: uno è la cosiddetta frammentazione interna, dovuta
al fatto che l'ultimo cluster occupato da un file non viene mai utilizzato
per intero, con conseguente spreco di spazio; il secondo è detto
frammentazione esterna, e si ha quando un file occupa due o più
cluster: può accadere che questi non siano contigui, ma sparsi in
diversi punti del disco, in modo tale che la lettura del file richiede
molti spostamenti della testina, con conseguente aumento dei tempi di lettura.
Da un punto di vista teorico, quindi, la frammentazione dei dischi
nasce da questioni progettuali abbastanza generali, indipendenti dal sistema
operativo. Dal punto di vista pratico, però, possiamo dire tranquillamente
che la frammentazione del disco è un problema dei sistemi operativi
Microsoft.
Una partizione formattata con ext2 (il filesystem nativo di Linux)
non si frammenta mai più di qualche punto percentuale. Inoltre i
programmi di "deframmentazione" sono praticamente assenti in Linux: considerata
la natura open-source del sistema, e il fatto che molte utility sono sviluppate
su base volontaria per soddisfare specifiche necessità, una tale
assenza significa che tali programmi non sono necessari.
Nonostante Windows sia affetto dal problema della frammentazione
dei dischi, viene venduto senza una valida utilità di deframmentazione.
Il programma in dotazione va bene per deframmentare partizioni di un giga
o due, specie se semivuote... Se avete dischi particolarmente affollati
i tempi di completamento dell'operazione sono geologici. Inoltre se sono
attivi altri programmi, come antivirus, ecc., che agiscono indipendentemente
sul filesystem, il processo si interrompe spesso, ripartendo da zero.
Se volete un programma decente, siete costretti ad acquistare un software
aggiuntivo. Chi usa Windows a casa può evitare l'esborso e accettare
di lasciare accesa tutta notte la propria macchina per effettuare la deframmentazione,
oppure rassegnarsi a formattare tutto periodicamente (cosa che ogni tanto
si è costretti a fare comunque), ma nel caso di sever aziendali
la questione è molto più delicata.
La frammentazione riduce le prestazioni generali della macchina, perché
aumenta i tempi di accesso al disco. D'altra parte un server dovrebbe essere
spento (o inattivo) per il minor tempo possibile, quindi la formattazione
e il ripristino (reinstallazione o restore da un backup precedente) di
dati e software è un processo da evitare il più possibile.
La soluzione, quasi obbligata in questo caso, è acquistare un software
di deframmentazione "evoluto", che possa fare il suo lavoro mentre il server
è attivo, che possa deframmentare macchine collegate in rete in
modo automatico, che possa essere programmato per attivarsi senza l'intervento
dell'amministratore.
Mi preme sottolineare che tale software risolve un problema intrinseco
al sistema operativo, e come tale andrebbe integrato nello stesso, mentre
viene richiesto agli utenti di spendere altro denaro (oltre alla cospiqua
somma necessaria all'acquisto del solo SO) per "mettere una pezza" su gravi
problemi di architettura del filesystem.
Considerate infine che deframmentazione significa consumo di CPU e
memoria da parte del programma, e spreco di banda per la deframmentazione
di macchine in rete. In contesti in cui i tempi di risposta della rete
siano stringenti, questo può significare necessità di aggiornamento
dell'hardware, con tutti i disagi (solo in ultima analisi economici) che
ciò comporta.
Virus
In una parola, i virus sono un problema dei prodotti Microsoft: su Linux/Unix
praticamente non ne esistono!
Credo che una delle cause principali della diffusione dei virus nel
mondo MSDOS (che ne è stato la culla) e Windows sia il fatto che
non esiste, a livello di SO, una politica di gestione degli accessi. In
una macchina Windows l'utente che siede alla consolle può fare tutto
ciò che vuole, anche formattare il disco o danneggiare l'mbr se
lo desidera. E' come se si utilizzasse Linux sempre come utente root. Nessuno
sano di mente (specie se amministratore di sistema) prenderebbe mai una
simile abitudine.
Se un utente Linux non privilegiato (cioè diverso da root) lanciasse
un ipotetico virus, l'integrità del sistema non sarebbe comunque
compromessa, in quanto il virus stesso non disporrebbe dei privilegi necessari
a modificare file importanti. Il sistema operativo stesso, in modo automatico,
impedirebbe al virus di agire. Al massimo si potrebbe verificare una
perdita di dati dell'utente colpito.
A onor del vero va detto che nei sistemi Linux/Unix è possibile
aggirare il controllo degli accessi sfruttando le vulnerabilità
di determinati programmi che girano con privilegi di root. Una volta compiuto
questo passo, si dispone del controllo totale del sistema (e si possono
fare parecchi danni...). Questi bug vengono comunque resi pubblici in tempi
molti brevi dopo la loro scoperta, quindi un amministratore/utente ben
informato può aggiornare il proprio sistema in tempi estremamente
rapidi.
C'è poi un'importante differenza tra un'infezione virale su
Windows e un attacco riuscito ad un sistema Linux: nel primo caso il danno
può essere provocato da gesti all'apparenza "innocenti" come la
lettura di un floppy prestatoci da un amico, la lettura di un messaggio
di posta elettronica, l'apertura di un file allegato, ecc. Nel secondo
caso, invece, una persona esperta e motivata (tipicamente un hacker o un
cracker) deve effettuare manualmente (o in modo semiautomatico mediante
appositi software) una serie di operazioni volte ad ottenere il controllo
del nostro PC. Gli attacchi avvengono solo via rete, quindi la prima cosa
da fare è ottenere l'indirizzo IP della nostra macchina. Server
aziendali, sempre accesi, con indirizzi IP noti o facili da ottenere (www.<nomeazienda>.com,
ad esempio) sono facili bersagli per questo tipo di operazioni. I PC casalinghi,
invece, non hanno un nome di dominio, solitamente l'indirizzo IP è
dinamico (cambia ad ogni connessione) e inoltre sono connessi ad internet
molto saltuariamente.
Trojan Virus
I cosiddetti "cavalli di troia" differiscono da tutti gli altri virus perché
si presentano sottoforma di programmi apparentemente innocui, che però
nascondono codice pericoloso che si attiva sotto determinate condizioni
(una data, la pressione di una combinazione di tasti, ecc.).
Pensate ad esempio a Excel, o Word. Seguendo le istruzioni dei vari
"easter eggs" presenti in rete, si attivano videogiochi tridimensionali,
finestre scorrevoli con i nomi o le foto degli sviluppatori, ecc. Immaginate
di mettere, al posto di questi innocui "gadget", programmi che infettano
i vostri documenti con macro virus, cancellano file a caso in c:\windows,
scaricano da internet e installano software di controllo a distanza come
SubSeven o BackOrifice, comunicano a certi siti il vostro indirizzo IP
del momento, ecc. Immaginiamo anche che le sequenze di tasti per attivarli
non siano tanto astruse, ma comprendano ad esempio la digitazione di un
particolare valore numerico in una cella, o una sequenza di comandi di
formattazione usata di frequente. Ecco fatto un "trojan virus" travestito
da Word o da Excel!.
Nel mondo Linux (e in generale nel mondo OpenSource) un simile scenario
non è possibile. Tutto il software su cui si basa Linux viene distribuito
sia come file compilato (binario) che come codice sorgente (a volte solo
come codice sorgente). Chiunque può scaricare il programma e controllare
cosa fa, non 'leggendo la documentazione', ma studiando il codice
che poi compilerà ed eseguirà sulla propria macchina.
Naturalmente non tutti hanno le competenze necessarie per fare questo,
e sicuramente nessuno ha il tempo di controllare il codice di ogni programma
che installa sul proprio computer. L'importante è che, essendo il
codice liberamente disponibile, qualcuno in Internet lo ha sicuramente
sudiato. Un programma contenente codice "maligno" avrebbe vita breve, la
notizia della sua pericolosità si diffonderebbe con la stessa rapidità
con cui si diffondono i bug report dei normali programmi.
Netscape Navigator/Communicator
Il browser di Nestcape (nelle sue diverse versioni) è il più
diffuso in ambito Linux, tuttavia non gode certo della stessa salute (dal
punto di vista della stabilità) del sistema operativo. Mi è
capitato abbastanza spesso che il programma si bloccasse dopo aver attivato
una decina di download contemporanei, oppure durante l'esecuzione di una
applet Java particolarmente pesante.
Sotto Windows il blocco di Netscape ha solitamente un'unica, inevitabile
conseguenza: il riavvio della macchina. Sotto Linux, invece, è sufficiente
"uccidere" il processo bloccato mediante programmi come gtop (in modalità
grafica) o top (a caratteri), oppure con comandi diretti come kill o killall.
I download vengono ovviamente interrotti come sotto Windows, ma il sistema
mantiene intatta la sua stabilità, non si perdono i dati in altre
applicazioni, non si perde tempo a riavviare la macchina, la connessione
del modem rimane attiva, ed eventuali altre applicazioni di rete continuano
a funzionare come se niente fosse.
In rarissimi casi, quando il blocco di Netscape provoca il blocco dell'interfaccia
grafica, basta entrare nel sistema in modalità consolle e riavviare
il server X.
Un'ultima curiosità: l'avvio dell'interprete Java di Netscape
richiede un tempo notevole sotto Windows, mentre quasi non ci se ne accorge
sotto Linux.
Installazione di programmi
Come si legge in Halloween
Rant, di Eric Raymond, Windows "[...] va riavviato ogni volta che si
cambia qualcosa di più profondo dello sfondo del desktop."
L'installazione di quasi tutti i software per Windows richiede il riavvio
della macchina. Probabilmente la causa è la presenza del registry,
un file dalla struttura estremamente complicata in cui vengono memorizzati
tutti i parametri necessari al funzionamento del sistema. La scrittura
di nuovi dati nel registry implica il suo ri-caricamento in memoria per
attivare la nuova configurazione, e, se non vado errato, questo avviene
solo all'avvio di Windows.
A volte mi è capitato di non riavviare dopo l'installazione
di un programma, ma di utilizzarlo ugualmente subito dopo averlo installato.
Dopo poco il sistema è diventato instabile e sono stato comunque
costretto a riavviare.
Sotto Linux si possono installare e disinstallare programmi senza
mai riavviare la macchina. Addirittura è possibile modificare la
configurazione del sistema (anche in modo profondo) e vedere gli effetti
di tale modifica subito dopo. Al massimo è necessario il riavvio
del programma interessato.
Personalmente, ho installato e disinstallato StarOffice 5.2 più
volte nella stessa giornata, nell'arco di circa 7 ore, senza mai spegnere
nè riavviare il computer. Non ho avuto alcun problema di stabilità
nè del programma, né del sistema in generale. Avrei potuto
continuare tranquillamente a utilizzare altri programmi contemporaneamente
all'installazione. Per confronto, Office Professional richiede due o tre
riavvii della macchina per essere installato, il che vuol dire che tale
operazione richiede di salvare qualsiasi lavoro si stia svolgendo e di
chiudere tutti i programmi attivi...
Problemi con il lettore di CD-ROM
Spesso il rilevamento del cd-rom (operazione che avviene subito dopo l'inserimento
del disco nel drive) blocca Windows per qualche secondo (nemmeno il mouse
risponde). Nel caso di CD-ROM masterizzati in modo non ottimale, il rilevamento
può richiedere parecchi secondi, durante i quali non è possibile
fare altro che aspettare.
A volte poi l'estrazione del CD in momenti "non opportuni" (ad esempio
durante l'aggiornamento delle directory di explorer) provoca il blocco
dell'interfaccia grafica; compare lo schermo blu con un messaggio del tipo
"inserire il CD-ROM numero xxxxxxx. Premere INVIO per continuare." Non
sempre il reinserimento del CD risolve il problema; molto più spesso
è necessario riavviare il computer, con conseguente perdita di tutti
i dati non salvati.
In Linux è necessario "montare" (mount) e "smontare" (umount)
il cd-rom rispettivamente per poterlo leggere ed estrarre dal lettore CD.
Questo sistema è una garanzia per evitare problemi: il sistema sa
sempre con certezza se un cd-rom è presente nel lettore (e di quale
disco si tratta) poiché non è possibile, una volta "montato",
estrarre manualmente il CD dal drive (il pulsante di 'eject' viene disabilitato).
Dire che questo sistema è scomodo è pura FUD: esiste il programma
'usermount' che riduce il mount al click di un pulsnte, mentre KDE esegue
il mount automaticamente cliccando sull'icona CDROM sul desktop. "Smontare"
un cd-rom è altrettanto facile: click sulla opportuna voce di menù
sotto KDE oppure il comando 'eject' da terminale.
(C) Copyright 2001 Marcello Romani. Questo documento può
essere copiato liberamente, posto che non venga modificato e che si mantenga
il nome dell'autore.
Per commenti, suggerimenti, correzioni, idee: Marcello
Romani
Torna alla
pagina iniziale
Ultimo aggiornamento: 16 settembre 2001