Implantacin del sistema de archivos FAT32 en el



































![Directorio “. ” y “. . ” if (name[0] == '. ' && len Directorio “. ” y “. . ” if (name[0] == '. ' && len](https://slidetodoc.com/presentation_image_h2/e7e856a5f484c419a3fd3264a8341b52/image-36.jpg)




- Slides: 40
Implantación del sistema de archivos FAT-32 en el núcleo de Linux Tesis presentada por: Luis Carlos Castro Skertchly Para obtener el Título de: Ingeniero en Cibernética y Sistemas Computacionales
AGENDA • • Objetivos Introducción Problemática Sistema de Archivos – UNIX – FAT • Desarrollo • Conclusiones
Objetivos • Permitir el acceso a GNU/Linux a la información generada por Windows • Tener una información más completa de FAT 32 • Generar un esquema que facilite la creación de sistemas de archivos sobre Linux
GNU/Linux • Sistema operativo abierto y libre – Libre (Free) Gratis • Código fuente disponible GNU/GPL • Posicionándose fuertemente en la Industria • Apoyo y desarrollo de software por parte de la industria computacional: Sun, SAP, HP, IBM, Oracle, Informix, Sybase
FAT • Sistema de archivos utilizado en los sistemas operativos de Microsoft (MS-DOS, Windows) • FAT: File Allocation Table • Su nombre lo debe a la estructura que utiliza para asignar espacio en el medio • Ha evolucionado desde su aparición con el MS-DOS 1. 0
FAT 32 • Incompatible con DOS y Windows NT • Soportado en Windows 95 OSR 2, 98, ME y Windows 2000
Problemática • Convivencia de GNU/Linux y Windows en la misma computadora • Falta de documentación en ambas plataformas
Conceptos
Sistemas de Archivos • Mecanismo de abstracción • Forma de organizar información en un medio para tener acceso a ella posteriormente • Normalmente es específico de cada sistema operativo • Excepciones: ISO-9660
Sistemas de archivos • Administran la asignación del espacio en el medio (disco, CD) • Utilizan una unidad de asignación: – Sector (FAT-16) – Clúster (BIGDOS) – Bloque (UFS)
Sistemas de archivos en Unix
Estructuras principales • • • Superbloque Lista de bloques libres Nodos-i Directorios Archivos
Superbloque • Punto de entrada • Datos generales del sistema de archivos – Número mágico (indica si está soportado) – Tipo de sistema – Estado (“clean” / “no clean”) – Tamaño – Apuntadores a la lista de bloques libres
Lista de bloques libres • Lista ligada de los bloques que no están en uso. • Conforme se utilizan se sacan de esta lista. • Normalmente se usan los mismos bloques libres para almacenar la lista.
Nodo-i • Todas las características (excepto el nombre) de un archivo ó directorio están definidas en la estructura llamada nodo-i • Contiene la lista de bloques usados por el archivo • Se hace referencia a un nodo-i por su número
Directorios • La asociación entre nodo-i y nombre de archivo se hace en los directorios: nodo-i 5324 5325 Nombre bin etc 5432 6873 usr vmlinuz-2. 1. 0 Ligas (nombres con el mismo nodo-i)
Archivos • Son una secuencia de bytes agrupadas bajo un nombre. • Hay tres tipos: – Archivos regulares – Archivos especiales (no ocupan espacio) • Bloques, Carácter, Pipe, Socket – Directorios
Archivos • En el nombre no existe el concepto de extensión • Tienen propietarios y permisos
Sistemas de archivos FAT
Sistemas de archivos FAT • DOS 1. 0: FAT tradicional de 12 bits – Máximo de 212 sectores direccionables – (4, 096 sectores)(512 bytes/sector) = 2 MB – Nombres de 8+3 caracteres • DOS 2. 0: FAT tradicional de 16 bits – Máximo de 216 sectores direccionables – (65, 536 sectores)(512 bytes/sector) = 32 MB – Nombres de 8+3 caracteres
Sistemas de archivos FAT • DOS 4 introduce BIGDOS – Unidad de asignación de tamaño variable (cluster) en potencias de 2 hasta 32, 768 bytes – Máximo 65, 536 clusters – (65, 536 clusters)(32, 768 bytes/cluster) = 2 GB • Windows 95 introduce VFAT – Soporte a nombres largos – Fecha de creación y último acceso
Estructura de un disco FAT Boot Sector FAT IO Direct. Raiz SYS. . . 2. . . á. . Datos OEM ID: MSWIN 4. 1 Ú├☺RSh ` • 3█ïL♥ÃE◙ ëM◘ïD♂=Ç v▼Q©Ç MSDOS SYS. . . 2. . +. . ò. . ÄÓ© pÄÞ♫ • ┤ÇRèD☻*d☻â· u♣ZZÚd☺ï╩Þç COMMAND COM. . . 2. . Q. ⌡. . . Sectores por cluster EMERGENCIA (. . ÖV. ▲. . . A; Ðu◄dz u♦┤ÇÙ◘☻D☻*d☻ÙÕYRïÐ╣◙ SPRQ Media descriptor NDD EXE. . ôm. G. ë. . . ©☺ èD↓═‼ 3└Hu²YZX[Iu¦♫▼¥╝ ¼ EXE. . Ém. G. @. 8 W. . Sectores por FATDE ◙└t○┤♫╗ • ═►Ù‗Ù■♪◙Disk I/O error♪◙ DISKTOOLEXE. . æm. G. . . . Total de sectores FORMAT COM. . . 2. . Ä. πZ. . [Zè╚ 2Ý┴ß○♥┘t♥Úo î└♣ ►Ä└┤ÇÚc SÞ= s !ï┌ÐÛ£♥┌dï↨Ør♠üÔ ☼Ù♥┴Û♦ü·°☼r↔║ Ù Etiqueta FDISK EXE. . . 2. . Ñ. fs. . ë▬¥♀3Ýf☼Àõî▲╝§Þ 5↑fh fØï▄Ïw Número de serie PARTINFODAT. . . V. ▲. . . ☻ 3└ÄÞÄ└j 0☼í·☼☺▬¿§☼☺▲░§¥║↔ÃD☻h ¥ ↔ Código de arranque
VFAT: Atributos adicionales Desp. 00 H 08 H 0 BH 0 CH 0 DH 0 EH 10 H 12 H 14 H 16 H 18 H 1 AH 1 CH Descripción Nombre Extensión Atributo Mayúsculas. /Minúsculas Reservado Hora de creación (ms) Reservado Hora de creación Reservado Fecha del último acceso Reservado Hora de modificación Fecha de modificación Clúster inicial Tamaño 8 3 1 1 1 2 2 2 2 4 Formato ASCII Codificado en bits (Windows Sin uso, en. NT) ceros Byte Sin uso, en ceros Palabra Sin uso, codificada en ceros Sin uso, en ceros Palabra codificada Palabra Entero
Ejemplo de nombre largo • Uso de las estructuras existentes para guardar el nombre largo • Se oculta mediante los atributos V, H, R, S • Compatible con versiones anteriores de FAT
FAT-32 • Aparece con Windows 95 OSR 2 • Características: – 32 bits para numerar los clusters (24 bits reales) – Directorio raíz en cadena de clusters ordinaria – El número de cluster mide 4 bytes (32 bits) – Límite teórico de 512 GB:
Desarrollo Sistema de Archivos Virtual en Linux (VFS)
Virtual Filesystem (VFS) • Interfaz entre el sistema de archivos real y el kernel, que oculta los detalles de implementación de un sistema de archivos • Se establece que el sistema de archivos trabaja por medio de nodos-i
Virtual Filesystem (VFS)
Modelo de diseño • Objetos del sistema de archivos: – Superbloque • Mantiene datos globales del sistema de archivos • Encargado de leer y escribir los nodos-i – Nodo-i • Crear y borra las entradas en los directorios • Sólo Se trunca a ceros cuando es archivo – Archivos • Abrir, cerrar, posicionarse, leer, escribir
Modelo VFS vs. FAT VFS • Trabaja con bloques • Presupone la existencia de nodos-i • Contempla propietarios y permisos FAT • Trabaja con clusters • Carece del concepto del nodo-i • No soporta propietarios ni permisos
Posición relativa y absoluta • Asignación en FAT (archivo fragmentado): • Asignación física en disco:
Clusters vs. bloques • Dada la posición de lect. /escr. se obtiene el cluster: • Conversión de clusters a sectores: cluster = fat 32_get_cluster(inode, file_cluster); sector = (cluster – 2) * sectores por cluster + primer sector de datos + offset;
Nodos-i en FAT • El nodo-i identifica a cada archivo de manera individual e inequívoca • En FAT un archivo está representado por su nombre • Asociar el nombre a un número: – – Coordenadas donde está almacenado ese nombre Registros de 32 bits 16 posiciones posibles 16 = 24 Sólo se necesitan 4 bits para definirla (un dígito hexa)
Nodos-i en FAT i_ino = (sector << 4) | ((pos & (SECTOR_SIZE – 1))) >> 4
Directorios “. ” y “. . ” • El directorio “. ” es una alias al directorio de trabajo, por lo tanto tiene el mismo número de nodo-i. • El directorio “. . ” es un alias al directorio padre del directorio de trabajo.
Directorio “. ” y “. . ” if (name[0] == '. ' && len == 1) ino = inode->i_ino;
Conclusiones
Conclusiones • Es posible desarrollar sistemas de archivos no propios de Linux. • Acceder a la información de sistemas de archivos de terceros. • Uso de técnicas de ingeniería inversa. • Implementación independiente de FAT 32. • FAT-32 con características diseño mas elegante que sus antecesores. • Facilitar nuevos proyectos gracias a la documentación generada.
Trabajo a futuro • Usar “shortcuts” de Windows como ligas • Herramientas de respaldo en modo “a prueba de fallos” de Windows 9 x • Editor de disco para FAT-32 • Montar sistemas de archivos Linux desde Windows
Preguntas