Hercules (emulador) - Hercules (emulator)

Hércules
Hercules-logo.gif
Hercules-emulator-running-ubuntu.png
Emulador Hercules em execução no Ubuntu
Autor (es) original (is) Roger Bowler
Desenvolvedor (s) Jay Maynard , Jan Jaeger, David "Fish" Trout, Greg Smith, Bernard van der Helm, Ivan Warren e outros
lançamento inicial 1999  ( 1999 )
Versão estável
3.13 / 29 de setembro de 2017 ; 3 anos atrás  ( 29 de setembro de 2017 )
Versão de visualização
4.0.0rc0 / 16 de dezembro de 2016 ; 4 anos atras  ( 2016-12-16 )
Repositório 3.xx spinhawk 4.xx hyperion
Escrito em C
Sistema operacional Plataforma cruzada
Modelo Emulador
Licença Q Licença Pública
Local na rede Internet www .hercules-390 .eu
www .hercules-390 .org
4.x Hyperion SoftDevLabs
Desenvolvedor (s) David B. Trout
Versão estável
4.3 / 27 de novembro de 2020 ; 3 meses atrás  ( 2020-11-27 )
Repositório github .com / sdl-hercules-390 / hyperion
Local na rede Internet www .sdl-hercules-390 .org

Hercules é um emulador de computador que permite que software escrito para computadores IBM mainframe ( System / 370 , System / 390 e zSeries / System z ) e que mainframes compatíveis com plugue (como máquinas Amdahl ) sejam executados em outros tipos de hardware de computador, especialmente em baixo -custo de computadores pessoais . O desenvolvimento começou em 1999 por Roger Bowler, um programador de sistemas de mainframe.

O Hercules é executado em vários sistemas operacionais principais , incluindo Linux , Microsoft Windows , FreeBSD , NetBSD , Solaris e Mac OS X e é lançado sob a licença de software de código aberto QPL . É análogo a Bochs e QEMU porque emula as instruções da CPU e seleciona apenas dispositivos periféricos. Um fornecedor (ou distribuidor) ainda deve fornecer um sistema operacional e o usuário deve instalá-lo. Hercules foi o primeiro emulador de mainframe a incorporar suporte z / Architecture de 64 bits .

Projeto

O emulador é escrito quase inteiramente em C . Seus desenvolvedores descartaram o uso de código assembly específico à máquina para evitar problemas de portabilidade, embora esse código pudesse melhorar significativamente o desempenho. Há duas exceções: o Hercules usa assistências de hardware para fornecer consistência entre processadores ao emular várias CPUs em sistemas host SMP e o Hercules usa assistências de assembler para converter entre dados little-endian e big-endian em plataformas onde o sistema operacional fornece esses serviços e em processadores x86 / x86-64 .

Status dos sistemas operacionais

O Hercules é tecnicamente compatível com todos os sistemas operacionais de mainframe IBM, até mesmo com versões mais antigas que não funcionam mais em mainframes mais novos. No entanto, muitos sistemas operacionais de mainframe exigem licenças do fornecedor para funcionar legalmente. Sistemas operacionais licenciados mais recentes, como o OS / 390 , z / OS , VSE / ESA , z / VSE , VM / ESA , z / VM , TPF / ESA , e z / TPF são tecnicamente compatíveis, mas não podem legalmente executar no emulador Hercules exceto em circunstâncias muito limitadas e devem sempre ser licenciados pela IBM. O código de controle Coupling Facility da IBM , que ativa o Parallel Sysplex e o UTS, também requer licenças para execução.

Os sistemas operacionais que podem ser executados legalmente, sem custos de licença, no Hercules incluem:

  • Sistemas operacionais IBM mais antigos, incluindo OS / 360 , DOS / 360 , DOS / VS , MVS , VM / 370 e TSS / 370, que são de domínio público ou "software protegido por direitos autorais fornecido gratuitamente".
  • O sistema operacional MUSIC / SP pode estar disponível para fins educacionais e de demonstração mediante solicitação ao detentor dos direitos autorais, a McGill University . Alguns dos recursos do MUSIC / SP, notavelmente a rede, requerem z / VM (e, portanto, uma licença IBM). No entanto, uma versão de demonstração completa do MUSIC / SP, empacotada com o emulador de mainframe Sim390 alternativo, está disponível.
  • O Michigan Terminal System (MTS) versão 6.0A foi adaptado para funcionar no Hercules.
  • Não há nenhuma restrição legal conhecida para a execução de sistemas operacionais de código aberto Linux no IBM Z e OpenSolaris para System z no emulador Hercules. Eles funcionam bem no Hercules, e muitos desenvolvedores do Linux no IBM Z fazem seu trabalho usando o Hercules. Vários distribuidores fornecem versões z / Architecture de 64 bits do Linux e alguns também fornecem versões compatíveis com ESA / 390 . As distribuições de mainframe Linux incluem SUSE Linux Enterprise Server , Red Hat Enterprise Linux , Debian , CentOS e Slackware . A Sine Nomine Associates trouxe o OpenSolaris para o System z, contando com os recursos fornecidos pelo z / VM. A emulação desses recursos z / VM específicos para OpenSolaris está incluída a partir do Hercules versão 3.07.
  • Certos editores e utilitários não sobrecarregados que podem ser executados em um mainframe sem um sistema operacional pai podem estar disponíveis para serem executados no Hercules também.
