Implantacin del sistema de archivos FAT32 en el

  • Slides: 40
Download presentation
Implantación del sistema de archivos FAT-32 en el núcleo de Linux Tesis presentada por:

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 •

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 •

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

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 • 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

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

Problemática • Convivencia de GNU/Linux y Windows en la misma computadora • Falta de documentación en ambas plataformas

Conceptos

Conceptos

Sistemas de Archivos • Mecanismo de abstracción • Forma de organizar información en un

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)

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

Sistemas de archivos en Unix

Estructuras principales • • • Superbloque Lista de bloques libres Nodos-i Directorios Archivos

Estructuras principales • • • Superbloque Lista de bloques libres Nodos-i Directorios Archivos

Superbloque • Punto de entrada • Datos generales del sistema de archivos – Número

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

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

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 • 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

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

Archivos • En el nombre no existe el concepto de extensión • Tienen propietarios y permisos

Sistemas de archivos FAT

Sistemas de archivos FAT

Sistemas de archivos FAT • DOS 1. 0: FAT tradicional de 12 bits –

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

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. . .

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

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

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

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)

Desarrollo Sistema de Archivos Virtual en Linux (VFS)

Virtual Filesystem (VFS) • Interfaz entre el sistema de archivos real y el kernel,

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)

Virtual Filesystem (VFS)

Modelo de diseño • Objetos del sistema de archivos: – Superbloque • Mantiene datos

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

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

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:

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

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)))

Nodos-i en FAT i_ino = (sector << 4) | ((pos & (SECTOR_SIZE – 1))) >> 4

Directorios “. ” y “. . ” • El directorio “. ” es una

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

Directorio “. ” y “. . ” if (name[0] == '. ' && len == 1) ino = inode->i_ino;

Conclusiones

Conclusiones

Conclusiones • Es posible desarrollar sistemas de archivos no propios de Linux. • Acceder

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

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

Preguntas