Inode: differenze tra le versioni

1 801 byte aggiunti ,  15 nov 2008
Nessun oggetto della modifica
Riga 135: Riga 135:


Se confrontate i primi campi del superblock e i dati contenuti su disco potrete ritrovare molte cose stampate quando abbiamo creato il minix fs .
Se confrontate i primi campi del superblock e i dati contenuti su disco potrete ritrovare molte cose stampate quando abbiamo creato il minix fs .
Se ora andiamo a vedere il blocco 5 possiamo vedere la tabella delle entry nel fs . Per comprenderene i campi fate riferimento alla struttura presentata nel paragrafo precedente (struct d_inode).
<pre>
$ ls -la /mnt/data/
  total 2
  drwxr-xr-x 2 root root  64 Nov 15 12:31 .
  drwxr-xr-x 5 root root 1024 Sep 28 15:16 ..
$ hexdump minixfs -C  -n 1024 -s 0x1000
  00001000  ed 41 00 00 40 00 00 00  83 15 1f 49 00 02 05 00  |.A..@......I....|
  00001010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
  *
  00001400
</pre>
i primi due byte 41 ed (su macchine Intel) identificano i permessi di accesso, Gli altri due byte l'uid, mentre gli altri 4 la dimensione (00 00 00 40) che infatti in decimale 0x40 è 64 . Gli altri byte identificano l'ora (49 1f 15 83), il gid (notare che a differenza dell'uid occupa un solo byte), un contatore del numero dei link che utilizzano questo inode entry ? (in questo caso 02) e da qui una serie di byte che ci dicono quali blocchi occupano i dati di questo inode, in questo caso essendo "." la dir corrente indica il primo blocco disponibile che e' il numero 5 .
<pre>
$ hexdump minixfs -C  -n 1024 -s 0x1400
00001400  01 00 2e 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001410  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001420  01 00 2e 2e 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001430  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001440  00 00 2e 62 61 64 62 6c  6f 63 6b 73 00 00 00 00  |...badblocks....|
00001450  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001800
</pre>
Questo e' il contenuto dei dati dove l'inode di "." punta .
Vediamo cosa succede quando creiamo un file .
<pre>
</pre>


=== Gli inode ai giorni nostri ===
=== Gli inode ai giorni nostri ===


Come acennato prima all'inizio di questa guida, gli inode oggi si trovano a livello di astrazione del VFS (fate riferimento alla mappa del kernel), guardando nel codice di un kernel moderno, ovviamente saranno un po' più complicati e dipendono anche dal tipo di fs che il vostro kernel supporterà in fase di configurazione .
Come acennato prima all'inizio di questa guida, gli inode oggi si trovano a livello di astrazione del VFS (fate riferimento alla mappa del kernel), guardando nel codice di un kernel moderno, ovviamente saranno un po' più complicati e dipendono anche dal tipo di fs che il vostro kernel supporterà in fase di configurazione .
7

contributi