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.
Neste artigo
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
- Você digita um comando no terminal 3270
- O cliente envia isso via TCP (protocolo 3270)
- O Hercules recebe o input
- O input é entregue ao console do MVS
- O JES (Job Entry Subsystem) interpreta o JCL
- O compilador COBOL é acionado
- O resultado é gravado no DASD
- O Hercules escreve no arquivo .3390
- 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.