Home
Trabajo Práctico 1 Sistema de archivos FAT16 en lenguaje
Contents
1. Offset Tama o Significado 0 3 Primeros 3 bytes Usados para saltar al c digo de booteo 3 8 Identificador OEM mkdosfs 11 2 N mero de Bytes por sector 13 1 N mero de sectores por cl ster 14 2 N mero de sectores reservados Incluye al sector de booteo 16 1 N mero de FATs Normalmente es 2 17 2 N mero de entradas en el directorio ra z 19 2 N mero total de sectores en el volumen Si es 0 entonces hay mas de 65535 sectores 21 1 Media Descriptor Type Describe el tipo de medio de almace namiento 22 2 N mero de sectores por FAT 24 2 N mero de sectores por pista 26 2 N mero de cabezas o lados en el medio de almacenamiento 28 4 N mero de sectores ocultos 32 4 N mero de sectores en el medio Este se utiliza s lo si hay m s de 65535 sectores en el volumen 36 1 N mero de disco 37 1 Reservado 38 1 Firma Debe ser 0x28 o 0x29 39 4 N mero de serie del volumen VolumeID 43 11 Etiqueta del volumen 54 8 String identificador del sistema 62 448 C digo de booteo 510 2 Firma de partici n booteable 0xAA55 1 1 2 FAT File Allocation Table Esta tabla se ubica en el dispositivo de almacenamiento y se utiliza para indicar la ubi caci n y estado de todos los cl sters de datos en el dispositivo Puede ser considerada como la tabla de contenidos Un cl ster puede estar disponible reservado para el sistema operativo no disponible por c
2. group ID of owner st_rdev device ID if special file off_t st_size total size in bytes blksize_t st_blksize blocksize for filesystem 1 0 blkcent_t st_blocks number of blocks allocated time_t st_atime time of last access time_t st_mtime time of last modification time_t st_ctime time of last status change Devuelve O si tuvo xito o 1 si ocurri alg n error 1 3 4 close int close int fd Esta funci n cierra el archivo descripto por fd Devuelve O si tuvo xito o 1 si ocur ri alg n error 1 3 5 mmap void mmap void addr size_t length int prot int flags int fd off t offset Crea un mapeo a memoria a partir de la direcci n addr del archivo descripto por fd El mapeo es de tama o length y comienza a partir de offset El par metro prot indica si hay alg n tipo de protecci n de memoria y flags se utiliza para indicar caracter sticas del mapeo Si addr es NULL entonces el kernel elige la direcci n a partir de la cual se realiza el mapeo y la devuelve en addr El par metro prot debe tener alguno de los siguientes valores PROT_EXEC Se puede ejecutar el c digo PROT_READ Se puede leer PROT_WRITE Se puede escribir PROT_NONE No hay protecci n Devuelve la direcci n del mapeo si tuvo xito MAP_FATLED si hubo error 1 3 6 munmap int munmap void addr size_t length Deshace lo hecho con mmap Devuelve O si tuvo exito o 1 si
3. recomendamos que utilicen la funci n mmap para generar un mapeo a memoria del archivo En el ejercicio en el que deben extraer un archivo de la imagen pueden utilizar write pero es necesario abrir el archivo con el flag O_CREAT para que no falle en el caso de que el archivo a extraer no exista 12
4. 14 2 Tiempo de creaci n 5 bits para la hora 6 para los minutos 5 para los segundos 16 2 Fecha de creaci n 7 bits para el a o 4 para el mes 5 para el d a 18 2 y Ultima fecha de acceso 20 2 Cero 22 2 Ultima fecha de modificaci n 24 2 Ultimo tiempo de modificaci n 26 2 Primer cl ster del archivo 28 4 Tama o del archivo en bytes Byte de atributo 7 6 5 4 3 2 1 0 Res Res Archivo Directorio VolumeID Sistema Oculto S lo Lectura Nota Res Reservado El bit archivo no indica que es un archivo Este se utiliza en sistemas de backup Para determinar si es archivo o directorio hay que ver el bit directorio Notas sobre el campo nombre El primer byte es tratado de forma especial Estas son las reglas que se aplican 0x00 se interpreta como detener la b squeda no hay mas entradas en este directorio 0x20 no debe existir Oxe5 se interpreta como una entrada libre Todas los nombres tienen exactamente 11 bytes Para rellenarlos se usa el caracter 0x20 espacio Con el paso del tiempo el sistema FAT16 original se modific para soportar nombres largos Para ello las entradas de directorio se empezaron a utilizar para algo mas que rep resentar archivos y directorios Hay entradas que contienen el nombre en formato Unicode y un campo que indica a que entrada del directorio corresponde ese nombre largo Para no confundirlas con entradas de archiv
5. montado de imagen sudo mount o loop t vfat imagen bin DESTINO Este comando monta la imagen imagen bin en el directorio DESTINO Luego se pueden copiar archivo y directorios a la carpeta DESTINO estos van a quedar guardados en la imagen Al finalizar se debe desmontar la imagen sudo umount DESTINO Opci n B utilizando mtools mcopy i imagen bin FUENTE DESTINO Este comando copia FUENTE en el directorio DESTINO dentro de la imagen imagen bin mmd i imagen bin DIRECTORIO Este comando crea el directorio DIRECTORIO dentro de la imagen imagen bin Hay m s comandos mcd mcopy mdeltree mdir minfo mlabel mrd mread mmove mren mshowfat mwrite M s informaci n http www gnu org software mtools intro html 2 Enunciado Ejercicios El objetivo de este trabajo pr ctico es realizar una aplicaci n que realice las siguientes operaciones sobre una imagen de un medio de almacenamiento Imprimir por pantalla la informaci n sobre la imagen y el sistema de archivos Listar los contenidos de un directorio dado Calcular el tama o total de los archivos en la imagen a partir de un directorio dado Extraer un archivo dado de la imagen Suponiendo que la aplicaci n se llama tpcopado tiene que soportar los siguientes par met ros tpcopado v IMAGEN imprime la informaci n de la imagen tpcopado 1 DIRECTORIO IMAGEN lista los archivos en DIRECTORIO tpcopado s DIRECTORIO IMAGEN suma el tama o de todos los archivo
6. 10 3 2 Versi n 3 3 2 1 Introducci n te rica Estructura FAT Se agrega Notas sobre la numeraci n de los cl steres Los cl steres se numeran del 0 en adelante El primer cl ster de datos tiene el ndice 2 Las primer entrada de la FAT indica el tipo de medio Debe ser el mismo que se indica en el sector de booteo La segunda entrada de la FAT indica el estado OxFFFF indica que est limpia OxF7FF indica que esta montada o en uso 3 2 2 Introducci n te rica Estructura rea de directorio y datos Notas sobre las entradas de directorio Se agrega Con el paso del tiempo el sistema FAT16 original se modific para soportar nombres largos Para ello las entradas de directorio se empezaron a utilizar para algo mas que rep resentar archivos y directorios Hay entradas que contienen el nombre en formato Unicode y un campo que indica a que entrada del directorio corresponde ese nombre largo Para no confundirlas con entradas de archivo o directorios los valores del campo atributos y primer cl ster del archivo tienen los valores Ox0OF y 0x0000 respectivamente Valores que no tienen sentido dentro de una entrada de directorio Para el objetivo de este trabajo pr ctico no es necesario tener en cuenta los nombres largos Estas entradas deben ser obviadas 3 2 3 Introducci n te rica Estructura rea de directorio y datos Byte de atributos Se agrega El bit archivo no indica que es un archivo Este se u
7. Trabajo Pr ctico 1 Sistema de archivos FAT16 en lenguaje ensamblador Organizaci n del Computador 2 ler Cuatrimestre 2010 Versi n 3 1 Introducci n te rica En las viejas epocas de Windows 95 aparecieron los discos r gidos de 2 Gb o m s Para poder soportarlos los sistemas operativos debieron permitir que sus sistemas de archivos soporten estas enormes cantidades de datos Para ello Micro oft desarroll su sistema de archivos FAT 32 Como en esta materia somos tan modernos vamos a realizar algunas opera ciones con el sistema de archivos FAT16 o sea su predecesor 1 1 Estructura FAT16 o File Allocation Table 16 es un sistema de archivos desarrollado a partir de FAT12 en el a o 1987 Este sistema de archivos ve el medio de almacenamiento como un arreglo de clusters Cada cl ster puede estar ocupado por una porci n o el total de un archivo o directorio Se utiliza la tabla FAT para encontrar cada uno de estos cl steres El medio de almacenamiento se organiza en tres reas principales El sector de booteo La tabla de asignaci n de archivos FAT a El rea de directorio y datos 1 1 1 Sector de Booteo El sector de booteo ocupa un sector y siempre se ubica en el sector 0 Si el medio de almacenamiento no esta particionado es el primer sector del mismo Este sector contiene c digo y datos mezclados La siguiente tabla muestra el contenido de este sector
8. o o directorios los valores del campo atributos y primer cl ster del archivo tienen los valores Ox0F y 0x0000 respectivamente Valores que no tienen sentido dentro de una entrada de directorio Para el objetivo de este trabajo pr ctico no es necesario tener en cuenta los nombres largos Estas entradas deben ser obviadas 1 2 Funcionamiento Cada entrada de la tabla FAT est vinculada a un cl ster Este v nculo es biyectivo y los ndices se corresponden Es decir la primer entrada de la FAT corresponde al valor del primer cl ster la segunda entrada de la FAT corresponde al valor del segundo cl ster etc No todos los archivos o directorios van a ocupar necesariamente un cl ster FAT16 cuando necesita ocupar otro cl ster hace uso de la tabla FAT para encontrar alguno libre y escribe en el valor que correponde al anterior cual es el pr ximo De esta forma cuando uno llega al final de un cl ster verifica en la entrada FAT correspondiente si el archivo termin o hay un cl ster siguiente y cu l es FAT archivos y carpetas Figura 1 Esquema del funcionamiento de FAT16 1 3 Funciones auxiliares Para lograr el objetivo es necesario la utilizaci n de algunas funciones auxiliares provistas por las librer as de C 1 3 1 open int open const char filename int flags Esta funci n devuelve un descriptor de archivo o file descriptor correspondiente al archi vo filename Si ocurre un error devuelve 1 Lo
9. ocurri alg n error 1 3 7 Valores de las constantes y tama os de los tipos Dependiendo del sistema operativo elegido para realizar este trabajo puede ser que se encuentren que los valores de algunas constantes difieran o que los tama os de los tipos de datos utilizados var en Para ello se da una herramienta sizes c que luego de compilarla y ejecutarla nos muestra por pantalla los tama os de distintos tipos de datos y constantes necesarias para este trabajo pr ctico Es muy importante que en el informe aclaren qu SO utilizaron y sobre qu procesador 1 3 8 Creaci n de im genes de prueba Imagen vac a Para poder probar la aplicaci n es necesario contar con im genes de prueba La forma de crearlas bajo linux es la siguiente dd if dev zero of imagen bin bs 1024 count TAMA O Este comando crea un archivo imagen bin lleno de ceros Hay que reemplazar TAMA O por la cantidad de kb que queremos que tenga Formateo de imagen El pr ximo paso es darle formato a la imagen mkfs v at F16 imagen bin Este otro comando le da formato FAT16 al archivo imagen bin Otros par metros que pueden ser agregados son a f N Crea N copias de la tabla FAT n ORGA2 Establece ORGA2 como la etiqueta del medio Copiado de archivos Para modificar la imagen se pueden hacer dos cosas montarla o utilizar mtools para modificarla La opci n mas sencilla es montarla pero esto requiere acceso como superusuario Opcion A
10. ombres de los integrantes con n mero de libreta y email Manual del usuario Algunas im genes con las que hayan probado y su correspondiente procesamiento Instrucciones para el corrector por ejemplo como ensamblar los archivos fuente para obtener el ejecutable Makefile Lista de todos los archivos entregados El informe se eval a de manera independiente del c digo Puede reprobarse el informe y en tal caso deber ser reentregado para aprobar la materia Entrega La fecha de entrega de este trabajo es martes 4 de mayo en el horario de clase de 17 a 22 hs La entrega se realizar en un CD que debe incluir los ejecutables todos los archivos fuentes necesarios para crearlos im genes de prueba con su correspondiente procesamiento y el informe en pdf Si desarrollaron prototipos en lenguaje C para resolver el trabajo primero en alto nivel deben entregarlos e incluir los resultados obtenidos en el informe Para ordenar la entrega se deben crear las siguientes carpetas en el CD src exe enunciado informe resultados 3 Anexo cambios en el enunciado 3 1 Versi n 2 3 1 1 Introducci n te rica Estructura rea de directorio y datos Se agrega Notas sobre el campo nombre El primer byte es tratado de forma especial Estas son las reglas que se aplican 0x00 se interpreta como detener la b squeda no hay mas entradas en este directorio 0x20 no debe existir Oxe5 se interpreta como una entrada libre
11. ontener un sector malo del disco o puede estar en uso por un archivo Los cl steres de un archivo no necesariamente deben estar uno a continuaci n del otro La idea es que esta tabla permita seguir la listas de cl steres que componen un archivo FAT 16 como su nombre lo indica utiliza 16 bits para indexarlos Valores posibles de una entrada de la FAT Valor 0x0000 Significado Cl ster libre 0x0001 0x0002 No permitido O0x0003 OxFFEF N mero del pr ximo cl ster OxFFF8 OxFFFF Fin del archivo Notas sobre la numeraci n de los cl steres a Los cl steres se numeran del 0 en adelante El primer cl ster de datos tiene el ndice 2 Las primer entrada de la FAT indica el tipo de medio Debe ser el mismo que se indica en el sector de booteo La segunda entrada de la FAT indica el estado OxFFFF indica que est limpia OxF7FF indica que esta montada o en uso 1 1 3 rea de directorios y datos Un directorio simplemente guarda la informaci n del nombre sus atributos y donde est el primer cl ster del directorio o archivo FAT16 usa el formato de nombre est ndar 8 3 Ocho caract res para el nombre y tres para la extensi n Formato de una entrada de directorio Offset Tama o Significado 0 11 Nombre de archivo en formato 8 3 11 1 Atributos ver Byte de atributo 12 1 Reservado 13 1 D cimas de segundo del tiempo de creaci n
12. s en DIREC TORIO y sus subdirectorios tpcopado e ARCHIVO IMAGEN Extrae ARCHIVO La aplicaci n debe estar programada en lenguaje ensamblador S lo es posible realizar en lenguaje C la funci n main para procesar la l nea de comandos y ejecutar las funciones que correspondan Para abrir la imagen del medio de almacenamiento recomendamos que utilicen la funci n mmap para generar un mapeo a memoria del archivo En el ejercicio en el que deben extraer un archivo de la imagen pueden utilizar write pero es necesario abrir el archivo con el flag O_CREAT para que no falle en el caso de que el archivo a extraer no exista Informe Debe reflejar el trabajo hecho para obtener el resultado las decisiones tomadas con el estudio de sus alternativas las estructuras de datos usadas con gr ficos y o dibujos si ayudan a clarificar las pruebas que hayan hecho para tomar decisiones o al final para buscar errores en el producto final etc tera Debe contar como m nimo con los siguientes cap tulos introducci n desarrollo discusi n y conclusiones Estar estructurado top down o sea leyendo la introducci n se debe saber qu se hizo y cu les son las partes m s importantes Despu s de leer los primeros cap tulos se debe saber cada cosa que se hizo y como se hicieron las m s importantes En el resto de los cap tulos se debe poder leer el detalle de todo lo hecho Adem s el informe debe incluir Car tula con n mero del grupo y los n
13. s flags pueden ser a O_RDONLY S lo lectura O_WRONLY S lo escritura O_RDWR Lectura escritura O_CREAT Si no existe lo crea El par metro mode debe ser especificado si se usa el flag O_CREAT Se utiliza para indicar los permisos con los que se va a crear el archivo Puede ser una combinaci n de los siguientes S_IRWXU S_IRUSR a S_IWUSR a S_IXUSR S_TRWXG S_IRGRP S_IWGRP m S_IXGRP a S_IRWXO a S_IROTH S_IWOTH S_IXOTH 1 3 2 write Lectura Escritura Ejecuci n del owner Lectura del usuario Escritura del usuario Ejecuci n del usuario Lectura Escritura Ejecuci n del grupo Lectura del grupo Escritura del grupo Ejecuci n del grupo Lectura Escritura Ejecuci n de otros Lectura de otros Escritura de otros Ejecuci n de otros ssize_t write int fd const void buf size_t count Esta funci n escribe count bytes en el archivo descripto por fd obtenidos a partir de buf Devuelve la cantidad de bytes escritos 1 3 3 fstat int fstat int filedes struct stat buf Esta funci n recibe un descriptor de archivo filedes y rellena el struct buf con los datos que se indican a continuaci n struct stat 4 dev_t ino_t mode_t nlink_t uid_t gid_t dev_t st_dev ID of device containing file st_ino inode number st_mode protection st_nlink number of hard links st_uid user ID of owner st_gid
14. tiliza en sistemas de backup Para determinar si es archivo o directorio hay que ver el bit directorio 3 2 4 Introducci n te rica Funciones open Se agrega El par metro mode debe ser especificado si se usa el flag O_CREAT Se utiliza para indicar los permisos con los que se va a crear el archivo Puede ser una combinaci n de los siguientes S_IRWXU Lectura Escritura Ejecuci n del owner S_IRUSR Lectura del usuario a S_IWUSR Escritura del usuario a S_IXUSR Ejecuci n del usuario S_TRWXG Lectura Escritura Ejecuci n del grupo S_IRGRP Lectura del grupo S_IWGRP Escritura del grupo 11 S_IXGRP Ejecuci n del grupo S_IRWXO Lectura Escritura Ejecuci n de otros S_IROTH Lectura de otros a S_IWOTH Escritura de otros a S_IXOTH Ejecuci n de otros 3 2 5 Introducci n te rica Funciones Se agrega ssize_t write int fd const void buf size_t count Esta funci n escribe count bytes en el archivo descripto por fd obtenidos a partir de buf Devuelve la cantidad de bytes escritos 3 2 6 Enunciado Ejercicios Se cambia Texto anterior Para abrir la imagen del medio de almacenamiento recomendamos que utilicen la funci n mmap para generar un mapeo a memoria del archivo En el ejercicio en el que deben extraer un archivo de la imagen pueden utilizar mmap pero es necesario abrir el archivo con el flag OD_CREAT Texto modificado Para abrir la imagen del medio de almacenamiento
Download Pdf Manuals
Related Search
Related Contents
atlas manual de usuario componente de calendario antena giratoria para tv con control remoto estimado 取扱説明書(PDF)ダウンロード DELL Precision T1700 GUIA DE INSTALAÇÃO RÁPIDA Acer 146.AD398.002 プレート式熱交換器 1 設置・接続説明書 第104回 衆議院 商工委員会 昭和61年4月16日 第12号|国会会議録 Copyright © All rights reserved.
Failed to retrieve file