AMIGALANDIA

AMIGALANDIA --- Blog Retrospectivo Amiga/MorphOS

miércoles, 11 de julio de 2012

Sistema de Ficheros Anfitrión o Hardfiles (Emulación Amiga)


TÓPICO
P: ¿ Es mejor almacenar archivos en el sistema de ficheros del huésped o en un fichero hardfile ? ¿ Y qué me dices de utilizar un disco duro real de Amiga en lugar de un fichero ?
DISCUSIÓN
R: Al utilizar el sistema de ficheros del sistema huésped (p.ej. Windows), cada uno de los ficheros de Amiga es manejado por el sistema de ficheros empleado en el sistema operativo en el que estemos ejecutando la emulación (p.ej NTFS, en Windows). El Amiga emulado interpretará el sistema de ficheros huésped como un sistema de ficheros compatible, con escasas diferencias relativas a nombres y atributos si comparamos con los sistemas originales OFS y FFS de Amiga.
Un hardfile (o fichero HDF) es similar a una partición de disco duro, pero es solamente un enorme fichero alojado en el sistema de archivos anfitrión. El sistema Amiga ejecutado en la emulación es el que se encargar del manejo de los datos en el interior de ese fichero (esto es, lectura y escritura de ficheros y directorios Amiga), no el sistema operativo anfitrión.
Ambos métodos tienes ventajas y contrariedades. Si vamos a embeber el contenido en un paquete RP9, recomendaríamos el uso de un fichero HDF. Incrustar un amplio contenido (p.ej 100 MB o más) en un paquete RP9 ralentizaría el arranque inicial y el apagado, debido a la sobrecarga en compresión y descompresión (los paquetes RP9 están comprimidos), por lo que suele ser mejor configurar grandes hardfiles como referencias externas (al contrario que los ficheros embebidos) en el editor RP9.
Si fuéramos a acceder al contenido fuera de paquetes RP9, se recomienda el uso del sistema de ficheros para el trabajo diario, y emplear hardfiles sólo cuando necesitemos almacenar datos de Amiga preservando los atributos de fichero originales (fecha exacta, Amiga flags, comentarios, nombre con caracteres especiales, etc..). Los ficheros hardfile presentan ciertas ventajas a la hora de guardar archivos, pero las desventajas suelen prevalecer si consideramos el aspecto operacional. Aqui en Cloanto, utilizamos hardfiles para el archivo de nuestros proyectos Amiga y masters en disco, y el sistema operativo anfitrión para todo lo demás.
Amiga Forever, emplea por defecto el sistema de ficheros del anfitrión, aunque podamos crear y montar hardfiles manualmente. La instalación en disco de Amiga Forever creará un directorio "Work" en el entorno de la emulación. Se localiza en "Shared/dir/Work", dentro de "Amiga Files". Si copiamos ficheros desde el disco duro Amiga a este directorio del PC, automáticamente se encontrarán disponibles en la partición "Work" del Amiga emulado.

Lo mismo sucede para el directorio "System".

Algunas de las ventajas de emplear el sistema de ficheros nativo:
Podemos acceder a los datos desde Amiga y Windows (u otro sistema operativo)
Óptima utilización del disco duro (sin riesgo de que se llene el hardfile o malgastar espacio no utilizado)
La compresión de ficheros NTFS, si la activamos, es más eficiente y rápida en ficheros sueltos

que en un hardfile más grande

