X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileintro.tex;h=4bcbd4209fc9e40fbf62d646f2c8a8bbd08152ad;hp=f5c46c69c2b1eb87d217a997d84f8894c5b65c55;hb=b81723c64c1d63b89cd3cec12f2fcccc4a756967;hpb=60e20d29c0515f95b8a171fb33c7214c9bf92021 diff --git a/fileintro.tex b/fileintro.tex index f5c46c6..4bcbd42 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -1,6 +1,6 @@ %% fileintro.tex %% -%% Copyright (C) 2000-2007 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2010 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -91,7 +91,7 @@ oggetto del filesystem, compresa un'altra directory, si ottiene naturalmente un'organizzazione ad albero inserendo nomi di directory in altre directory. Un file può essere indicato rispetto alla directory corrente semplicemente -specificandone il nome\footnote{Il manuale delle \acr{glibc} chiama i nomi +specificandone il nome\footnote{il manuale delle \acr{glibc} chiama i nomi contenuti nelle directory \textsl{componenti} (in inglese \textit{file name components}), noi li chiameremo più semplicemente \textsl{nomi} o \textsl{voci}.} da essa contenuto. All'interno dello stesso albero si @@ -118,16 +118,15 @@ torneremo in sez.~\ref{sec:file_chroot}) equivale alla directory radice dell'albero dei file: in questo caso si parla di un \textsl{pathname assoluto} \itindsub{pathname}{assoluto}. Altrimenti la ricerca parte dalla directory corrente (su cui torneremo in -sez.~\ref{sec:file_work_dir}) ed il pathname è detto \textsl{pathname - relativo} \itindsub{pathname}{relativo}. +sez.~\ref{sec:file_work_dir}) ed il pathname è detto +\itindsub{pathname}{relativo} \textsl{pathname relativo}. -I nomi \file{.} e \file{..} hanno un significato speciale e vengono inseriti -in ogni directory: il primo fa riferimento alla directory corrente e il -secondo alla directory \textsl{genitrice} (o \textit{parent directory}) cioè -la directory che contiene il riferimento alla directory corrente; nel caso la -directory corrente coincida con la directory radice, allora il riferimento è a -se stessa. -\itindend{pathname} +I nomi ``\file{.}'' e ``\file{..}'' hanno un significato speciale e vengono +inseriti in ogni directory: il primo fa riferimento alla directory corrente e +il secondo alla directory \textsl{genitrice} (o \textit{parent directory}) +cioè la directory che contiene il riferimento alla directory corrente; nel +caso la directory corrente coincida con la directory radice, allora il +riferimento è a se stessa. \itindend{pathname} \subsection{I tipi di file} @@ -318,6 +317,9 @@ Linux, l'\acr{ext2} (e derivati). \subsection{Il \textit{Virtual File System} di Linux} \label{sec:file_vfs} +% articolo interessante: +% http://www.ibm.com/developerworks/linux/library/l-virtual-filesystem-switch/index.html?ca=dgr-lnxw97Linux-VFSdth-LXdW&S_TACT=105AGX59&S_CMP=GRlnxw97 + \itindbeg{Virtual~File~System} In Linux il concetto di \textit{everything is a file} è stato implementato @@ -589,21 +591,33 @@ di \index{inode} inode. La nuova directory avrà allora un numero di riferimenti pari a due, in quanto è referenziata dalla directory da cui si era partiti (in cui è inserita la -nuova voce che fa riferimento a \file{img}) e dalla voce \file{.} -che è sempre inserita in ogni directory; questo vale sempre per ogni directory -che non contenga a sua volta altre directory. Al contempo, la directory da -cui si era partiti avrà un numero di riferimenti di almeno tre, in quanto -adesso sarà referenziata anche dalla voce \file{..} di \file{img}. +nuova voce che fa riferimento a \texttt{img}) e dalla voce ``\texttt{.}'' che +è sempre inserita in ogni directory; questo vale sempre per ogni directory che +non contenga a sua volta altre directory. Al contempo, la directory da cui si +era partiti avrà un numero di riferimenti di almeno tre, in quanto adesso sarà +referenziata anche dalla voce ``\texttt{..}'' di \texttt{img}. + +% TODO portare a ext3, ext4 e btrfs ed illustrare le problematiche che si +% possono incontrare (in particolare quelle relative alla perdita di contenuti +% in caso di crash del sistema) -\subsection{Il filesystem \textsl{ext2}} +\subsection{I filesystem di uso comune} \label{sec:file_ext2} -Il filesystem standard usato da Linux è il cosiddetto \textit{second extended - filesystem}, identificato dalla sigla \acr{ext2}. Esso supporta tutte le -caratteristiche di un filesystem standard Unix, è in grado di gestire nomi di -file lunghi (256 caratteri, estensibili a 1012) con una dimensione massima di -4~Tb. +Il filesystem standard più usato con Linux è il cosiddetto \textit{third + extended filesystem}, identificato dalla sigla \acr{ext3}. Esso nasce come +evoluzione del precedente \textit{second extended filesystem}, o \acr{ext2}, +di cui eredita gran parte delle caratteristiche di base, per questo motivo +parleremo anzitutto di questo, dato che molto di quanto diremo si applica +anche ad \acr{ext3}. + + +Il filesystem \acr{ext2} nasce come filesystem nativo di Linux a partire dalle +prime versioni del kernel e supporta tutte le caratteristiche di un +filesystem standard Unix; è in grado di gestire nomi di file lunghi (256 +caratteri, estensibili a 1012) e supporta una dimensione massima dei file fino +a 4~Tb. Oltre alle caratteristiche standard, \acr{ext2} fornisce alcune estensioni che non sono presenti sugli altri filesystem Unix. Le principali sono le seguenti: @@ -679,7 +693,7 @@ caratteri) senza sprecare spazio disco. % LocalWords: l'inode lookup ops read write llseek ioctl readdir poll nell'I % LocalWords: multiplexing mmap fsync fasync seek MacOs group dall' dell' img % LocalWords: count unlink nell' rename gapil second Tb attributes BSD SVr gid -% LocalWords: sgid append only log fs linux extented linked list +% LocalWords: sgid append only log fs linux extented linked list third %%% Local Variables: