1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione...

45
1 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)

Transcript of 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione...

Page 1: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

1

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)

Page 2: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

2

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).

Page 3: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

3

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

Page 4: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

4

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.

Page 5: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

5

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

Page 6: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

6

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.

Page 7: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

7

Sistemi Unix-like

Caratteristiche fondamentali:

• Separazione fra grafica e sistema

• Multi-utenza ed isolamento (Sicurezza)

• Scalabilità ed integrabilità

Page 8: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

8

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

Page 9: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

9

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

Page 10: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

10

Linux vs WindowsLa 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à

Page 11: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

11

Documentazione Linux

http://www.google.it/linux http://www.linux.orghttp://www.pluto.it

• Appunti di Informatica Libera• The Linux Documentation Project• Da Windows a Linux• Man pages

Page 12: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

12

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

Page 13: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

13

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

Page 14: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

14

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.

Page 15: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

15

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.

Page 16: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

16

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.

Page 17: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

17

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.

Page 18: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

18

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),

Page 19: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

19

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.

Page 20: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

20

GNU/Linux

Una distribuzione GNU/Linux è una versione del sistema operativocompilata da una persona o da un’azienda, in modo che lasua configurazione ed il tipo di software incluso siano adatti alleesigenze di uno specifico tipo di utenza.E’ teoricamente possibile realizzare un sistema GNU/Linux funzionantepartendo da zero, tramite le tecniche descritte nel LFS HowTo (Linux Form Scrath), ma è molto meglio, appoggiarsi ad una distribuzione esistente.

Page 21: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

21

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

Page 22: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

22

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 comandiInterf. graf.(Gui)

Gestore del file system

Gestore delle periferiche

Gestore della memoria

Gestore dei processi (kernelkernel)

Macchina fisica

Page 23: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

23

Kernel Per kernel si intende il cuore di

un sistema operativo, il codice

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

Page 24: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

24

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 pre-

compilazione.

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.

Page 25: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

25

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

Page 26: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

26

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.

Page 27: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

27

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 contiguaIl 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).

Page 28: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

28

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!

Page 29: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

29

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 liberiper 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".

Page 30: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

30

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

Page 31: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

31

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.

Page 32: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

32

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.

Page 33: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

33

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 esternal’operazione di defrag è teoricamente

possibile anche in Linux.

Page 34: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

34

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.

Page 35: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

35

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 PhilipIl 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.

Page 36: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

36

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”.

Page 37: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

37

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.

Page 38: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

38

JOURNALING

Se il computer si blocca durante una fase di scrittura, si profilano 4 scenariII 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.

Page 39: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

39

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.

Page 40: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

40

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.

Page 41: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

41

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 unamaggiore velocità, il supporto “improved” per la gestione di cartelle contenenti numerosifile, l'ottimizzazione del sistema di journaling, l'integrazione dei metadati all'interno dellospazio dei nomi dei file, il supporto per i plug-in e molte altre.

Page 42: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

42

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.

Page 43: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

43

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.

Page 44: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

44

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

Page 45: 1 Lez.1 Introduzione al SO Linux Filosofia di Linux Il modello open source Ricerca Documentazione Scelta tra le varie Distribuzioni Linux. Sistemi operativi.

45

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.