Hércules (emulador)

Compartir Imprimir Citar

Hercules es un emulador de computadora que permite la ejecución de software escrito para computadoras centrales IBM (System/370, System/390 y zSeries/System z) y para computadoras centrales compatibles con enchufes (como las máquinas Amdahl). en otros tipos de hardware informático, en particular en ordenadores personales de bajo coste. El desarrollo comenzó en 1999 por Roger Bowler, un programador de sistemas de mainframe.

Hercules se ejecuta en varios sistemas operativos principales, incluidos Linux, Microsoft Windows, FreeBSD, NetBSD, Solaris y macOS, y se publica bajo la licencia de software de código abierto QPL. Es similar a Bochs y QEMU en que emula las instrucciones de la CPU y solo selecciona dispositivos periféricos. Un proveedor (o distribuidor) aún debe proporcionar un sistema operativo y el usuario debe instalarlo. Hercules fue el primer emulador de mainframe en incorporar compatibilidad con z/Architecture de 64 bits.

Diseño

El emulador está escrito casi en su totalidad en C. Sus desarrolladores descartaron el uso de código ensamblador específico de la máquina para evitar problemas con la portabilidad, aunque dicho código podría mejorar significativamente el rendimiento. Hay dos excepciones: Hercules usa asistencia de hardware para proporcionar consistencia entre procesadores al emular múltiples CPU en sistemas host SMP, y Hercules usa asistencia de ensamblador para convertir datos entre little-endian y big-endian en plataformas donde el sistema operativo brinda dichos servicios y en procesadores x86/x86-64.

Estado de los sistemas operativos

Hercules es técnicamente compatible con todos los sistemas operativos de mainframe de IBM, incluso con versiones anteriores que ya no se ejecutan en mainframes más nuevos. Sin embargo, muchos sistemas operativos de mainframe requieren licencias de proveedores para ejecutarse legalmente. Los sistemas operativos con licencia más nuevos, como OS/390, z/OS, VSE/ESA, z/VSE, VM/ESA, z/VM, TPF/ESA y z/TPF son técnicamente compatibles pero no pueden ejecutarse legalmente en el emulador de Hercules. excepto en circunstancias muy limitadas, y siempre deben tener una licencia de IBM. El código de control de Coupling Facility de IBM, que habilita Parallel Sysplex, y UTS también requieren licencias para ejecutarse.

Los sistemas operativos que se pueden ejecutar legalmente, sin costos de licencia, en Hercules incluyen:

Debian GNU/Linux ejecutando Hércules

Uso

Hercules se puede usar como un entorno de desarrollo para verificar que el código sea portátil (entre arquitecturas de procesador Linux, por ejemplo), admita multiprocesamiento simétrico (SMP) y sea "limpio" de 64 bits.

También hay una gran comunidad de operadores y programadores de mainframe actuales y anteriores, así como aquellos sin experiencia previa, que utilizan Hercules y los sistemas operativos IBM de dominio público como pasatiempo y con fines de aprendizaje. La mayoría de las habilidades adquiridas al explorar las versiones clásicas del sistema operativo mainframe de IBM siguen siendo relevantes al realizar la transición a máquinas IBM con licencia que ejecutan las últimas versiones.

La naturaleza de código abierto de Hercules significa que cualquiera puede producir su propia versión personalizada del emulador. Por ejemplo, un grupo de desarrolladores independientes del proyecto Hercules implementaron una arquitectura de mainframe híbrida a la que llamaron "S/380" usando modificaciones tanto a Hercules como a versiones clásicas disponibles gratuitamente de MVS (y más tarde VM y DOS/VS), mejorando los sistemas operativos con cierto grado de compatibilidad binaria de 31 bits (y a partir de 2016, 64 bits) con sistemas operativos posteriores versiones (y a partir de 2018, también se admiten 32 bits).

Rendimiento

Es difícil determinar exactamente cómo se corresponde el rendimiento de la emulación de Hercules con el hardware de mainframe real, pero es comprensible que las características de rendimiento sean bastante diferentes. Esto se debe en parte a la dificultad de comparar hardware mainframe real con otras PC y servidores, así como a la falta de comparaciones de rendimiento concretas y controladas. Es probable que las comparaciones de rendimiento sean legalmente imposibles para los sistemas operativos de IBM con licencia, y esos sistemas operativos son bastante diferentes de otros sistemas operativos, como Linux.

Hercules expresa su rendimiento de procesamiento en MIPS. Debido a la antigüedad del hardware System/360 y System/370 anterior, es una suposición relativamente segura que Hercules los superará cuando se ejecute en hardware moderadamente potente, a pesar de la considerable sobrecarga de emular una arquitectura de computadora en el software. Sin embargo, las máquinas System z más nuevas, parcial o totalmente configuradas, superan a Hercules por un amplio margen. Una máquina X86 de procesador dual relativamente rápida que ejecuta Hercules es capaz de soportar alrededor de 50 a 60 MIPS para el código que utiliza ambos procesadores en un entorno realista, con tasas sostenidas que aumentan a 300 MIPS informados en sistemas de clase PC de última generación (principios de 2009).. Hercules puede producir picos de más de 1200 MIPS cuando se ejecuta en un ciclo cerrado, como en un punto de referencia de instrucción sintética o con otros programas pequeños con uso intensivo de cómputo.

Tom Lehmann, cofundador de TurboHercules, escribió:

... Podemos ejecutar una carga de tamaño razonable (800 MIPS con nuestro paquete estándar). Si la máquina en cuestión es más grande que eso, podemos escalar a 1600 MIPS con nuestro paquete basado en quad Nehalem, y se nos ha prometido una máquina basada en Nehalem EX de 8 maneras a principios del año próximo que debe llevarnos a la marca 3200 MIPS. Cualquier cosa más grande que eso es replicado por una colección de sistemas.

Por lo general, Hercules supera a los mainframes basados en PC de IBM de mediados de la década de 1990, que tienen un rendimiento máximo anunciado de alrededor de 29 MIPS. En comparación con los mainframes IBM Multiprise 2000 y 3000 (también de la década de 1990), más potentes pero aún de nivel de entrada, Hercules en hardware x86 típico se consideraría un servidor de gama media en términos de rendimiento. Para cada mainframe después del 9672 Generación 1, Hercules generalmente sería el sistema de gama más baja. A modo de comparación, los sistemas IBM zEnterprise 196 de gama alta de la era de 2010 pueden ofrecer más de 52 000 MIPS por máquina y tienen considerables ventajas de rendimiento de E/S. Con la misma cantidad de procesadores Sys Z emulados, z/PDT es aproximadamente 3 veces más rápido que Hercules.

Tenga en cuenta que hay otros atributos del sistema no funcionales más allá del rendimiento que suelen ser relevantes para los operadores de mainframe.

TurboHércules

En 2009, Roger Bowler fundó TurboHercules SAS, con sede en Francia, para comercializar la tecnología Hercules. En julio de 2009, TurboHercules SAS solicitó a IBM que otorgara licencias de z/OS a sus clientes para su uso en los sistemas vendidos por TurboHercules. IBM rechazó la solicitud de la empresa. En marzo de 2010, TurboHercules SAS presentó una queja ante los reguladores de la Comisión Europea, alegando que IBM infringió las normas antimonopolio de la UE al vincular supuestamente el hardware de mainframe con su sistema operativo de mainframe, y la CE abrió una investigación preliminar. En noviembre de 2010, TurboHercules anunció que había recibido una inversión de Microsoft Corporation. En septiembre de 2011, los reguladores de la CE cerraron su investigación sin tomar medidas.