Lez.1 Introduzione al SO Linux
Filosofia di Linux
Il modello open source
Ricerca Documentazione
Scelta tra le varie Distribuzioni Linux .
Sistemi operativi e kernel
Tipi di FileSytem (Fat, Ntfs, Ext2,Ext3 Journalling)
1
Filosofia di Linux
Linux è il principale protagonista del software libero sviluppatosi
ed affermatosi negli ultimi anni con gran successo.
Mr. Linus Torvalds, infatti, non ha venduto il suo lavoro, ma ha
deciso di condividerlo gratuitamente con chiunque ne fosse
interessato distribuendo sotto licenza GNU il codice sorgente
frutto di tanta fatica: il codice di Linux, infatti, è liberamente
distribuito ed è a disposizione di tutti
Linux non è l'unico sistema operativo Open source.
Ne esistono molti altri in circolazione ma quelli più conosciuti
sono i dialetti *BSD (FreeBSD, OpenBSD, NetBSD).Lo stesso
kernel di Mac Os X,Darwin è open source ( basato su FreeBSD
e Mach 3.0).
2
Software Open Source
OpenSource vuole dire Codice Aperto; ciò non vuole dire che il
programma è gratuito ma che è Aperto.
Quindi un programma OpenSource può tranquillamente essere a
pagamento.
Il sorgente è distribuito assieme al programma,
chiunque può modificarlo e ridistribuirlo
3
Storia di Linux
Nel 1994 dopo 3 anni che Linus Benedict Torvalds, ancora un giovane
studente dell' Università di Helsinki, aveva iniziato a lavorare per hobby
al primo SO Unix-like per Home Computer(Minix), viene rilasciata la
prima
versione
definitiva
1.0.
Nascono RedHat, Debian, SUSE tutt'ora fra le distribuzioni più diffuse.
Linux
(che resta copyrighted by Linux Torvalds) diventa ufficialmente
un software aperto, abbracciando in pieno la General Public License
(GPL)
del
movimento
GNU
Open
Source.
Grazie all'aumento esponenziale dell'interesse da parte della comunità
mondiale nascono i primi LUGs (Linux User Groups), ormai diffusi
anche in Italia.
4
GNU
GNU è un acronimo ricorsivo (Gnu is Not Unix).
GNU è un progetto fondato nel 1983 da Richard Stallman che prevede
una gestione particolare dei diritti d’autore tramite la licenza GPL.
Scopo ultimo del progetto GNU è la realizzazione di un sistema con
kernel libero (Hurd), attualmente in fase di sviluppo.
I software GNU più noti e diffusi sono:
Bash
Gcc
Emac
Gnome
5
GPL
La licenza GPL è il fulcro di tutta l’attività di GNU.
La GNU GeneralPublic License è una licenza open source per il software
libero.
Viene definita licenza virale, in quanto richiede obbligatoriamente il suo
utilizzo qualora in un programma si faccia uso di parti o codice protetto
dalla licenza GPL.
La GNU GPL permette all’utente libertà di utilizzo, copia, modifica e
distribuzione senza alcun vincolo se non la ridistribuzione e la condivisione
della conoscenza.
6
Sistemi Unix-like
Caratteristiche fondamentali:
• Separazione fra grafica e sistema
• Multi-utenza ed isolamento (Sicurezza)
• Scalabilità ed integrabilità
7
Linux vs Windows
Motivazioni Economiche
Windows XP Professional costa più di 250 euro.
In più se vogliamo un buon word processor occorrono circa 500 euro.
Un antivirus costa 50 euro, altri 50 euro per un buon firewall.
Ciò significa che un utente Windows che voglia essere in regola, nelle migliori
delle ipotesi deve spendere circa 850 euro solo per il software minimale
8
Linux vs Windows
Sicurezza
In generale tutti i Sistemi Operativi Unix-like sono sempre stati di tipo multi-utente e per
questo motivo integrano un potentissimo sistema di controllo degli utenti.
A livello di Kernel Linux permette di configurare un piccolo firewall (iptables) che consente di
impostare gli utenti che possono identificarsi nel PC .
Anche Linux è vittima di piccoli worms ma la procedura d'installazione di questi ultimi è molto
più complessa in confronto a quanto succede con i Sistemi Microsoft. Un worms si può
installare nel vostro PC solo ed esclusivamente se viene avviato con i diritti di root.
Ma se lavorate come utenti comuni le possibilità di essere infettati sono quasi nulle
9
Linux vs Windows
La scelta di un sistema operativo piuttosto che un altro non dovrebbe
mai essere fatta alla leggera.
Di fatto, al momento, non è una scelta considerando che la stragrande
maggioranza dei calcolatori nuovi sono già venduti con Windows
preinstallato, del quale avete pagato la licenza senza neppur saperlo.
Tra i motivi che vi potrebbero spingere ad adottare Linux citiamo:
•Etica
•Risparmio
•Sicurezza
•Stabilità
•Prestazioni
•Flessibilità e scalabilità
10
Documentazione Linux
http://www.google.it/linux
http://www.linux.org
http://www.pluto.it
• Appunti di Informatica Libera
• The Linux Documentation Project
• Da Windows a Linux
• Man pages
11
Distribuzioni Linux
Linux è un tipo di sistema operativo, che contraddistingue in realtà una
famiglia di software, per questo si parla di distribuzioni.
Ogni distribuzione fornisce il kernel Linux e alcuni strumenti di sistema,
ma differisce dalle altre per le modalità d'installazione e per le
applicazioni incluse (utility)
Quindi il kernel è il cuore di Linux
è di solito individuato da un numero progressivo 2.4.20
Mentre la distribuzione = kernel+utility
WEB Resources http://www.linuxfromscratch.org
Guida alla costruzione di un proprio sistema Linux da zero
12
Distribuzioni Linux
CRITERI DI SCELTA
-
Modalità di installazione
Tempi di acquisizione
Tempi di installazione
Difficoltà nell’installazione
Caratteristiche hardware richieste
Tempi di avviamento
Applicazioni e tool a disposizione
Esistenza qualità, completezza della documentazione
Possibilità di assistenza on-line
13
Criteri di Scelta di Distribuzioni Linux
Modalità di installazione Gli aspetti relativi all'installazione sono particolarmente significativi nel caso di analisi di un
sistema operativo. Sono elencate le diverse opzioni disponibili, descrivendo in maggior dettaglio quelle ritenute più
confacenti ad una scuola, tenendo conto delle risorse a disposizione (connessione più o meno veloce ad Internet,
presenza di un masterizzatore, disponibilità finanziarie). Nel caso di software applicativo, si valutano tutte le
possibili modalità di installazione (locale, di rete, parziale, completa).
Tempi di acquisizioneSolitamente esistono più modi per reperire un prodotto. Un'analisi di massima dei tempi di
acquisizione può guidare il soggetto verso una forma di fornitura piuttosto che un'altra, anche per disporne nei
tempi previsti dalla programmazione didattica.
Tempi di installazioneIndica l'effettivo impegno per arrivare all'installazione completa del prodotto..
Tempi di avviamento Indica l'impegno e la complessità nel portare a regime l'utilizzo del prodotto nella propria
organizzazione.
Caratteristiche Hw richieste Mentre un'azienda normalmente dispone di hardware aggiornato, nelle scuole non
sempre è così. Spesso si dispone solo di materiale non recentissimo se non addirittura obsoleto. Comunque,
anche nel caso di scuole con un parco informatico adeguato, può presentarsi l'esigenza per finalità didattiche di
utilizzare hardware di diverso livello. E' opportuno quindi conoscere le risorse minime ed ottimali richieste ed il
livello di servizio che è lecito attendersi.
Difficoltà nell'installazione L'installazione di un sistema operativo è la fase normalmente più difficoltosa, durante la
quale si possono incontrare problemi imprevisti. Le difficoltà incontrate durante i test sono riportate per fornire
informazioni sull'effettiva convenienza nell'adozione di un software, ed indirettamente sulla qualità del servizio
fornito dall'azienda o organizzazione produttrice.
Esistenza, qualità e completezza della documentazione
Nel valutare la qualità di un prodotto è molto importante la presenza e la completezza della documentazione, le diverse
modalità disponibili per la sua fruizione, la sua disponibilità in più lingue e formati, le modalità di reperimento. Tali
informazioni sono inserite nel rapporto.
Possibilità di assistenza on-line
Un prodotto software non può essere inteso solo come fornitura del codice. Molto importante è anche il supporto
successivo all'installazione che può aiutare a superare eventuali problemi o ad ottenere maggiori benefici dal suo
impiego. Ciò è particolarmente vero nel caso di prodotti relativamente poco conosciuti come quelli OpenSource,
per i quali non è ancora diffusa capillarmente una competenza specifica.
14
Distribuzioni Linux
– La distribuzione Slackware, di Patrick Volkerding della Walnut Creek Software, è
l'antenato delle moderne distribuzioni Linux. Offre una procedura d'installazione
abbastanza semplice, ma povera dal punto di vista della gestione dei pacchetti e
degli aggiornamenti. Raccomandata agli utenti più preparati dal punto di vista
tecnico e che hanno già familiarizzato con Linux. Usa il sistema BSD al posto di
System V adottatato da quasi tutte le altre distribuzioni nella fase di Boot.
15
Distribuzioni Linux
– La distribuzione Mandrake, venduta dalla MandrakeSoft S.A., integra le
distribuzioni Red Hat o Debian (a voi la scelta) con pacchetti software non
inclusi nelle distribuzioni originali. Comprende l'utilità "DrakConf" e una
serie di strumenti che permettono una facile gestione e configurazione del
sistema, tra cui la pratica estensione del programma rpm "urpm*". È
considerata una delle più semplici distribuzioni del momento, adatta
anche a sistemi Desktop.
16
Distribuzioni Linux
– La distribuzione S.u.S.E., venduta da S.u.S.E., è anch'essa popolare ed è
la più utilizzata in Europa. Comprende KDE e l'utilità "YaST2" per una
facile gestione dei pacchetti e degli aggiornamenti. È disponibile per
piattaforme Intel e Alpha.
17
Distribuzioni Linux
La distribuzione Debian, di una organizzazione non-profit conosciuta come
"Il progetto Debian", è quella prediletta dalla comunità Open Source.
Fornisce l'utilità "dpkg" per gestire pacchetti e per effettuare aggiornamenti.
È disponibile per piattaforme Intel, Alpha, Sparc e Motorola (Macintosh,
Amiga, Atari).
Debian integra solo programmi rilasciati con licenza GPL o GNU e testati a lungo
(per garantire una sicurezza assoluta),
18
Distribuzioni Linux
La distribuzione Red-Hat, della Red Hat Software, è una delle più
popolari. È possibile installare facilmente Linux sia attraverso una
interfaccia grafica, sia attraverso un'interfaccia testuale. Permette la
gestione dei pacchetti con l'utilità "RPM", e include sia GNOME sia KDE
come interfaccia grafica per il sistema X Window. La distribuzione è
disponibile per piattaforme Intel, Alpha e Sparc.
19
GNU/Linux
Una distribuzione GNU/Linux è una versione del sistema operativo
compilata da una persona o da un’azienda, in modo che la
sua configurazione ed il tipo di software incluso siano adatti alle
esigenze di uno specifico tipo di utenza.
E’ teoricamente possibile realizzare un sistema GNU/Linux funzionante
partendo da zero, tramite le tecniche descritte nel
LFS HowTo (Linux Form Scrath),
ma è molto meglio, appoggiarsi ad una distribuzione esistente.
20
Sistema Operativo
Si intende l’insieme di programmi e librerie che opera
direttamente sulla macchina fisica mascherandone le
caratteristiche specifiche (risorse hw/sw), fornendo agli
utenti un insieme di funzionalità di alto livello
21
Architettura di un Sistema Operativo
Un moderno S.O. è organizzato
secondo una architettura a strati
Ogni strato implementa una macchina
virtuale più potente appoggiandosi
alle funzionalità offerte dallo strato
precedente.
I meccanismi di chiamate tra livelli
possono essere diversi
• chiamate a sottoprogrammi,
• interruzioni sincrone-asincrone,
• invio di messaggi a processi
Programmi utente
Interprete comandi
Interf. graf.(Gui)
Gestore del file system
Gestore delle periferiche
Gestore della memoria
Gestore dei processi (kernel)
Macchina fisica
22
Per kernel si intende il cuore di
un sistema operativo, il codice
Kernel
che gestisce le risorse presenti
sul nostro sistema e le rende
disponibili alle applicazioni.
Si occupa di gestire:
- le comunicazioni con l'hw del
sistema,
- i file system, la memoria,
- l'accesso a queste risorse da
parte dei processi (le applicazioni
che girano sul sistema)...Le
versioni del kernel Linux sono
identificate con numeri dal
significato ben preciso. Per
esempio il kernel 2.4.15
23
Tipi di Kernel
•
Monolitico è 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, MS-DOS, Win 9x(SO Fat-like)
Nei sistemi Dos il kernel si riduce solo ai due file MSDOS.sys e IO.sys
•
Microkernel E' un piccolo nucleo ridotto ai minimi termini che ha il compito di
gestire le comunicazioni fra i gestori di sistema, processi separati eseguiti al di
fuori dal kernel. Esempi di tali sistemi sono BE OS, GNU HURD, MINIX., Win NT,
2000,XP(SO Ntfs)
•
Modulare Per kernel Modulare si intende un' estensione del kernel monolitico,
con la capacità di caricare/scaricare parti di codice (moduli) secondo necessità e
richieste. Può esserlo Linux se lo si definisce in fase di configurazione precompilazione.
Il kernel monolitico è più veloce, poichè tutto il codice è già stato caricato al
bootstrap dell'OS, ma di contro occupa maggiori risorse del sistema.
Un altro punto a favore è la maggiore stabilità: non richiede moduli evitando così
pericolose dipendenze;il kernel modulare è quello utilizzato da tutte le
distribuzioni in fase di installazione di LINUX su una macchina.
24
Anatomia di un Hard-disk
-
Ogni disco ha 2 facce, una
superiore ed una inferiore.
-
Ogni faccia e' divisa in cerchi
concentrici, definiti tracce.
-
Ogni traccia a sua volta e' divisa in
piu' porzioni, che vengono definite
settori.
Le tracce che stanno uno sopra
l'altro formano un cilindro.
-
Ogni settore contiene 512 byte,
I settori sono l'unita' minima
leggibile o scrivibile su disco
Esiste poi un braccetto alla fine dove
c’e' una testina di lettura/scrittura
25
Registrare i dati su un Hard-disk
Un hard disk può registrare dati su
•
cilindri (clusters)
•
tracce (tracks)
•
settori (sectors).
Il cluster (insieme di settori adiacenti)è la
minima unita di memorizzazione logica
dei file
Il settore minima unita di memorizzazione fisica
dei file
L’hw può leggere e scrivere un settore per volta
I file sono contenuti almeno in un cluster
Un settore ha generalmente la capacità di 512 Byte
Le partizioni non sono altro che tracce adiacenti ,
che saranno create in successione partendo
da quella più esterna , con settori allocate su
tutti i piatti del disco.
26
Allocazione contigua di file su disco
….
I file e il disco vengono
suddivisi rispettivamente in
blocchi logici e blocchi fisici.
Il sistema può implementare
diversi modi di allocare il file
all’interno del disco.
Allocazione contigua
Il sistema alloca un file in
blocchi logici contigui. Nella
struttura di directory oltre
all’attributo “nome” viene
memorizzato anche l’indirizzo
fisico del primo blocco (start)
ed il numero dei blocchi allocati
per quel file (size).
27
FAT
II File System FAT
(File Allocation Table), conosciuto anche
comeMsDos, è parte della storia dei
….
sistemi operativi di casa Microsoft, ed è
sempre stato afflitto da molte pecche.
Le versioni iniziali (FAT 12- 16)
supportavano una dimensione limitata
per i dischi fissi( 250 MB e 4 GB) e
utilizzavano solo 11 caratteri per i nomi
dei file: 8 per il nome e 3 per 'estensione.
Inoltre, nei dischi fissi più grandi i cluster
erano di eccessive dimensioni, al punto
da specare molto spazio per
l'archiviazione dei files piccoli.
Mille files da 1kb potevano occupare
anche 16 mb e oltre!
28
FAT
Per allocare un nuovo blocco ad un file
precedentemente allocato il sistema accede alla
FAT
Questa è una tabella utilizzata come lista
….(linked list): la posizione di ogni elemento nella
tabella identifica il cluster di dati corrispondente,
mentre il valore contenuto nell'elemento è
l'indice dell'elemento successivo facente parte
dello stesso file.
Due valori particolari indicano il cluster libero
(FREE) e l'ultimo cluster di ogni file(EOF).
Quando il file viene cancellato i blocchi vengono
segnati come liberi
per una successiva assegnazione. E' evidente
che in questo modo sul disco vengono a crearsi
delle zone occupate inframmezzate da zone
libere via via che si creano e cancellano files
. Questo fenomeno e' detto
appunto "frammentazione".
29
FAT 32 -VFAT
Limitazioni:Poiché gli elementi della FAT sono di lunghezza fissa, pari a 16 bits, non è
….
possibile indirizzare più di 65535 clusters e poiché un cluster non può essere maggiore di
32768 bytes, il filesystem FAT 16 ha un limite massimo superiore di 2 Gbytes per la
dimensione della partizione. La dimensione del cluster (che deve essere un multiplo intero
della dimensione del blocco fisico con moltiplicatore pari ad una potenza di due) viene scelta
pari alla minima dimensione che consenta un numero di cluster non superiore a 65535 ed è
fissata al momento della formattazione.
Quindi, poiché il filesystem non è in grado di gestire la frammentazione di clusters, come
invece avviene nel filesystem di tipo extent ( UNIX) o NTFS ( Microsoft),
all'aumentare della dimensione delle partizioni corrisponde una dimensione del cluster
maggiore e di conseguenza una sempre minore efficienza di uso dello spazio, in quanto
l'ultimo cluster di ogni file è in genere solo parzialmente utilizzato (in media resta inutilizzato
uno spazio pari alla metà della dimensione del cluster per ogni file).
Le due limitazioni citate hanno portato all'introduzione, a partire dalla seconda release del SO
Windows della versione a 32 bit (FAT32) che, consente di definire cluster a 4 Kb e quindi
dischi fino a 1024Gb(2Tb)
mentre l'introduzione del VFAT ha esteso la lunghezza dei nomi a 255 caratteri
30
NTFS
File system di Microsoft montato su Win(NT, 2000, XP) limita la
deframmentazione. Esiste una tabella detta MFT(Master File Table)
contente informazioni su file e directory equivalente alla FAT.
I cluster indirizzati possono essere anche a 64 bit di conseguenze le capactà
del disco crescono
Questo tipo di FS soprattutto, permette la gestione avanzata dei permessi dei
file, ad ogni file è associata un identificatore di sicurezza relativo all’utente
o gruppo proprietario(Access Control List).
La versione presente in Windows XP di NTFS è dotata di un sistema di
journaling.
31
File System EXT
FS adottato dai sistemi UNIX
Tutti i puntatori sono raggruppati in una
sola locazione del disco e formano il
blocco indice (i-node), in questo
modo non bisogna scorrere tutti i
blocchi per realizzare l’accesso diretto
ad un file:
il primo blocco allocato ad ogni file è il
blocco indice e contiene un array in
cui l’elemento i-esimo memorizza
l’indirizzo del blocco fisico a cui
corrisponde il blocco logico del file.
La struttura di directory contiene solo
l’indirizzo del blocco indice,
informazione sufficiente a individuare i
blocchi fisici che compongono il file.
32
File System EXT
Il sistema utilizza più blocchi indice
(tutti della stessa dimensione,1Kb)
collegati tramite puntatori e
costituisce una lista concatenata
di blocchi indice.
L’ultimo elemento di ogni blocco
indice ha un puntatore al
successivo blocco indice.
Tutti gli altri elementi puntano a
blocchi di dati. L’ultimo blocco
indice conterrà nell’ultimo
elemento il valore null.
Per ridurre la frammentazione la dim dei
gruppi di blocchi è configurabile
Comunque sebbene la frammentazione
interna è limitata,e
non c’è frammentazione esterna
l’operazione di defrag è teoricamente
possibile anche in Linux.
33
File System Journaling
I primi FS di Linux tipo Extent (fino a ext2) che utilizzavano kernel precedenti al 2.4
implementavano una tecnica molto lenta per riprendersi da un crash di sistema.
Per effettuare il reboot il sistema impiegava un'enorme quantita' di tempo perché non teneva
traccia delle transazioni correnti. In questo modo non si puo' tornare indietro. Cosi', in caso di
crash, faceva la scansione dell'intero file system prima di permettere la scrittura agli utenti.
La comparsa generalizzata di FS journaled (con giornale), in grado di mantenere un elevatissimo
grado di congruenza fra dati e metadati, è la risposta alle richieste degli utenti di poter
massimizzare la sicurezza di registrazione dei dati anche nelle condizioni piu' critiche, in cui
ad es. non sia sempre garantita una chiusura (shutdown) corretta del sistema operativo.
34
Tipi di File System Journaling
La capacita' di effettuare il journaling dei dati e' una caratteristica considerata ormai indispensabile per
i sistemi mission critical e per quelli destinati a un uso pubblico generalizzato da parte di utenti
non necessariamente accorti, es. sistemi embedded, set top box, ecc.
Tutte le versioni di Unix invece hanno la capacita' di fare un reboot rapido. Riescono ad evitare
la scansione di tutto il file system, leggendo solo il "giornale", un file di dimensioni contenute,
dove vengono riportati tutti i cambiamenti recenti avvenuti nel file system.
Tra i file system journaled oggi disponibili per Linux citiamo :
- IBM JFS Journaling File System
- Reiser FS di Hans Rieserv
- XFS dalla versione IRIX di SGI
- Un file system e un "volume manager" della Veritas Software
- ext3 fs di Stephne Tweedie
- Global File System della SiStina Software
- Tux2 di Dan Philip
Il ReiserFs e il JFS e l’ext3 sono nella versione definitiva, mentre tutti gli altri sono ancora in
fase di sviluppo.
Tutti questi FS hanno in comune il fatto di scrivere ogni operazione di memorizzazione su un file
separato, il giornale
. In questo modo modo si velocizza il riavvio e soprattutto si minimizza il rischio di perdere pezzi di file.
35
JOURNALING
Quando avviene un blocco di sistema durante la copia un file importante in un sistema
Fat-like il file è andato perduto, e poi bisogna aspettare vari minuti la scansione
dell'intero disco al riavvio, perché prima vengono scritti i dati sul disco,poi viene
aggiornato l'indice dei file contenente nome, dimensioni, data e attributi.
Un crash tra la fase di scrittura e quella di indicizzazione porta alla perdita matematica
dei dati scritti, quasi senza possibilità di recupero, e i programmi di ripristino
dovranno impiegare molto tempo, proporzionale inversamente alla potenza del
computer e direttamente alla dimensione del disco, per analizzare l'intera superficie
alla ricerca di errori.
Per ovviare alla perdita di informazioni e alle lunghe attese per la riparazione del fileè
nato il journaling, letteralmente “diario”.
36
JOURNALING
Il funzionamento è tanto semplice quanto intuitivo: una zona del disco contiene
informazioni specifiche e viene chiamata “Journal”, e su di essa si basano le
operazioni di scrittura, che per comodità dividiamo in quattro fasi.
• Fase 1: annotazione PREVENTIVA nel diario delle operazioni pendenti
• Fase 2: scrittura FISICA dei dati
• Fase 3: aggiornamento dell'indice
• Fase 4: cancellazione dal diario delle operazioni completate.
37
JOURNALING
Se il computer si blocca durante una fase di scrittura, si profilano 4 scenari
II blocco avviene durante la prima fase. Al riavvio, il Journal viene controllato per
primo e, non essendo ancora stati scritti dati, viene cancellato qualsiasi riferimento ai files.
Tutto torna a posto, ed è come se il comando di scrittura non fosse mai stato impartito. Il
file è andato perduto, tuttavia ciò sarebbe avvenuto comunque. Si ha però un guadagno
sul tempo impiegato per il ripristino, in questo caso di pochi secondi.
• II blocco si verifica durante la seconda fase. Al riavvio, si legge il Journal e si verifica
cosa sia stato scritto e cosa no. Di conseguenza, si aggiorna l'indice dei file e si toglie il
riferimento dal diario. Si perde ciò che non è ancora stato scritto, senza inutili attese, e si
recupera ciò che effettivamente era stato salvato.
• II blocco avviene nella terza fase. L'unica cosa che deve essere fatta è quella di leggere il
diario e aggiornare l'indice di conseguenza. Il file è interamente salvo e l'operazione
richiede pochi secondi per essere completata.
• II blocco avviene durante l'ultima fase. In questo marginale caso, il Journal viene
cancellato; anche questa operazione richiede pochi secondi.
Nel primo caso si perdono i dati, nel secondo vi è una perdita parziale e negli ultimi due
non si perde nulla: un bel passo in avanti rispetto alla perdita sicura nei sistemi FAT.
38
Prestazioni FS
Tanta sicurezza si paga in termini di prestazioni. I file system con journaling
perdono intorno al 10% e il 15% di performance. Ciò è dovuto al maggior
lavoro sul disco.
Tuttavia,le ultime evoluzioni in materia di FS fanno ben sperare. I maggiori FS
journaling sono Ext3, ReiserFS, JFS e XFS.
39
File System Linux EXT
E’ stato il primo FS che utilizzava un tencica di allocazione di blocchi ad indice ben presto sostituito da
Ext2, “written from scratch” - da zero -prendendo come modello l'UFS. Ext2, oltre ad essere uno dei
file system più veloci oggi disponibili, ha introdotto il supporto per volumi fino a 4 TB e la gestione dei
nomi lunghi eil supporto completo ai file Unix.
Per poter essere compatibile con future versioni, utilizza gli hook (agganci), una sorta di plug-in che
permette di estenderne le funzionalità, preservandone la struttura base. Per questo si è facilmente
sviluppato Ext3, ovvero Ext2 con journaling.
Ext3 è marginalmente penalizzante in termini di prestazioni, dovendosi portare dietro la struttura di Ext2
Sta di fatto che i file system di tipo ext2 o ext3 sono lo standard per la maggior parte delle distribuzioni.
40
File System Linux REISERFS
E’ un file System con journaling sviluppato dal team di Hans Reiser. Lavora usando particolari
metadati associati ai file, cosa che gli permette di recuperare i file dopo eventuali blocchi di
sistema con una velocità e un'affidabilità superiore ad altri file system.
ReiserFS è disponibile in Linux a partire dal kernel 2.4.1 ed è così valido da essere adottato come
default da molte distribuzioni (Slack-ware).
Il suo più grande vantaggio consiste nel non essere legato a tecnologie precedenti.
Per converso, proprio in virtù di questo, per convertire una partizione Ext2, è necessario fare il
backup dei dati, quindi riformattare il tutto nel nuovo formato e ricopiare i dati al suo interno.
Attualmente è in testing il Reiser4, suo successore, riscritto da zero: le sue qualità sono una
maggiore velocità, il supporto “improved” per la gestione di cartelle contenenti numerosi
file, l'ottimizzazione del sistema di journaling, l'integrazione dei metadati all'interno dello
spazio dei nomi dei file, il supporto per i plug-in e molte altre.
41
File System Linux JFS
JFS è un file system di journaling sviluppato da IBM, utilizzato inizialmente per il celebre
OS/2 e poi per AIX, lo Unix di IBM.
Questo sistema è stato “regalato” alla comunità Open Source nel Febbraio 2000, e risulta
integrato in Linux a partire dal kernel 2.4.
Tra le particolarità, spicca il sistema di journaling basato su una tecnica di log concepita
per i database: questo significa che, per riparare la partizione, il sistema legge
soltanto i log più recenti, invece dei metadati di tutti i file.
Altra importante innovazione è l'uso di blocchi a dimensione variabile: ciò influisce
significativamente sul livello di deframmentazione e sulla velocità del disco.
Infine,vengono introdotte l'allocazione dinamica dell'inode, una diversa organizzazione in
base alla grandezza delle directory, e un'allocazione particolare dei file.
42
File System Linux
Non esiste un File System migliore: dipende tutto dall'utilizzo che se ne fa.
Il file System Ext3 è compatibile con il suo predecessore Ext2, e addirittura può essere
trasformato (reversibilmente!) in Ext2 usando il comando tune2fs.
Il formato ReiserFS rappresenta uno standard, con delle ottime caratteristiche e delle
prestazioni molto buone. Reiser4, pur avendo prestazioni eccezionali e migliorie rilevanti, è
ancora troppo poco maturo per poter essere ampiamente supportato.
Tra i due restanti, quello che si fa notare per una maggiore affidabilità e velocità, è
sicuramente XFS, più maturo di JFS.
E' utile osservare come lo sviluppo dei File System si sia reso parallelo a quello dei
database: questa probabilmente è la chiave di sviluppo per il futuro dei FS. La velocità di
ricerca di informazioni, la possibilità di associare a un file diverse viste, in base a qualche
parola chiave o al suo contenuto, rappresentano un obiettivo interessante.
43
Tool per operare con i File System
•
-QTParted – http://qtparted.sourceforge.net
•
-GNU Parted - www.gnu.org/software/parted
•
-DiskDrake - www.mandrakelinux.com/diskdrake
•
Partion Magic
•
System Commander
44
FS APPLE
Per quanto riguarda Apple, essa iniziò utilizzando il file System MFS (Macintosh File
System) fino alla versione 4.1 del Finder, rimpiazzandolo nel 1985 con il celebre HFS
(Hierarchical File System). HFS, pur avendo molte caratteristiche comuni a FAT,
permetteva di usare fino a 31 caratteri per i nomi dei file (contro gli 8+3 del FAT),
supportava i metadati (attributi del file), e introduceva il dual-fork. Il successore, HFS+, è
comparso a metà degli anni '90 (MacOS 8.1), e annovera tra le sue caratteristiche il
supporto per file più grandi, l'uso di Unicode e l'estensione fino a 255 caratteri per i nomi
dei file. Dal 2003, con il Mac OS 10.3, ad HFS+ sono state aggiunte le caratteristiche di
journaling (concetto che svilupperemo nel corso di questo talk). Apple ha deciso di non
cambiare il File System per evitare incompatibilità tra le varie versioni del Mac.
45
Scarica

Distribuzioni Linux