Mainframe Self-Hosted com Docker: Como o Hercules Emula um Mainframe Real por Baixo dos Panos

Entenda como o Hercules emula o hardware de um mainframe IBM, como o MVS interage com discos e jobs, e qual é o papel do Docker nessa arquitetura clássica.

Mainframe Self-Hosted com Docker: Como o Hercules Emula um Mainframe Real por Baixo dos Panos

Introdução

Quando falamos em mainframe, muita gente ainda imagina salas climatizadas, hardware proprietário caríssimo e acesso restrito a grandes corporações. Essa visão era verdadeira por décadas — mas hoje existe uma forma acessível, realista e extremamente didática de estudar MVS, JCL e COBOL: usando o Hercules, um emulador de mainframe, rodando dentro de containers Docker.

Este artigo aprofunda exatamente nesse ponto.

Você vai entender:

  • O que é o Hercules e qual problema ele resolve
  • Como o Hercules emula um mainframe IBM real
  • O papel das imagens de disco (DASD, TAPE, CKD)
  • Como tudo isso se integra tecnicamente ao Docker
  • O que realmente acontece no backend quando você digita um comando no terminal 3270

O objetivo é ir além do “funciona” e explicar como funciona.

O que é o Hercules Emulator?

O Hercules é um emulador de hardware de mainframe IBM. Diferente de simuladores educacionais, ele reproduz com alto nível de fidelidade o comportamento de sistemas como:

  • IBM System/370
  • ESA/390
  • z/Architecture

Na prática, o Hercules emula:

  • CPU mainframe (instruções de baixo nível)
  • Canais de I/O
  • Dispositivos clássicos (DASD, TAPE, leitores de cartão, impressoras)
  • Consoles de operação

Isso permite rodar sistemas operacionais reais, como:

  • MVS 3.8j
  • VM/370
  • DOS/VS

Sem modificar o código desses sistemas.

👉 Importante: o Hercules não emula software, ele emula hardware. O sistema operacional acredita que está rodando em um mainframe físico.

O que é o MVS 3.8j nesse contexto?

O MVS (Multiple Virtual Storage) é um sistema operacional clássico da IBM. A versão 3.8j é amplamente usada para estudos porque:

  • É estável
  • Funciona bem no Hercules
  • Inclui compiladores COBOL, utilitários JCL e subsistemas essenciais

Quando você sobe um ambiente com Hercules + MVS:

  • Você não está “simulando” COBOL
  • Você está rodando o mesmo ambiente lógico usado historicamente em produção

Como o Hercules Interpreta Imagens de Disco (DASD)

No mundo mainframe, não existe “HD” como conhecemos hoje.

O armazenamento clássico é o DASD (Direct Access Storage Device), normalmente no formato CKD (Count Key Data).

O que são imagens DASD?

Uma imagem DASD é um arquivo que representa:

  • Trilhas
  • Cilindros
  • Registros
  • Metadados de baixo nível

Exemplo:

MVSRES.3390
WORK.3390
USER.3390

Cada arquivo desses é um disco virtual completo.

O papel do Hercules

O Hercules:

  • Abre esses arquivos binários
  • Interpreta a estrutura CKD
  • Traduz operações de I/O do MVS para leitura/escrita nesses arquivos

Para o MVS, isso é indistinguível de um disco físico.

Onde o Docker Entra Nessa Arquitetura?

O Docker não emula nada. Ele apenas:

  • Isola o processo do Hercules
  • Gerencia dependências
  • Facilita deploy e reprodução do ambiente

A arquitetura real fica assim:

[ Terminal 3270 ]
        ↓
[ Porta TCP 3270 ]
        ↓
[ Hercules (processo) ]
        ↓
[ Imagens DASD / TAPE ]
        ↓
[ Volume Docker persistente ]
        ↓
[ Disco do host ]

Volumes Docker são fundamentais

Sem volumes:

  • Toda alteração no MVS seria perdida ao reiniciar o container

Com volumes:

  • Catálogos
  • Programas compilados
  • Jobs JCL
  • Dados de usuário

Tudo permanece intacto.

O Fluxo Completo: Do Teclado ao Mainframe

Vamos detalhar o caminho real de uma ação simples.

Exemplo: executar um JOB JCL

  1. Você digita um comando no terminal 3270
  2. O cliente envia isso via TCP (protocolo 3270)
  3. O Hercules recebe o input
  4. O input é entregue ao console do MVS
  5. O JES (Job Entry Subsystem) interpreta o JCL
  6. O compilador COBOL é acionado
  7. O resultado é gravado no DASD
  8. O Hercules escreve no arquivo .3390
  9. O Docker persiste isso no volume

Nada é “mockado”. Tudo é real.

Por que Isso é Didaticamente Poderoso?

Esse tipo de ambiente força o aprendizado de conceitos que hoje ficam escondidos:

  • Controle explícito de recursos
  • Jobs batch e filas
  • Separação entre sistema, dados e programas
  • Disciplina operacional

Além disso:

  • Você aprende JCL de verdade
  • Você entende o ciclo completo de um job
  • Você percebe como o SO controla tudo

Limitações e Expectativas Realistas

É importante ser honesto:

  • Performance não é o objetivo
  • Interfaces são textuais
  • Debug exige leitura e paciência

Mas isso não é um defeito — é parte da experiência.

Conclusão

Rodar um mainframe com Hercules + Docker não é nostalgia: é engenharia reversa educacional.

Você passa a entender:

  • Como sistemas operacionais realmente funcionam
  • Como dados eram tratados em escala décadas antes da cloud
  • Por que conceitos de batch, filas e jobs ainda influenciam sistemas modernos

Se você quer estudar COBOL, JCL ou simplesmente sistemas operacionais de verdade, esse setup entrega uma das experiências mais ricas que um homelab pode oferecer.

Antes de valorar cada prenda, resulta útil determinar el equipo o la selección de interés. La decisión gana claridad cuando se puede comparar las medidas con una camiseta que ya le quede bien. La búsqueda «» puede servir para reunir datos útiles antes de tomar una decisión. Antes de confirmar la compra, conviene revisar que la descripción coincida con las fotografías.

Antes de valorar cada prenda, resulta útil determinar el equipo o la selección de interés. La decisión gana claridad cuando se puede comparar las medidas con una camiseta que ya le quede bien. La búsqueda «camiseta retro para coleccionistas» puede servir para reunir datos útiles antes de tomar una decisión. Antes de confirmar la compra, conviene revisar que la descripción coincida con las fotografías.

衣装を購入する前に、使用日から逆算して納期と試着時間を確保しておくと安心です。複数の候補を比較する際は、ゴスロリ ワンピース 大きいサイズで仕様の違いを確認できます。商品が届いたら付属品とサイズを早めに確認し、必要な調整を本番前に済ませましょう。