Antes de dar las respuestas, usted debe entender cómo funciona el sistema de archivos:
Cada vez que un usuario o un programa hace referencia a un archivo por su nombre, el sistema operativo utiliza ese nombre para buscar el i-nodo correspondiente, el cual luego permite que el sistema obtenga la información que necesita sobre el archivo para realizar más operaciones. Es decir, un nombre de archivo en un sistema operativo tipo Unix es simplemente una entrada en una tabla con números de inodo, en lugar de asociarse directamente con un archivo (a diferencia de otros sistemas operativos, como los sistemas Microsoft Windows). Los números de inodo y sus inodos correspondientes se guardan en tablas de inode, que se almacenan en ubicaciones estratégicas en un sistema de archivos, incluso cerca de su comienzo.
La respuesta a la primera pregunta es que el espacio de bits cubre el total de 32 o 64 bits. simplemente hace 2^32 y es lo suficientemente grande como para definir todas estas variables. También, para usos posteriores, tiene que saber el tamaño de los bits para las operaciones. En su ejemplo, simplemente definieron de esa manera.
En segundo lugar, cada puntero (el tamaño depende de la capacidad de su disco) hace referencia a un bloque de datos (8 KB en el disco, el disco tiene bloques) pero tenga en cuenta que el sistema de archivos Unix tiene una estructura jerárquica. Una tabla que señala muchas otras tablas y finalmente la última tabla apunta al bloque de datos.
Te ofrezco revisar este libro, muy útil para entender el 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
Muchas gracias por la respuesta detallada. ¿Puede por favor explicarme el cálculo: direcciones de 32 bits que el disco puede tratar hasta 512 * 4 * 10243 = 2 TiB hecho arriba? –
@ darkie15: suponga que cada dirección de disco es un número de bloque. Con números de 32 bits, puede abordar aproximadamente 4 mil millones de bloques diferentes; cada uno de esos bloques es un 1/2 KiB, por lo que puede abordar aproximadamente 2 billones de bytes, también conocido como 2 TiB. –