El sistema de ficheros anfitrión suele presentar mayores prestaciones (compresión, encriptado, transaciones atómicas, etc.) y su diseño soporta dispositivos de almacenamiento más actuales (p.ej DVD, memorias USB, etc) y discos duros con espacios de cientos de gigabytes.
Desventajas del sistema de ficheros huésped (ver abajo para más detalles):
Algunos caracteres (p.ej "\") y nombres (p.ej "AUX") soportados en ficheros y carpetas de Amiga pueden ser ilegales o presentar un significado especial en el sistema de ficheros de Windows
Puede no haber soporte para bits de atributos específicos de Amiga (p.ej "script", "pure", etc)
Quizá se puedan alterar la fecha y la hora de los ficheros y directorios de Amiga (por pequeñas fracciones de segundo) por la dirente granularidad del tiempo en el sistema de ficheros anfitrión
No se puede incrustar la estructura de Directorio como ocurre con los paquetes RP9 (se puede añadir como referencia externa)
Ventajas de los Hardfiles:
Soportan todos los sistemas de ficheros de Amiga (p.ej OFS, FFS) incluyendo los de terceras partes (SFS, PFS,etc.)
Prefecto para archivar particiones de disco duro de Amiga (p.ej utilizando Amiga Explorer)
Pueden ser emebebidas en paquetes RP9
Desventajas de los ficheros hardfile:
La corrupción de datos y los medios defectuosos pueden afectar a todo un hardfile (no solamente a los datos más recientes utilizados) y quizá sea necesario utilizar herramientas de recuperación tanto en la parte Amiga como en el sistema operativo anfitrión, siendo por ello los intentos de recuperación más complejos.


Al igual que en una partición de disco, el tamaño de un hardfile es constante y no se puede modificar fácilmente.

Tampoco el sistema operativo (p.ej Windows) suele tener capacidad para leer el contenido de un hardfile.

Algunos emuladores de Amiga pueden leer directamente discos duros de Amiga. Lo mismo suecede con los hardfiles, con la consideración añadida de que un disco duro de Amiga puede tener una cierta antigüedad, y por ello quizá sea más prudente copiar los datos a un disco duro algo más moderno (p.ej al sistema de ficheros anfitrión, de modo que pueda ser compartido entre el Amiga emulado y el sistema).


El sistema de ficheros Amiga, como los antiguos de Windows, nació cuando discos duros de unas docenas de megabytes (nada de los gigas y teras actuales) eran considerados un lujo, y no fueron diseñados para soportar dispositivos creados varias décadas más adelante. Cuando se produce un error, un fallo de alimentación, o un apagado "brusco" mientras se escribe sobre el disco, es normal que la operación de reparación dure varias horas e incluso días, puesto que tienen que escanearse cientos de gigabytes de datos, o más. Los sistemas de ficheros de PC más actuales, como HPFS de OS/2, NTFS de Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008, Windows 8 y Windows Server 2012, y ReFS de Windows Server 2012, están basados en transacciones atómicas.


Una transacción puede encontrarse "semi-completa": si una operación de escritura falla la transacción queda registrada como incompleta, y la estructura general del sistema de ficheros permanece en el estado anteriormente conocido, sin punteros ni enlaces corruptos. Es por ello que generalmente no son necesarios procedimientos tan intensivos como "reparar" o "validar" a la hora de iniciar el ordenador. Al usar el sistema de ficheros del sistema emulador, en lugar de un hardfile o disco duro de Amiga, contamos con esta ventaja como herencia.

Aunque es cierto que el sistema de ficheros anfitrión no cubre el juego completo de atributos de los ficheros Amiga y caracteres soportados, no es una limitación nueva para el Amiga. Los programadores de software para Amiga siempre han tenido una mentalidad abierta a la hora de ver sus programas corriendo en diferentes sistemas. A finales de los años 1980, y entre los desarrolladores de Amiga, era bastante frecuente acceder con ordenadores Amiga a sistemas de ficheros no-Amiga (p.ej ISO 9660-2 CD-ROM o red Novell). El sistema operativo de Amiga utiliza nombres de fichero de sentido común que funcionan bien en la mayoría de sistemas de ficheros, no sólo en los de Amiga (a excepción de los ficheros "AUX" y "AUX.info", que apenas tienen rol en la emulación, pero que al mismo tiempo no son sencillos de guardar o borrar en algunos sistemas de ficheros de Windows).
Siempre ha sido una buena práctica el hecho de que los scritps de Amiga tengan el flag "s" activado. Los scripts de Amiga ejecutados implícitamente, es decir sin el comando "Execute", no serán ejecutados desde un CD-ROM, ni desde una emulación que no soporte los atributos de fichero específicos de Amiga. Se puede arreglar fácilmente anteponiendo al comando la instrucción "Execute" de AmigaDOS.


En Amiga, sólo hay dos caracteres "ilegales" para los nombres de ficheros y directorios: ":" y "/". Bajo Windows, son "\","/",":","*","?",""" (dobles comillas), "<",">! y "|".
Amiga y Windows cuentan con otros caracteres y nombres de ficheros que pueden acarrear dificultades en ciertos entornos, p.ej Amiga Shell, o el escritorio de Windows, pero no son considerados ilegales a nivel del sistema de ficheros y el software puede acceder a ellos sin problemas. Algunos de estos nombres en Windows son: "CON", "PRN", "AUX", "COMx", "LPTx", "CLOCK$" y "NUL" y todas las variantes con un ". sufijo". Los nombres que consisten solamente en puntos (".", "..", etc) son también "ficheros problemáticos". Por lo general, no es posible manipular tales ficheros desde el escritorio o desde la línea de comandos, pero por ejemplo el emulador de Amiga y la shell POSIX de Windows NT si que pueden hacerlo.

Por ello no se pueden borrar ficheros de Amiga "AUX" ni "AUX.info", desde el escritorio de Windows. Esto resulta molesto a la hora de mover directorios completos que contienen estos ficheros, el proceso suele finalizar con un error. Si no fuera posible evitar el uso de estos nombres de ficheros, la mejor opción es guardarlos en un hardfile Amiga en un lugar de un directorio montado. 

Puede utilizar Amiga Explorer, incluído en Amiga Forever, para copiar ficheros y directorios del Amiga al PC. El programa se encargará de convertir los nombres "ilegales" de ficheros y directorios.
Amiga Explorer es capaz de acceder a un "hardfile virtual" para cada disco duro Amiga. Está en formato HDF, pudiendo copiarse directamente a la emulación. Para montar estos HDF, observe sus propiedades con Amiga Explorer, y tras copiar el fichero al PC, ajuste los valores de la geometría de disco (indicados por Amiga Explorer) en la configuración de WinUAE. Se recomienda tomar nota de estos valores al copiar el hardfile, y guardarlos en un fichero de texto en el mismo directorio que el hardfile.
Amiga Forever y Amiga Explorer son fruto del trabajo de entusiastas que, como muchos otros usuarios de Amiga, decidieron preservar más de 10 años de duro esfuerzo. Con esta filosofía, a la hora de copiar datos importantes de un disco duro Amiga al PC, recomendamos copiar los datos por duplicado, esto es, una vez mediante hardfiles y otra en el sistema de ficheros de Windows. Si fuera posible sería bueno verificar los datos con una herramienta como DirDiff, incluída en Amiga Forever ,(desactivando la opción "Quick"). Es recomendable también guardar una copia de estos datos en un soporte "seguro", como un CD-ROM, en un lugar seco que no esté expuesto a fluctuaciones de temperatura día/noche (que reducen la vida de CDs y otros medios), y preferiblemente en otro edificio diferente al del propio ordenador.
Los ficheros ADF ( y variantes como ADZ, FDI o DMS) son el equivalente en floppy a los hardfiles. Como ocurre con las particiones de disco duro, el contenido de los disquetes de Amiga se puede copiar y utilizar en la emulación mediante el sistema de ficheros de Windows, o montando la imagen del disquete. Si empleamos el primero, y hubiera un Amiga con disco duro disponible, sería más rápido copiar primero los datos del disquete al disco duro de amiga, organizando los datos durante el proceso, y luego copiar todo desde el disco duro al PC.


Artículo publicado en la página web del emulador Amiga Forever
Traducción Lizard7