Formattazione
In
informatica la parola formattazione indica la standardizazione delle
informazioni in un determinato formato e disposizione, ed è usata in
contesti ben distinti con signiicati ben distinti.
Formattazione dei supporti di memorizzazione
In informatica
la formattazione è l'operazione tramite la quale si prepara per
l'uso un supporto di memorizzazione di massa, come ad esempio un disco fisso,
impostando la struttura del file system. L'operazione consiste nel dividere la
capacità del disco in una serie di blocchi di uguali dimensioni e
fornire una struttura in cui verranno scritte le informazioni che permetteranno
l'accesso ai dati desiderati.
Applicazione
Sono
interessati a tale operazione tutti i supporti di archiviazione. Nel caso degli
hard disk la formattazione deve essere preceduta dal partizionamento ovvero da
un'operazione che permette di dividere lo spazio disponibile in una o
più sezioni ognuna delle quali verrà gestita come un disco
separato. Nel caso dei supporti ottici come i CD-R e i DVD scrivibili la
registrazione dei dati avviene in genere per mezzo di appositi programmi di
masterizzazione i quali creano la struttura di gestione contestualmente
all'operazione di registrazione.
La
formattazione deve essere sempre effettuata prima dell'utilizzo dei supporti di
memoria. Normalmente i floppy disk e le chiavi USB vengono forniti
preformattati dal produttore. In ogni caso è possibile effettuare
nuovamente l'operazione di formattazione quando si desidera riutilizzare un
supporto, perdendo i dati presenti sullo stesso.
Motivi
Uno dei
casi in cui si ricorre alla riformattazione di un disco quando è
necessario reinstallare il sistema operativo di un computer a seguito di
malfunzionamenti causati da malware o da problemi software che hanno danneggiato
il sistema operativo. In questo caso, dopo aver effettuato una copia di backup
dei dati si procede alla formattazione per disporre di una struttura di
memorizzazione sicuramente integra sulla quale installare il sistema operativo.
Livelli di formattazione
Esistono
due livelli di formattazione detti formattazione a basso livello e
formattazione ad alto livello.
Formattazione a basso livello
Attualmente
interessa unicamente i floppy disk e consiste nel memorizzare sulla superficie
degli stessi una serie di informazioni che permettono di dividerla in blocchi
di uguale capacità identificabili univocamente e la cui integrità
è verificabile attraverso una somma di controllo.
Fino agli
anni ottanta una operazione analoga veniva effettuata dagli utenti anche sugli
hard disk in quanto le imprecisioni del sistema di controllo delle testine a
mezzo motore passo-passo, sensibile per esempio all'orientamento
dell'unità, e l'algoritmo MFM usato per memorizzare i dati lo
richiedevano.
L'avvento
del sistema RLL e del posizionamento delle testine col sistema voice-coil hanno
reso obsoleta tale pratica. Negli hard disk prodotti a partire dagli anni
novanta tale operazione viene nella pratica effettuata quasi esclusivamente dal
produttore.
Attualmente
viene chiamata erroneamente formattazione a basso livello un'operazione di
reinizializzazione del disco, possibile con apposite utility fornite dal
produttore del disco stesso che consiste nel controllo di tutta la superficie
del disco azzerandone il contenuto. In seguito a tale operazione i dati
presenti sul disco non sono più recuperabili.
Formattazione ad alto livello
Consiste
nella memorizzazione sul supporto delle strutture del file system ed
eventualmente del master boot record. Questa operazione non cancella i
file dal disco limitandosi a riscrivere la struttura che ne permette la normale
gestione. Fino a che non vengono sovrascritti da nuovi file è possibile
recuperare il contenuto dei file precedenti alla formattazione per mezzo di
appositi programmi. I dati presenti sul disco saranno semplicemente ignorati e
sovrascritti dal computer ma rimarranno, almeno parzialmente, recuperabili con
appositi software. Per avere la certezza che i dati registrabili non siano
più recuperabili bisogna ricorrere ad apposite tecniche di riscrittura
dell'intera capacità del disco oppure alla distruzione fisica dello
stesso.
I programmi
di formattazione permettono contestualmente di fare un controllo dell'intera
superficie del disco per verificare la presenza di eventuali difetti. Questa
operazione può richiedere anche molte ore nel caso di un disco rigido di
grande capacità ed è superata dalla capacità del firmware
degli hard disk attualmente in commercio di identificare e isolare
automaticamente eventuali blocchi difettosi. Analogamente alla
reinizializzazione tale operazione rende i dati precedentemente presenti sul
disco non più recuperabili.
File system
In informatica,
un file system è, informalmente, un meccanismo con il quale i file
sono immagazzinati e organizzati su un dispositivo di archiviazione, come un disco
rigido o un CD-ROM. Più formalmente, un file system è l'insieme
dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione
gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati.
Di fatto, alcuni file system (come NFS) non interagiscono direttamente con i
dispositivi di archiviazione.
I file
system possono essere rappresentati sia testualmente che graficamente tramite browser
di file e shell. Nella rappresentazione grafica (GUI) è generalmente
utilizzata la metafora delle cartelle che contengono documenti (i file)
ed altre cartelle.
Caratteristiche e storia dei file system
Un file
system è parte integrante di qualsiasi sistema operativo moderno.
L'unico vero compito dei sistemi operativi dei primi microcomputer era proprio
la gestione dei file - un fatto che si riflette nei loro nomi (vedi DOS o QDOS).
I
dispositivi di archiviazione, ad esempio i dischi fissi si presentano al
sistema operativo come array di blocchi di dimensione fissa, generalmente
chiamati settori, tipicamente di 512 byte l'uno. Le operazioni
disponibili sono la lettura e la scrittura di un blocco arbitrario, o talvolta
di un insieme di blocchi.
Basandosi
su questo servizio fornito dai dispositivi a blocchi, il file system realizza
due livelli di astrazione, che rendono le risorse di memorizzazione di massa
facilmente utilizzabili dagli utenti.
Dal dispositivo a blocchi alla raccolta di file di
dimensione arbitraria
Il primo
livello di astrazione è quello che organizza i settori in un insieme di
archivi (file) di dimensioni arbitrarie, che possono andare da zero all'intera
dimensione disponibile del dispositivo. Ciascun file viene distribuito in un
insieme di settori. Normalmente, l'utente vede solo un file, e non deve
preoccuparsi di quali settori sono utilizzati per memorizzarlo. Le operazioni
disponibili sono la lettura o la scrittura di un blocco di dati di dimensione
arbitraria in un punto arbitrario del file. Il software di gestione del file
system è responsabile dell'organizzazione di questi settori in file e di
tenere traccia di quali settori appartengono a quali file, e quali invece non
sono utilizzati. L'utente ha normalmente la totale libertà di creare
nuovi file, cancellare file esistenti (liberando così i blocchi che
questi occupavano), modificare file esistenti (cambiando così anche la
loro dimensione, e quindi il numero di blocchi occupati).
Non tutti i
file system hanno bisogno di un dispositivo di archiviazione. Un file system
può infatti essere usato per organizzare e rappresentare qualsiasi tipo
di dato, sia che sia memorizzato o generato dinamicamente (ad esempio, da una
connessione di rete).
Nomi gerarchici dei file
Il secondo
livello di astrazione è quello che permette di organizzare i file dando
loro dei nomi gerarchici.
I file
system tipicamente hanno tabelle che associano i nomi dei file con i
file tramite collegamenti fisici, usualmente collegando il nome del file a un
indice in una tabella di allocazione dei file (file allocation table)
di qualche genere, come la FAT di un file system MS-DOS, o un inode in un file
system di tipo Unix. Le strutture di cartelle possono essere ad un solo
livello, oppure possono permettere una struttura gerarchica in cui delle
cartelle possono contenere sottocartelle. In alcuni file system i nomi dei file
sono strutturati con una speciale sintassi (per esempio estensioni o numeri di
versione).
I file
system gerarchici sono stati uno dei primi interessi di ricerca di Dennis
Ritchie, uno dei padri fondatori di Unix; le implementazioni precedenti erano
ristrette a pochi livelli.
Controllo d'accesso
Il file
system viene inoltre utilizzato per memorizzare i dati che servono a
controllare l'accesso a ciascun file da parte dei processi.
I criteri
di sicurezza nell'accesso alle operazioni sui file system sono in genere basati
su liste di controllo di accesso (access control list o ACL) o capabilities.
Si è scoperta da qualche decina di anni l'inaffidabilità delle
ACL, e per questo motivo i sistemi operativi moderni tendono a usare il
meccanismo delle capabilities. I file system commerciali usano ancora le ACL.
Una ACL
permette di definire per ciascun elemento del file system di quali permessi
(lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al
sistema.
Funzionalità particolari
I file
system tradizionali offrono degli strumenti per creare, muovere ed eliminare
sia i file che le cartelle, ma non permettono di creare collegamenti
addizionali alle cartelle (gli hard links di Unix ed NTFS), o di rinominare i
collegamenti padre (".." nei sistemi Unix o DOS/Windows), e di creare
collegamenti bidirezionali fra i file. Questi file system tradizionali hanno
anche dei metodi per creare, muovere, cancellare e troncare i file, e per
sostituire o aggiungervi in coda alcuni dati. Invece non permettono di
aggiungere dati o troncare in testa un file, impedendo l'inserzione o la
cancellazione arbitraria di dati. Le operazioni possibili sono quindi molto
asimmetriche e spesso risultano inefficienti in contesti particolari.
Principali file system
Nel corso
della storia informatica, è stata ideata una miriade di file system. I
sistemi operativi moderni sono spesso in grado di accedere a diversi file
system, spesso semplicemente installando un apposito modulo o driver.
I tipi di
file system possono essere classificati in file system per dischi, file
system di rete e file system per compiti speciali.
Nel gergo
comune si è soliti affermare, soprattutto in sistemi GNU/Linux, che il
file system viene montato, per consentire al sistema operativo di
accedervi per le operazioni di lettura\scrittura.
File system del disco
Un file
system del disco è un file system progettato per memorizzare dei file su
un'unità a disco, che può essere collegata direttamente o
indirettamente al computer.
Esempi di
file system del disco sono:
Amiga
FileSystems - OFS, FFS1 e 2, International, PFS, SFS usati su Amiga
BFS (Beos File System) - file system nativo di BeOS
DFS, ADFS -
file system della Acorn
EFS (IRIX)
- un vecchio file system a blocchi usato su IRIX per unità di memoria di
massa rimovibili (DAT, CD-ROM...) precedente all'introduzione di ISO 9660
Ext - Extended
file system, il primo file system appositamente progettato per GNU/Linux
Ext2 -
Extended File System 2, diffuso su sistemi GNU/Linux
Ext3 - Extended
File System 3, diffuso su sistemi GNU/Linux (ext2+journaling)
Ext4 -
Extended File System 4, rilasciato come stabile dal kernel Linux 2.6.28
(già presente dalla versione 2.6.19 come ext4dev)
FAT - Usato
su DOS, Microsoft Windows e su molti dispositivi dedicati, dispone di tabelle a
12 e 16 bit
FAT32 -
versione con tabelle a 32 bit di FAT
ExFAT -
conosciuto anche come FAT64, creato da Microsoft e pensato appositamente per memorie
flash
FFS - Fast
File System, usato in vecchi sistemi BSD
HFS -
Hierarchal File System, usato su Mac OS
HFS+ -
Hierarchal File System Plus, usato su Mac OS a partire dalla versione 8.1 e su Mac
OS X
HPFS - High
Performance File System, usato su OS/2
ISO 9660 -
Usato su dischi CD-ROM e DVD-ROM (anche con estensioni Rock Ridge e Joliet)
Journaled File System (JFS) - disponibile su sistemi
GNU/Linux, OS/2, e AIX
LFS - Log-structured File System
Minix -
Usato su sistemi Minix
NTFS - NT
File System. Usato su sistemi basati su Windows NT
NWFS - NetWare File System. Usato da Novell NetWare
ReiserFS - File system journaling diffuso su sistemi
GNU/Linux
Reiser4 - File system journaling successore del ReiserFS
diffuso su sistemi GNU/Linux.
UDF - File
system a pacchetti usato su supporti WORM/RW, CD-RW e DVD
UFS - Unix
File System, usato su vecchi sistemi BSD
UFS2 - Unix
File System, usato su nuovi sistemi BSD
UMSDOS -
File system FAT esteso con permessi e metadata, usato su GNU/Linux
XFS -
eXtended FileSystem: 64 bit in addressing con possibilità di partizione
unica di 9 milioni di TB utilizzato su IRIX. Tale filesystem è indicato
per unità non rimovibili (HDD...).
ZFS -
Creato dalla Sun Microsystems
Btrfs -
Creato dalla Oracle Corporation
File system distribuito
Un file
system distribuito permette di accedere ai file contenuti su un computer remoto
tramite rete, potenzialmente in simultanea da diversi computer.
Esempi di
file system di rete sono:
AFS (Andrew File System)
AppleShare
CIFS
(conosciuto anche come SMB o Samba)
Coda
Global File
System (GFS)
InterMezzo
Lustre
MagmaFS
NFS
9P
File system per compiti speciali
Alcuni file
system vengono utlizzati per compiti speciali che non rientrano direttamente
nelle prime due categorie. Molti non hanno alcuna relazione con un supporto di
memorizzazione permanente dei dati, ma vengono utilizzati dal sistema operativo
per dare accesso ad alcune funzionalità. Alcuni esempi sono:
archfs
(archivi)
cdfs
(lettura e scrittura di CD)
incdfs
(lettura e scrittura di CD o DVD riscrivibili come se fossero floppy, usato nel
software Nero)
cfs
(caching)
DEVFS (solaris,
GNU/Linux, crea dinamicamente i file speciali per dare accesso alle periferiche
effettivamente installate)
ftpfs
(accesso FTP)
lnfs (nomi
lunghi)
nntpfs
(netnews)
PROCFS (GNU/Linux
e altri, mostra dati sullo stato del sistema e dei processi)
ROMFS (file
system utilizzato nei sistemi uClinux)
TMPFS (file
system temporaneo appoggiato sulla memoria di sistema)
SYSFS (GNU/Linux
2.6, sostituisce in parte PROCFS)
wikifs (wiki
wiki)
Codici ASCII
La tabella ASCII è
un codice convenzionale usato per la rappresentazione dei caratteri di testo
attraverso i byte: ad ogni byte viene fatto corrispondere un diverso carattere
della tastiera (lettere, numeri, segni). In realtà lo standard ASCII copre solo i primi 128 byte (da
Nella tabella ASCII standard si trovano le cifre numeriche, le lettere maiuscole e minuscole (maiuscole e minuscole hanno codici ASCII differenti) la punteggiatura, i simboli aritmetici e altri simboli ($, &, %, @, #, ecc.). Essendo stata concepita in America, la tabella ASCII standard non comprende le lettere accentate (sconosciute all'ortografia inglese).
I primi 32 byte della tabella standard sono inoltre riservati per segnali di controllo e funzioni varie.
L'alfabeto latino, usato nella scrittura di molte lingue nel mondo, presenta una grande quantità di varianti grafiche: si va dalle semplici vocali accentate (accento grave à, acuto á, circonflesso â, dieresi ä, tilde ã) a lettere modificate (lettere con barrette, cediglie, segni), lettere speciali usate solo in una lingua, segni di punteggiatura particolari (il punto interrogativo ed il punto esclamativo capovolti usati nello spagnolo), simboli di valuta, e così via, senza considerare poi che gran parte di questi segni presentano le due forme maiuscola e minuscola.
Le varianti sono talmente numerose che i 128 byte della tabella estesa non sono purtroppo sufficienti a rappresentarle tutte, per questo motivo esistono diverse estensioni della tabella ASCII: lo standard ISO 8859 prevede 15 diverse estensioni, comprese quelle per gli alfabeti diversi dal latino, ma esistono anche ulteriori estensioni non riconosciute dall'ISO e create per esempio dalla Microsoft per i sistemi Windows o dalla Apple per i Macintosh. Persino l'MS-DOS usava un'estensione diversa da quella di Windows.
La tabella ASCII estesa tipicamente utilizzata in Italia è quella dell'Europa occidentale, creata per le lingue germaniche e neolatine (escluso il rumeno). Altre estensioni usate in Europa sono la Centro Europea per i paesi dell'Europa orientale (lingue slave, ungherese, rumeno), la Turca, la Cirillica e la Greca.
Questa coesistenza fra diverse versioni del codice ASCII produce spesso discordanze nella visualizzazione dei file di testo. Sarà capitato a molti di aprire un file di testo o ricevere una E-mail e trovare segni assurdi al posto di tutte le lettere accentate, questo perché chi l'ha scritto stava usando una tabella estesa diversa dalla vostra e quindi il vostro computer interpreta alcuni byte del file in modo diverso.
Certi tipi di file, come i file html, possono contenere al loro interno il nome esplicito dell'estensione ASCII usata per la loro creazione, così il computer ricevente saprà come regolarsi.
Per cercare di ovviare al problema è stato creato un nuovo standard internazionale detto Unicode, definito dalla Unicode Consortium e dalla International Organization for Standardization (ISO 10646), che rappresenta i caratteri usando 2 byte (16 bit).
Con 2 byte il numero di combinazioni possibili diventa 256x256 = 65.536, perciò Unicode supporta 65.536 diversi segni, al posto dei 256 del set ASCII. Si riescono così a rappresentare non solo tutte le varianti dell'alfabeto latino, ma anche tutti gli altri alfabeti (greco, cirillico, arabo, ebraico, hindi, thai, ...) oltre all'insieme degli ideogrammi cinesi e giapponesi (che sono in tutto circa 30.000, anche se poi ne vengono effettivamente utilizzati solo poche migliaia). Lo standard definitivo è ancora in corso di definizione, ma i codici disponibili sono così numerosi, che pare verranno inseriti in Unicode persino gli alfabeti di fantasia come l'Elfico di Tolkien o il Klingon di Star Trek.
Lo svantaggio dell'Unicode, rispetto all'ASCII, è che le dimensioni dei file di testo risultano comunque raddoppiate (vengono usati 2 byte per carattere, invece di 1 solo).
Tabella ASCII standard
I Byte da per esempio la chiocciola @ si ottiene digitando 64 mentre si tiene premuto il tasto Alt.
Nella tastiera inglese sono già presenti tutti i caratteri della tabella standard; nella tastiera italiana invece mancano l'apice (96), le parentesi graffe (123,125) e la tilde (126).
Tabella ASCII estesa
La tabella riportata di
seguito è quella usata da Windows98 italiano; già la versione inglese di
Windows usa tabella diversa. I caratteri si ottengono tenendo premuto il tasto Alt
e digitando col tastierino numerico il codice decimale corrispondente
(se il tastierino numerico non fosse attivo, premere il tasto Num lock o
Bloc Num per attivarlo). per esempio la ß (doppia "s" tedesca) si ottiene digitando 225 mentre si tiene premuto il tasto Alt.
Sulla tastiera italiana sono comunque già disponibili alcune delle lettere accentate (ma non le lettere accentate maiuscole).
Si osservi come nella tabella estesa si trovino ripetuti più volte alcuni segni (per esempio: + - _ ) che peraltro sono pure compresi nella tabella standard. Si tratta in effetti di Byte non definiti a cui è stato assegnato un simbolo più o meno a caso.
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.