[Tech] File System Ext2

Simone Piccardi piccardi@firenze.linux.it
Gio 14 Mar 2002 13:57:57 CET


On Thu, 2002-03-14 at 13:25, St0rM wrote:
> INTERESSANTISSIMO thread, grazie a chi l'ha iniziato e a chi "ci
> insegna" =)
> 
> > modificare lo stesso file, che si chiami pippo.txt o paperino.txt (ed
> > implicitamente modifica pluto.txt che punta allo stesso inode).
> 
> Questo mi rimane poco chiaro, il resto e' tutto perfetto e limpido. Ma,
> nello specifico, cosa vuol dire che IMPLICITAMENTE modifico anche il
> file pluto.txt? 
Vuol dire che stai scrivendo sullo stesso pezzo di disco. E` come per i
puntatori in memoria se hai due puntatori alla stessa zona di memoria
scrivi sulla stessa zona di memoria anche se la indirizzi da due parti
diverse. Se apri due volte lo stesso file (append mode a parte) scrivi
(nel caso  di due processi concorrente sovrascrivi) sugli stessi dati.

Il discorso e` piu` complicato e nella spiegazione c'e` un'ambiguita` di
fondo, infatti ci sono gli inode come strutture dati del filesystem (che
contengono i riferimenti di cui sopra piu` i puntatori ai settori dove
sta il "corpo" del file, e le strutture inode usate dal kernel (stanno
nella struttur file della file table) che stanno in memoria.

E per quest'ultime non vale affatto la corrispondenza 1:1 coi file (dato
che possono riferirsi a pipe o socket che non sono su un filesystem).

>
> A naso lo capisco, vorrei capire nello specifico. Vuole forse dire che,
> riscrivendo TUTTO l'inode io riscrivo (senza modifiche pero) anche la
> parte che "punta" a pluto.txt? O cos'altro?
No, tu l'inode non lo tocchi (tempi di ultima modifica e accesso a
parte), tu scrivi sul file, a partire dalla tua posizione corrente (che
e`, duplicazioni e file ereditati dopo una fork a parte, locale a
ciascun processo) sullo stesso spazio disco che e` indirizzato
all'inode.

Il che vuol dire che con due processi che scrivono sullo stesso file
(append mode escluso) puoi fare dei discreti casini (e di sicuro mescoli
l'output).

La faccenda e` abbastanza complessa, di nuovo mi faccio pubblicita` e
consiglio la lettura (e la segnalazione di eventuali bufale) del
capitolo 6 di gapil, dove tutta questa faccenda e` spiegata, spero, per
bene (se non altro ci sono delle figurine che dovrebbero chiarire le
cose). 

Ciao
Simone
-- 
Cio' che contraddistingue l'uomo e' la capacita' di farsi domande,
cio' che contraddistingue il saggio e' il non accontentarsi delle
risposte.





Maggiori informazioni sulla lista flug-tech