Prima di dare le risposte, è necessario comprendere come funziona il sistema di file:
Ogni volta che un utente o un programma fa riferimento a un file in base al nome, il sistema operativo utilizza tale nome per cercare l'inode corrispondente, che quindi consente al sistema di ottenere le informazioni necessarie sul file per eseguire ulteriori operazioni. Cioè, un nome di file in un sistema operativo simile a Unix è semplicemente una voce in una tabella con numeri di inode, piuttosto che essere associato direttamente a un file (al contrario di altri sistemi operativi come i sistemi Microsoft Windows). I numeri di inode e i loro inode corrispondenti sono contenuti nelle tabelle degli inode, che sono memorizzati in posizioni strategiche in un filesystem, incluso vicino al suo inizio.
La risposta per la prima domanda è che lo spazio in bit copre il totale 32 o 64 bit. semplicemente rende 2^32 ed è abbastanza grande definire tutte queste variabili. Inoltre, per ulteriori usi deve conoscere la dimensione dei bit per le operazioni. Nel tuo esempio hanno appena definito in questo modo.
Secondo ogni puntatore (la dimensione dipende dalla capacità del disco) fa riferimento a un blocco di dati (8 KB su disco, il disco contiene blocchi) ma tenere presente che il file system unix ha una struttura gerarchica. Una tabella che punta su molte altre tabelle e infine l'ultima tabella punta al blocco dati.
ti offro di leggere questo libro, molto utile per capire lo Unix file system.
alt text http://ecx.images-amazon.com/images/I/511L2NK6ZNL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
La ringrazio molto per la risposta dettagliata. Puoi spiegarmi il calcolo: indirizzi a 32 bit il disco può indirizzare fino a 512 * 4 * 10243 = 2 TiB fatto sopra ?? –
@ darkie15: si supponga che ogni indirizzo del disco sia un numero di blocco. Con i numeri a 32 bit, è possibile indirizzare circa 4 miliardi di blocchi diversi; ognuno di questi blocchi è un KiB 1/2, quindi è possibile indirizzare circa 2 trilioni di byte - ovvero 2 TiB. –