110 likes | 300 Views
Dir en FAT12. Periféricos Gabriel J. García Gómez gjgg@ua.es Francisco Javier Gil Chica gil@dfists.ua.es. Estructura de un disco. Disco 3 ½ 1,44Mb. Pista 4. Sectores físicos totales: 18 x 80 x 2 = 2880. 18 x 4 x 2 + 1 = 145. Sector físico 145. 79. Sector 2. 0. 1. 18.
E N D
Dir en FAT12 Periféricos Gabriel J. García Gómez gjgg@ua.es Francisco Javier Gil Chica gil@dfists.ua.es
Estructura de un disco Disco 3 ½ 1,44Mb Pista 4 Sectores físicos totales: 18 x 80 x 2 = 2880 18 x 4 x 2 + 1 = 145 Sector físico 145 79 Sector 2 0 1 18
Organización del disco Sector físico 9 d0, p0, c0, s10 Directorio Raíz Sector físico 10 d0, p0, c0, s11 FAT1 FAT2 Cara 0 Cara 1 Sector físico 1 d0, p0, c0, s2 Sector físico 32 d0, p0, c1, s15 Sector físico 19 d0, p0, c1, s2 Sector de arranque Sector físico 0 disco 0, pista 0, cara 0, sector 1 Sector físico 18 d0, p0, c1, s1
Organización del disco Entradas FAT (Sectores lógicos): 2 - 2848 Sector de Arranque Tablas FAT Directorio Raíz Área de datos FAT1 FAT2 Sectores físicos: 0 1 - 9 10 - 18 19 - 32 33 - 2879
Sector de Arranque 00 03 0B 0D 0E 10 A B C D E F 1FF 11 13 15 16 18 1A 1C 1E G H I J K L M … C Bytes por sector (512) F Número de ejemplares de FAT (2) G Entradas del Directorio Raíz (224) H Número de sectores del volumen (2880) J Número de sectores por FAT (9) K Número de sectores por pista (18) L Número de cabezales (2)
FAT12 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 Res. Res. 007 002 00A 000 000 009 000 FFF 010 000 003 000 000 000 FFF … Archivo 1 4 ,A ,10 000 Bloque libre Archivo 2 C ,3 ,2 ,7 ,9 FF0 – FF6 Bloque reservado s.o. FF7 Bloque defectuoso FF8 – FFF Último bloque de un archivo ??? Siguiente bloque de un archivo
Directorio Estructura de una entrada de un directorio (32 bytes): 00 08 0B 0C 1C 16 18 1A 1F Nombre N0 Extensión A Reservado Hora Fecha 1er bloque Tamaño 2 2 2 4 8 3 1 10 00 Última entrada del directorio 2E Archivo se refiere a directorio actual 7 0 E5 Archivo se borró A - - B Sub VL S H RO 15 0 11 10 5 4 Hora Horas Minutos Segundos / 2 15 0 8 5 4 9 Fecha Año desde 1980 Mes Día
Directorio Raíz Estructura de una entrada de un directorio (32 bytes): 00 08 0B 0C 1C 16 18 1A 1F Nombre Extensión A Reservado Hora Fecha 1er sector Tamaño 2 2 2 4 8 3 1 10 Directorio Raíz 14 sectores, con 512 bytes por sector 14 x 512 / 32 = 224 entradas como máximo. 32 bytes Archivo/Directorio 1 Archivo/Directorio 2 Archivo/Directorio 3 . . . Archivo/Directorio 15 Archivo/Directorio 16
Leer un sector (disco) Un poco de trabajo ;-) http://www.ctyme.com/intr/int.htm
Leer un sector (imagen) fopen Utilizar modo de apertura binario setbuf Desactiva el uso de buffers intermedios (Necesario por un error en la lectura por compatibilidad) Siempre justo después de fopen fseek Para situarse dentro del fichero de la imagen fread Para leer
Extraer una entrada de la FAT12 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 Res. Res. 007 002 00A 000 000 009 000 FFF 010 000 003 000 000 000 FFF … 00000111 00100000 00000000 Si la entrada FAT es par: 4 bits bajos del byte y los 8 bits del byte 76543210 hgfe dcba zyxwvuts Si la entrada FAT es impar: Los 8 bits del byte y los 4 bits altos del byte dcba76543210 zyxwvutshgfe