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