Debian GNU / Linux rodando em Hercules
  • PDOS / 3X0 (sistema operacional de domínio público, versão de mainframe)

Uso

O Hercules pode ser usado como um ambiente de desenvolvimento para verificar se o código é portátil (em arquiteturas de processador Linux, por exemplo), suporta multiprocessamento simétrico (SMP) e é "limpo" de 64 bits.

Há também uma grande comunidade de programadores e operadores de mainframe atuais e antigos, bem como aqueles sem experiência anterior, que usam o Hercules e os sistemas operacionais IBM de domínio público como hobby e para fins de aprendizagem. A maioria das habilidades adquiridas ao explorar as versões clássicas do sistema operacional de mainframe IBM ainda são relevantes durante a transição para máquinas IBM licenciadas executando as versões mais recentes.

A natureza de código aberto do Hercules significa que qualquer pessoa pode produzir sua própria versão personalizada do emulador. Por exemplo, um grupo de desenvolvedores independente do projeto Hercules implementou uma arquitetura de mainframe híbrida que eles apelidaram de "S / 380" usando modificações tanto no Hercules quanto nas versões clássicas do MVS (e posterior VM e DOS / VS), aprimorando o sistemas operacionais com algum grau de compatibilidade binária de 31 bits (e a partir de 2016, 64 bits) com versões posteriores do sistema operacional (e a partir de 2018, 32 bits também são suportados).

Desempenho

É difícil determinar exatamente como o desempenho da emulação Hercules corresponde ao hardware real de mainframe, mas as características de desempenho são compreensivelmente bem diferentes. Em parte, isso se deve à dificuldade de comparar o hardware real de mainframe com outros PCs e servidores, bem como à falta de comparações de desempenho controladas e concretas. As comparações de desempenho são provavelmente legalmente impossíveis para sistemas operacionais IBM licenciados, e esses sistemas operacionais são bastante diferentes de outros sistemas operacionais, como o Linux.

Hercules expressa seu desempenho de processamento em MIPS . Devido à idade do hardware System / 360 e System / 370 anterior, é relativamente seguro supor que o Hercules irá superá-los quando executado em hardware moderadamente poderoso, apesar da sobrecarga considerável de emular uma arquitetura de computador em software. No entanto, as máquinas System z mais novas, parcialmente ou totalmente configuradas superam o Hercules por uma larga margem. Uma máquina X86 de processador duplo relativamente rápida executando Hercules é capaz de sustentar cerca de 50 a 60 MIPS para código que utiliza ambos os processadores em um ambiente realista, com taxas sustentadas aumentando para 300 MIPS relatados em sistemas de ponta (início de 2009) de classe de PC . O Hercules pode produzir picos de mais de 1200 MIPS ao ser executado em um loop restrito, como em um benchmark de instrução sintética ou com outros programas pequenos de computação intensiva.

Tom Lehmann, cofundador da TurboHercules, escreveu:

... Podemos executar uma carga de tamanho razoável (800 MIPS com nosso pacote padrão). Se a máquina em questão for maior do que isso, podemos escalar para 1600 MIPS com nosso pacote baseado em Nehalem quad, e nos foi prometido uma máquina baseada em Nehalem EX de 8 vias no início do próximo ano que deve nos levar à marca de 3200 MIPS. Qualquer coisa maior do que isso é replicado por uma coleção de sistemas.

O Hercules geralmente supera os mainframes baseados em PC da IBM em meados da década de 1990, que têm um desempenho máximo anunciado de cerca de 29 MIPS. Comparado com os mainframes IBM Multiprise 2000 e 3000 mais poderosos, mas ainda de nível básico (também da década de 1990), o Hercules em hardware x86 típico seria considerado um servidor de médio porte em termos de desempenho. Para cada mainframe após 9672 Geração 1, o Hercules geralmente seria o sistema de extremidade inferior. Para comparação, os atuais sistemas IBM zEnterprise 196 de última geração podem fornecer mais de 52.000 MIPS por máquina e têm vantagens consideráveis ​​de desempenho de E / S. Com o mesmo número de processadores Sys Z emulados, z / PDT é cerca de 3 vezes mais rápido que o Hercules.

Observe que existem outros atributos de sistema não funcionais além do desempenho que são normalmente relevantes para operadores de mainframe.

TurboHercules

Em 2009, Roger Bowler fundou a TurboHercules SAS, com sede na França, para comercializar a tecnologia Hercules. Em julho de 2009, a TurboHercules SAS solicitou à IBM a licença do z / OS para seus clientes para uso em sistemas vendidos pela TurboHercules. A IBM recusou o pedido da empresa. Em março de 2010, a TurboHercules SAS apresentou uma queixa aos reguladores da Comissão Europeia , alegando que a IBM infringia as regras antitruste da UE por meio de sua suposta vinculação de hardware de mainframe a seu sistema operacional de mainframe, e a CE abriu uma investigação preliminar. Em novembro de 2010, a TurboHercules anunciou que havia recebido um investimento da Microsoft Corporation. Em setembro de 2011, os reguladores da CE encerraram sua investigação sem ação.

Veja também

Referências

links externos