Hunk es el formato de archivo ejecutable de herramientas y programas del sistema operativo Amiga basado en la CPU Motorola 68000 y otros procesadores de la misma familia. El formato de archivo fue definido originalmente por MetaComCo. como parte de TRIPOS , que constituyó la base de AmigaDOS. [ 1 ] Este tipo de ejecutable recibió su nombre del hecho de que el software programado en Amiga está dividido en su estructura interna en muchas partes llamadas hunks , en las que cada porción puede contener código o datos.
Estructura de trozo
Los fragmentos de código en un archivo ejecutable de Amiga pueden ser de varios tipos. Existen fragmentos de 32 bits , de 16 bits e incluso algunos de 8 bits .
Los tipos de fragmentos de código se estandarizaron en AmigaOS y se documentaron detalladamente en el Manual de AmigaDOS, editado por Commodore para explicar a los programadores cómo codificar en Amiga durante los años en que Commodore fabricó ordenadores Amiga. Su estructura estaba oficialmente codificada y solo podía ser modificada por un comité de Commodore, que luego comunicaba las modificaciones a los desarrolladores para las nuevas versiones del sistema operativo Amiga.
La estructura de un fragmento de código Amiga es muy simple: al principio del fragmento hay una cabecera que indica que ese tipo de "porción de código" es un tipo de fragmento de código Amiga conocido y válido, a continuación sigue un ID que indica la longitud del fragmento en sí, y en la parte inferior se encuentra el segmento del fragmento que contiene el código o los datos reales.
Características de los archivos ejecutables de Amiga
Los archivos ejecutables de Amiga se pueden iniciar tanto desde la interfaz gráfica de Amiga, Workbench , como desde el intérprete de línea de comandos de Amiga (llamado CLI, posteriormente AmigaShell).
No se requiere ninguna extensión de archivo específica para los archivos ejecutables de Amiga. Por ejemplo, el miniaplicativo de calculadora " Calculadora " se puede renombrar a " Calculadora.com ", " Calculadora.exe ", " Calculadora.bin " o incluso " Calculadora.jpeg ". Todos estos son nombres válidos para programas o herramientas, ya que AmigaOS no distingue entre extensiones de archivo .
AmigaOS adoptó otro método para reconocer que se trata de un ejecutable válido. Existe una secuencia particular de bytes en la cabecera del archivo, que produce el valor hexadecimal $000003f3 . Esta secuencia, que indica que se trata de un archivo ejecutable y permite su auto-ejecución, se denomina cookie mágica (en referencia a las galletas mágicas de Alicia en el País de las Maravillas de Lewis Carroll ).
Este tipo de solución para identificar archivos ejecutables en Amiga se tomó de soluciones similares que fueron adoptadas por sistemas operativos UNIX / tipo Unix , donde las cookies mágicas se llaman números mágicos .
Estructura de un archivo ejecutable de Amiga
La estructura interna de un archivo ejecutable de Amiga es muy simple. Al principio del archivo se encuentra la cookie mágica, luego se declara el número total de fragmentos en el ejecutable, y justo después se encuentran los números progresivos de fragmentos comenzando desde "0" (cero).
El primer fragmento siempre se numera como cero, por lo que si el ejecutable se subdivide (por ejemplo) en tres fragmentos, estos se numerarán como "0" para el primero, "1" para el segundo y "2" para el tercero, y así sucesivamente.
Justo antes de que comiencen los fragmentos reales hay una tabla que contiene información sobre la longitud de cualquier fragmento presente en el ejecutable, y en la última parte del archivo se ubican los fragmentos reales, cada uno descrito por su nombre de tipo: HUNK_CODE , HUNK_DATA , etcétera.
Representación de la estructura:
Tipos de hombres atractivos
Los tipos de hunk conocidos para Amiga son:
* Formato de fragmento extendido
Metadatos
El Amiga podía guardar metadatos en bloques, ya que la estructura de bloques se podía adaptar fácilmente para admitir esta función, pero el formato de bloques de los ejecutables se abandonó en favor de ELF y no existe ninguna autoridad central (como la destituida Commodore) que pueda implementar esta función como uno de los estándares del Amiga.
El Amiga guarda algunos metadatos en archivos auxiliares conocidos como ".info" (llamados así por el nombre de su sufijo de extensión).
Los archivos ".info" pueden crearse cada vez que se guarda un proyecto (archivo de datos) en el disco. Por ejemplo: cuando el usuario guarda un archivo llamado "MyProject", pueden crearse dos archivos en el disco llamados "MyProject" y "MyProject.info".
El archivo "MyProject" contiene los datos reales del archivo del proyecto, mientras que el archivo "MyProject.info" contiene el icono y la información relativa al software que originó el archivo, por lo que cada vez que se haga clic en el icono del proyecto con el ratón, se abrirá el software principal (los usuarios pueden cambiar esta información en cualquier momento, permitiendo que otros programas crean que ellos crearon el archivo del proyecto en lugar del software original que lo creó físicamente).
En AmigaOS no existe la vinculación de aplicaciones como en otros sistemas como MacOS.
El archivo ".info" también contiene algunas características particulares del archivo del proyecto y los comentarios del usuario.
Los archivos ".info" no aparecen en la pantalla de Workbench (Workbench es la interfaz gráfica de usuario predeterminada de Amiga Desktop). En la pantalla del escritorio solo aparece el icono del archivo de proyecto extraído del archivo ".info". De hecho, el icono es el medio virtual que conecta el proyecto con los metadatos almacenados en el archivo ".info".
Cuando el usuario hace clic en el icono con el botón izquierdo del ratón, el proyecto ".info" llama al programa que lo originó. Al hacer clic en el icono y seleccionar la opción de menú correspondiente, aparecerá un cuadro de diálogo que le permitirá interactuar con los metadatos contenidos en el archivo ".info".
Los archivos ".info" se copian o mueven junto con su archivo de proyecto asociado, moviendo el icono con el ratón, y se pueden ver como un archivo independiente a través de las interfaces de línea de comandos de Amiga, como AmigaShell, o utilizando gestores de archivos o listadores de directorios de terceros como Directory Opus o DiskMaster .
Si el archivo ".info" representa un programa ejecutable, contiene información sobre la pila de búferes de RAM que podrían reservarse para dicho archivo (por ejemplo, 4096, 8192 o 16384 bytes o más de RAM) e incluso los argumentos que podrían invocarse mediante una interfaz de línea de comandos. Por ejemplo, un programa de Amiga podría abrir su propia pantalla de interfaz gráfica de usuario, independiente de la pantalla del escritorio. Al introducir argumentos como "Screen=800x600" y "Depth=8" en el cuadro de diálogo del archivo info, el usuario puede guardar esta información en el archivo ".info" correspondiente, y el programa abriría el software de productividad en su propia pantalla de 800x600 píxeles con una profundidad de color de 8 bits (equivalente a 256 colores).
El usuario también puede eliminar los archivos ".info", pero entonces renunciará a las ventajas de tener un icono que represente el archivo del proyecto en el escritorio, y también perderá todos los metadatos que contiene.
Iconos
Una breve descripción de los iconos de mapa de bits contenidos en los archivos de metadatos ".info":
Los iconos son datos de mapa de bits sin procesar contenidos en archivos ".info" y no son archivos IFF / LBM estándar de Amiga . Los usuarios pueden gestionar los iconos mediante el programa estándar de AmigaOS "IconEdit", presente en el sistema operativo desde sus primeras versiones. A partir de la versión 2.0 de AmigaOS, IconEdit podía importar y guardar archivos IFF/LBM normales utilizados como archivos gráficos estándar en AmigaOS. [ 2 ]
Algunos programas de Amiga, como Personal Paint de Cloanto, pueden ver, cargar y guardar datos de mapas de bits como iconos normales de Amiga o como archivos ".info" de Amiga ya existentes.
Los iconos de Amiga clásicos pueden tener dos estados, utilizando dos imágenes de mapa de bits diferentes. La primera imagen contiene los datos del icono en estado "silencioso". La segunda imagen contiene los datos del icono en estado "seleccionado". Cuando el usuario hace clic en un icono y lo activa, los datos del mapa de bits del icono en estado "silencioso" se reemplazan repentinamente por los del icono seleccionado. Este comportamiento da a los iconos de Amiga el efecto de dibujos animados en movimiento. Si este segundo mapa de bits no existe en el archivo ".info" (no es obligatorio crear ambos), se utiliza un efecto de color inverso cuando el icono está seleccionado.
Existen motores de iconos de terceros que intentan mantener la apariencia de AmigaOS actualizada con los estándares modernos de otros sistemas operativos. Estos programas modifican las rutinas del sistema operativo dedicadas al manejo de iconos, reemplazándolas por otras personalizadas. Uno de estos intentos, NewIcons , se ha convertido prácticamente en el nuevo estándar de facto para AmigaOS 3.x. Su popularidad fue tal que el nuevo sistema de iconos utilizado en AmigaOS 3.5 y versiones posteriores, GlowIcons , se basa en su formato de archivo de iconos.
Todos los sistemas operativos modernos tipo Amiga ( AmigaOS 4 , MorphOS y AROS ) podían asociar datos de mapa de bits RAW, archivos IFF/LBM o también archivos PNG como imagen de mapa de bits interna estándar de cualquier icono.
Archivos ejecutables superpuestos
El tipo HUNK_OVERLAY se diseñó para reducir la cantidad de RAM necesaria para ejecutar un programa. Los ejecutables con una estructura de superposición tienen un nodo raíz que permanece en memoria en todo momento, y el resto del programa se divide en módulos más pequeños que se cargan y descargan automáticamente cuando es necesario. [ 3 ]
El formato Overlay funciona añadiendo pequeños fragmentos de código para que, al ramificarse en un submódulo, se llame a un gestor de superposiciones, que carga el módulo necesario. Commodore definió un gestor de superposiciones estándar para que el código C pudiera insertar automáticamente estos fragmentos y, además, generar una tabla de superposiciones que el gestor estándar supiera leer.
Sin embargo, el formato Overlay se usaba raramente, especialmente de la forma prevista. Era más común usarlo con un gestor de overlay personalizado. Un uso popular del formato overlay era con Titanics Cruncher, [ 4 ] que comprimía ejecutables. En lugar de cargar todo el ejecutable comprimido en la memoria antes de descomprimirlo, Titanics Cruncher usaba un overlay, de modo que solo se cargaba en la memoria un pequeño descompresor, que luego leía y descomprimía los datos sobre la marcha.
Otros formatos de archivos ejecutables utilizados en Amiga
Mediante complementos de terceros, AmigaOS hasta la versión 3.9 reconoce varios tipos de archivos ejecutables distintos del formato Hunk creado para Motorola 68000.
DUENDE
Phase5 implementó ejecutables ELF para sus tarjetas aceleradoras PowerUP. Se consideró engorroso debido a su enlace dinámico. Este formato fue adoptado posteriormente como estándar por AmigaOS 4.0 , MorphOS y AROS . Desarrolladores externos añadieron compatibilidad con ELF a WarpUp, e Hyperion Entertainment lanzó varios juegos de WarpUp exclusivamente en formato ELF. [ 5 ]
Formato Hunk extendido
En 1997, Haage & Partner desarrolló el kernel WarpUp PowerPC para las placas aceleradoras PowerUP. En lugar del formato binario ELF, optaron por ampliar el formato de fragmento existente. El problema con el formato binario ELF era que los usuarios tenían que parchear su sistema para cargar ejecutables ELF y no era posible mezclar código PPC/68k. El formato de fragmento extendido (EHF), desarrollado por Haage & Partner, permitió mezclar código PPC y 68k en un único ejecutable sin modificar el sistema existente si no estaba instalado el acelerador PowerPC. [1] [2] .
AmigaOS 4 y MorphOS
AmigaOS 4.0 y MorphOS pueden ejecutar ELF de forma nativa, pero como estos sistemas fueron diseñados para funcionar en máquinas con procesadores PowerPC, los desarrolladores también añadieron compatibilidad con el software WarpUP, utilizado en AmigaOS 3.9. Además, MorphOS implementa la compatibilidad con el software PowerUp, tal como lo implementó Phase5 para las tarjetas aceleradoras PowerUP.
Ambos sistemas operativos nuevos también pueden ejecutar el formato Amiga Hunk porque implementan el antiguo entorno API de Amiga basado en AmigaOS 3.1, y pueden ejecutar código 68000 mediante emulación.
- Notas:
- ^ Consulte también las páginas relativas ala historia del procesador PPC en Amigaen el sitio web Amiga.History.
- ^ Especificaciones EHFArchivadasel 16/11/2007 enWayback Machine(tambiénen inglés) en el sitio de Haage&Partners.
Véase también
- Comparación de formatos de archivos ejecutables
- vasm, un ensamblador gratuito que forma parte de vbcc
Referencias
- Manual de AmigaDOS, tercera edición (Bantam Books), Commodore Business Machines, julio de 1991. ISBN 0-553-35403-5
- Manual de referencia del kernel de la ROM de Amiga, incluye y Autodocs (3.ª edición; cubierta gris oscuro). Addison-Wesley, 1991. ISBN 0-201-56773-3
- Commodore Business Machines: Notas de la Conferencia de Desarrolladores de Amiga de 1989 , Commodore, 1989. Números de pieza CATS: NOTES89 y NOTES89D
- Commodore Business Machines: V3.1 Amiga Developer Update Disk Set , Commodore, 1994. Número de pieza CATS: AMDEV3.1
(La información de este conjunto de disquetes distribuidos por Commodore a los desarrolladores de Amiga está obsoleta y ha sido actualizada y reemplazada en "The Developer CD").
- Commodore Business Machines: Notas de la Conferencia de Desarrolladores de Amiga de 1988. Commodore , 1988. Números de pieza CATS: NOTES88 y NOTES88D.
- Stephen Levy: Guía del programador de Amiga , Compute! Publications, 1986. ISBN 0-87455-028-9
- Eugene P. Mortimore: Manual del programador de Amiga , Sybex, 1985. ISBN 0-89588-343-0
Notas
- ↑ METACOMCO plc. (1986). Introducción a Tripos .
- ↑ http://krashan.ppa.pl//articles/amigaicons/ Archivado el 25/04/2017 en Wayback Machine algunos detalles
- ↑ http://aminet.net/package/docs/misc/Overlay Documentación sobre archivos binarios de superposición
- ↑ Titanics Cruncher 1.2 (Herramienta/Ejecutivo/Procesador de datos) de Titanics
- ↑ Steffen Haeuser (18 de diciembre de 2002). "Explosión del pasado" . Archivado del original el 23 de abril de 2012. Consultado el 1 de agosto de 2011 .
Enlaces externos
- Amiga se vuelve PowerUP Página de inicio de soporte no oficial de PowerUP
- Descripción de terceros del formato Amiga Hunk
- AmigaOS
- Formatos de archivos ejecutables
- Depuración de formatos de datos
- formatos de archivos informáticos