Hercules (emulador)
# Hercules (emulador)

Hercules es un emulador de computadora que permite que el software diseñado para las computadoras mainframe de IBM sea ejecutado en otros tipos de hardware, en especial en computadoras personales de bajo costo. Aunque existen otros emuladores de mainframe que realizan una función similar, Hercules es significativo por permitirle a individuos el ejecutar software escrito para mainframes en sus propios equipos. Hercules puede ejecutarse en varios sistemas operativos, incluyendo Linux, Windows, FreeBSD, Solaris y Mac OS X, y está liberado bajo la licencia de código abierto QPL. Es análogo a Bochs y a QEMU en cuando a que emula solamente las instrucciones de la CPU y de los dispositivos periféricos;por el usuario. Hercules fue el primer emulador de mainframe que incorporó soporte para la arquitectura z/Architecture de 64 bits, adelantándose a las alternativas comerciales.

Roger Bowler, un programador de sistemas mainframe, comenzó el desarrollo del emulador Hercules en 1999. Jay Maynard es quien actualmente mantiene y hospeda el proyecto.

## Diseño

El emulador está escrito casi totalmente en el lenguaje de programación C. El código ensamblador específico, que otros emuladores utilizan, fue descartado debido a su falta de portabilidad, a pesar de las mejoras en rendimiento que ofrece. Hay dos excepciones: se utilizan ayudas basadas en hardware para proporcionar consistencia entre procesadores cuando se emulan múltiples unidades de procesamiento en sistemas que soportan SMP. También se utilizan fragmentos de ensamblador para convertir entre datos little-endian y big-endian en plataformas donde el sistema operativo lo soporta, o si el procesador anfitrión es miembro de las familias x86 o x86-64.

## Sistemas operativos soportados

Hercules es compatible técnicamente con todos los sistemas operativos para mainframes IBM, incluyendo aquellas versiones que ya no están soportadas por mainframes recientes. Sin embargo, varios sistemas operativos de mainframe necesitan licencias para poder ejecutarlos legalmente.

