Hola :) El Lunes, 11 de Diciembre de 2006 19:31, Carlos E. R. escribió:
El 2006-12-11 a las 17:07 +0100, Rafa Grimán escribió:
Un directorio realmente es un fichero que contiene la relación entre i-node_number y nombre_de_fichero.
En windows no hay inodos ;-)
Vaaaaale 0:) Como se llame en MS-Windows, la idea es la misma, los nombres no ;)
No es sólo un nombre, el concepto es distinto.
Pero no mucho.
En los sistemas de ficheros con inodos (a ver si no me equivoco) cada nombre de fichero tiene asociado un espacio en disco llamado inodo, que me parece tiene un lugar físico fijo desde el formateo.
En reiserfs y XFS no se define durante el formateo. El número de i-nodos no es fijo, es modificable. En el caso de XFS se hace mediante allocation groups, si no me equivoco ... creo que ese es el nombre.
En ese inodo se listan consecutivamente todos los bloques del disco (bueno, partición) que se adjudican al fichero.
El número máximo de ficheros en la partición viene limitado por el número de inodos creados al formatear, y el tamaño de cada fichero por el tamaño de cada inodo.
En el caso de reiserfs y XFS no está limitado el número de ficheros, ni de i-nodos, puedes crear i-nodos "on-line". La idea de 1 i-nodo - 1 fichero sí es correcto. El tamaño del fichero no depende del i-nodo. El i-nodo es un bloque que contiene información sobre el fichero, pero no limita su tamaño. Es más, en el caso de reiserfs, si el fichero es lo suficientemente pequeño, puede ocupar el espacio que queda libre del bloque que contiene el i-nodo. Es decir, i-nodo y datos podrían estar en el mismo bloque en el disco. A ver si desempolvo los apuntes porque hace tiempo que no me miro esto 0:)
En windows, o mejor dicho, en fat, cada nombre de fichero tiene asociado el número del primer bloque en disco asignado al fichero. Con eso ya se puede empezar a leer; para saber los siguientes, hay que mirar en la tabla de asignación de ficheros (fat), creada durante el formateo al principio del disco, y que es basicamente una lista ligada de bloques: el primer bloque contiene el numeral del siguiente bloque asignado al fichero, hasta llegar al último, que se marcaba no recuerdo como. Los bloques no asignados también se marcaban de otra forma (cero, quizás).
Es verdad !!! Ya no me acordaba de esto. Gracias por recordármelo :)
En fat un directorio es una especie de fichero que en realidad contiene una tabla de directorio, es decir, los nombres de los ficheros contenidos, su primer sector, tamaño, fecha y atributos.
En el caso de Unix, lo que contiene es el i-node_number y el file_name, lo demás lo guarda el i-nodo en sí.
El número máximo de ficheros en el disco no está limitado salvo por el número de bloques, obviamente. Pero el tamaño de la FAT estaba limitado a 64KB porque es lo que podía leer el procesador originalmente (la fat se manipula en memoria). El tamaño máximo de fichero estaba limitado por el diseño de las funciones de lectura/escritura, pero no por la fat en sí.
Y hay variaciones según la versión.
Conceptualmente, por cierto, en fat también se pueden crear hardlinks: lo he visto. El problema es que el sistema operativo no lo soporta y los borra en cuanto se da cuenta.
Lo del nombre largo se inventó despues, es un añadido - y que por cierto, está patentado y ganaron el pleito, por lo que se suponía que iban a quitar el soporte de nombres largos fat en linux, pero no lo han hecho. A ver si es eso una de las cosas por las que se les paga... no se en que quedó ese pleito concreto.
Es verdad !!! Hace mucho que no se oye nada de esto ... claro, entre lo de SCO y Novell-MS ... uno se olvida de otros temas. Rafa -- "Even paranoids have enemies." Rafa Grimán Systems Engineer Silicon Graphics Spain Santa Engracia, 120 - Planta Baja 28003 Madrid Spain Tel: +34 91 3984200 Tel: +34 91 3984201 Móvil: +34 628 117 940 http://www.sgi.com OpenWengo: rgriman Skype: rgriman --------------------------------------------------------------------- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org