☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

Mostrar mensagens com a etiqueta lpar. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta lpar. Mostrar todas as mensagens

sexta-feira, 13 de março de 2026

🖖 “Scotty, Teletransporte Já!” — O Dia em que o Mainframe Aprendeu a Viajar Mais Rápido que a Luz (e Deixou o Dr. Spock Intrigado)

 

Bellacosa Mainframe comenta sobre o hipersocket o teletransporte do Ibm Mainframe

🖖 “Scotty, Teletransporte Já!” — O Dia em que o Mainframe Aprendeu a Viajar Mais Rápido que a Luz (e Deixou o Sr. Spock Intrigado)

Padawan… aproxime-se do console 3270.
Hoje você não vai aprender apenas uma tecnologia.
Vai descobrir um dos truques mais elegantes, silenciosos e quase “alienígenas” do IBM Z.

Uma tecnologia tão absurda que, se existisse na USS Enterprise, o Dr. Spock levantaria uma sobrancelha e diria:

“Fascinante.”

Estamos falando do lendário — e subestimado — HiperSockets.


🚀 O que é HiperSockets (sem enrolação acadêmica)

HiperSockets é uma rede TCP/IP completamente interna ao mainframe, baseada em memória.

Sem:

  • ❌ cabos

  • ❌ placas de rede externas

  • ❌ switches

  • ❌ roteadores

  • ❌ latência física

👉 É comunicação entre sistemas… sem sair da máquina.

Se várias LPARs são universos paralelos dentro do IBM Z, o HiperSockets é o portal dimensional entre eles.


🖖 Analogia Star Trek — Teletransporte do Enterprise

Quando a tripulação se transporta:

USS Enterprise → superfície do planeta

Eles não pegam nave auxiliar.
Não atravessam o espaço.
Não passam pelo “trânsito orbital”.

👉 Eles simplesmente desaparecem aqui… e reaparecem lá.

HiperSockets faz exatamente isso com pacotes TCP/IP.

Fluxo de pacotes via tcpip normal


Sem:

CPU → NIC → cabo → switch → roteador → firewall → outro servidor

Fluxo de pacotes tcpip via hipersocket mainframe


Mas sim:

CPU → memória → outra LPAR → pronto

Se o Spock fosse arquiteto de sistemas, ele diria:

“Altamente lógico. A rede externa é… desnecessária.”


🧠 Como funciona (o segredo técnico)


O coração da tecnologia é um hardware especial:

➡️ IQD — Internal Queued Direct Communication

Ele permite que diferentes LPARs troquem dados através de filas na memória compartilhada, sob controle do PR/SM (hipervisor do Z).

Para o sistema operacional:

👉 Parece uma interface de rede normal
👉 Usa TCP/IP padrão
👉 Funciona com aplicações sem modificação

Mas fisicamente…

Nada saiu da máquina.


📜 Origem e História — Quando a IBM “trapaceou” na rede

HiperSockets apareceu no final dos anos 1990 / início dos 2000, junto com a evolução dos mainframes para ambientes massivamente virtualizados.

Problema da época:

💣 Muitas LPARs
💣 Muito tráfego interno
💣 Gargalo nas redes físicas
💣 Latência desnecessária

A IBM fez algo tipicamente “mainframe”:

“E se a gente simplesmente não usar a rede?”

Resultado: uma LAN interna de velocidade absurda.


🔥 Aplicações práticas (mundo real)

Padawan, isto aqui move bancos, bolsas e governos.

Usos clássicos:

✔ z/OS ↔ Linux on Z
✔ Application server ↔ DB2
✔ CICS ↔ Middleware
✔ Batch ↔ serviços online
✔ Comunicação entre LPARs de produção
✔ Gateways internos de APIs
✔ Ambientes Parallel Sysplex

Em sistemas financeiros de altíssimo volume, HiperSockets é praticamente obrigatório.


⚡ Por que é tão rápido?

Porque elimina o inimigo número 1 da computação distribuída:

👉 A rede física

Sem interrupções externas:

  • Sem congestionamento

  • Sem jitter

  • Sem perda de pacote

  • Sem latência de hardware externo

  • Sem overhead de drivers físicos

É comunicação memória → memória.


🔒 Segurança digna da Seção 31

O tráfego:

🛡️ Nunca sai da máquina
🛡️ Não pode ser sniffado externamente
🛡️ Não depende de infraestrutura de rede
🛡️ Reduz superfície de ataque

Em ambientes críticos, isso é ouro puro.


🥚 Easter Egg Mainframe — O detalhe que poucos contam

HiperSockets usa endereçamento IP normal.

Sim.

Você pode fazer um:

PING 10.x.x.x

…e estar falando com outro sistema que literalmente está:

👉 No mesmo gabinete
👉 Na mesma CPU
👉 A poucos nanossegundos de distância

É como enviar uma carta para a sala ao lado… usando o protocolo postal internacional.


🤯 Curiosidade que faz arquitetos sorrirem

Em data centers distribuídos, gasta-se milhões para reduzir latência de rede.

No IBM Z, muitas vezes a solução é:

“Coloque tudo dentro da mesma máquina.”


🧙‍♂️ Versão Bellacosa para guardar na alma

Se servidores distribuídos são naves viajando pelo espaço…
o IBM Z é um universo inteiro dentro de uma única estrela.

E o HiperSockets é o teletransporte.


🖖 Epílogo — Spock aprovaria?

Sem dúvida.

Porque é:

✔ Elegante
✔ Eficiente
✔ Discreto
✔ Extremamente lógico
✔ Assustadoramente poderoso

Exatamente como a engenharia Vulcana.


 



sexta-feira, 27 de setembro de 2024

Hypervisor no Mainframe sem Mistérios

 

Bellacosa Mainframe e o hypervisor no mainframe sem misterios

☕ Um Café no Bellacosa Mainframe

Hypervisor no Mainframe sem Mistérios

Como um IBM Z Executa Centenas de Servidores ao Mesmo Tempo — O Guia Definitivo para o Programador COBOL Padawan Inspirado em Star Trek

"A lógica é o começo da sabedoria, não o fim."

— Sr. Spock


Introdução — A Grande Ilusão da Computação

Imagine entrar na ponte da USS Enterprise.

O Capitão Kirk acredita que possui uma nave inteira à sua disposição.

O engenheiro Scotty controla motores, energia e sistemas.

O Dr. McCoy utiliza computadores médicos.

Spock executa simulações científicas.

Cada um acredita possuir recursos exclusivos.

Mas existe apenas uma única nave.

O segredo é que existe um sistema extremamente inteligente distribuindo recursos para todos ao mesmo tempo.

No IBM Z acontece exatamente isso.

Para um programador COBOL iniciante, isso pode parecer magia.

Na realidade, trata-se de uma das maiores invenções da história da computação:

o Hypervisor.

E a parte curiosa?

O mainframe fazia isso quando o restante do mundo ainda estava tentando descobrir como compartilhar um computador entre vários usuários.


Antes de tudo...

Muita gente pensa que virtualização nasceu com VMware.

Spoiler...

Não nasceu.

A IBM já fazia virtualização completa décadas antes da Internet existir.

Quando o primeiro PC da IBM apareceu em 1981, os mainframes já executavam dezenas de sistemas operacionais simultaneamente.

Isso muda completamente a perspectiva histórica.


O que é um Hypervisor?

A definição técnica é simples.

Um Hypervisor é um software (ou firmware especializado) responsável por criar computadores virtuais.

Cada computador virtual recebe:

  • memória

  • CPUs

  • discos

  • placas de rede

  • dispositivos

  • acesso ao hardware

Tudo isso sem possuir fisicamente esses equipamentos.

Para o sistema operacional convidado (Guest OS), parece existir um computador inteiro.

Na verdade...

Ele está dividindo recursos com centenas de outros sistemas.


Uma analogia Bellacosa

Imagine um enorme prédio comercial.

Existe:

  • uma única estrutura

  • um único elevador

  • uma única instalação elétrica

  • um único sistema hidráulico

Mas existem centenas de empresas trabalhando ali.

Cada empresa acredita possuir seu próprio escritório.

Quem administra tudo?

O síndico.

No mundo da computação...

O síndico chama-se Hypervisor.


O problema que ele resolve

Nos anos 60 um computador custava milhões de dólares.

Não fazia sentido deixá-lo executando apenas um sistema.

Era desperdício.

A IBM percebeu isso rapidamente.

A ideia era simples:

"Se o computador é poderoso, por que não criar vários computadores dentro dele?"

Nascia a virtualização.


A origem histórica

Voltamos para 1964.

IBM System/360.

Era revolucionário.

Mas ainda executava apenas um sistema operacional por vez.

Logo depois veio o projeto:

CP-40

Depois:

CP-67

Esses projetos deram origem ao:

VM/370

E praticamente toda a indústria copiou essa ideia décadas depois.

Curiosamente...

A palavra "Virtual Machine" já era usada pela IBM muito antes do VMware existir.


Linha do tempo

1964

System/360

1967

CP-40

1968

CP-67

1972

VM/370

1988

PR/SM

1990

LPAR

2000+

z/VM

Hoje

IBM z16

IBM z17

Linux

z/OS

z/VM

KVM

Todos convivendo na mesma máquina.


O nascimento das Máquinas Virtuais

Imagine possuir um computador enorme.

O Hypervisor cria:

Computador A

Computador B

Computador C

Computador D

Todos são imaginários.

Mas funcionam como computadores reais.

Cada um pode instalar:

  • Linux

  • z/OS

  • z/VM

  • z/VSE

  • z/TPF

Sem interferir uns nos outros.


Como isso funciona?

O Hypervisor controla quatro grandes recursos.

CPU

Quando um sistema precisa processar algo...

Ele pede CPU.

O Hypervisor responde:

"Espere sua vez."

Em microssegundos ele alterna entre centenas de sistemas.

Para cada sistema parece possuir uma CPU exclusiva.


Memória

O mesmo acontece com RAM.

Cada máquina virtual acredita possuir memória exclusiva.

Na realidade...

Toda memória é compartilhada cuidadosamente.


Disco

Cada sistema possui seus próprios discos.

Mas muitas vezes esses discos são apenas áreas reservadas dentro de grandes volumes físicos.


Rede

Cada servidor virtual possui placas de rede.

Elas também podem ser totalmente virtuais.

O Hypervisor conecta tudo internamente.

Sem sequer sair do equipamento.


Parece mágica?

Não.

É matemática.

E engenharia.

Muita engenharia.


Hypervisor Tipo 1

Existem dois tipos.

O mais poderoso é:

Bare Metal.

Ou:

Tipo 1.

Ele roda diretamente sobre o hardware.

Sem Windows.

Sem Linux.

Sem intermediários.

É exatamente o caso do IBM Z.


Hypervisor Tipo 2

Neste caso existe um sistema operacional.

Windows

VMware Workstation

Máquinas Virtuais

O desempenho é menor.


No IBM Z é diferente

Hardware

Firmware

PR/SM

LPARs

z/VM

Linux

Aplicações

Existe uma enorme hierarquia.

Cada camada aumenta a flexibilidade.


PR/SM

Aqui mora um dos segredos do mainframe.

PR/SM significa:

Processor Resource/System Manager.

Ele é considerado um Hypervisor de nível extremamente baixo.

Na prática...

Ele divide o computador físico em diversas LPARs.


O que é uma LPAR?

Significa:

Logical Partition.

É praticamente um computador inteiro.

Pode possuir:

12 CPUs

64 GB RAM

20 discos

10 interfaces de rede

Enquanto outra LPAR possui recursos completamente diferentes.


Imagine uma pizza

Uma pizza inteira representa o IBM Z.

Você corta em:

4 fatias.

Cada fatia torna-se uma LPAR.

Cada LPAR acredita possuir sua própria pizza.

Mesmo pertencendo à mesma pizza original.


E depois entra o z/VM

Agora vem a parte divertida.

Dentro de uma LPAR...

Pode existir outro Hypervisor.

Esse Hypervisor chama-se:

z/VM.

Agora temos:

IBM Z

LPAR

z/VM

500 máquinas Linux

Containers

Aplicações

Sim.

Virtualização dentro da virtualização.

É como um espelho refletindo outro espelho.


Star Trek explica isso muito bem

Lembra do Holodeck?

O Holodeck cria ambientes completos.

Cada personagem acredita estar vivendo num mundo real.

Mas tudo acontece dentro da Enterprise.

O Hypervisor faz exatamente isso.

Cada sistema operacional acredita possuir um computador físico.

Na realidade...

Está dentro do "Holodeck" do IBM Z.


Por que isso é tão importante?

Porque aumenta:

  • utilização

  • segurança

  • disponibilidade

  • economia

  • flexibilidade


Segurança

Cada máquina virtual fica isolada.

Se uma apresentar problema...

As demais continuam funcionando.

É como compartimentos estanques de uma nave estelar.

Uma explosão na Engenharia não destrói a ponte.


Alta disponibilidade

Imagine atualizar um Linux.

Os outros continuam funcionando.

Atualizar uma aplicação.

As demais continuam.

Trocar memória.

Trocar CPU.

Adicionar discos.

Tudo quase sem impacto.


Eficiência absurda

Um servidor x86 costuma operar entre:

15%

30%

de utilização.

Um IBM Z frequentemente trabalha entre:

80%

95%

de utilização.

Sem perda significativa de desempenho.

Esse é um dos grandes diferenciais do mainframe.


Compartilhamento Inteligente

O Hypervisor conhece prioridades.

Um banco pode receber mais CPU.

Uma aplicação de testes recebe menos.

Tudo automático.


Dynamic Resource Allocation

Outro recurso fantástico.

É possível aumentar CPUs.

Adicionar memória.

Modificar prioridades.

Tudo enquanto o sistema continua funcionando.

Sem reboot.

Isso impressiona até hoje.


Como isso afeta um programador COBOL?

Muito mais do que parece.

Seu programa roda dentro de:

COBOL

LE Runtime

z/OS

LPAR

PR/SM

Hardware

Você raramente percebe.

Mas o Hypervisor trabalha silenciosamente por trás.


Quando um COBOL executa

Imagine um programa de folha de pagamento.

Ele solicita CPU.

O z/OS solicita recursos.

O PR/SM entrega processadores.

Tudo acontece em microssegundos.

Você nunca percebe.

Mas existe um verdadeiro maestro coordenando toda essa orquestra.


O que acontece se houver excesso de carga?

O Hypervisor redistribui recursos.

Algumas LPARs recebem mais CPU.

Outras esperam alguns microssegundos.

Tudo automaticamente.


Curiosidade impressionante

Um único IBM Z pode executar milhares de máquinas virtuais Linux.

Tudo dentro do mesmo equipamento.

Consumindo menos energia que centenas de servidores distribuídos.

É por isso que grandes bancos continuam investindo em mainframe.


Easter Egg nº 1

A expressão Virtual Machine ficou famosa nos PCs.

Mas ela nasceu dentro da IBM.

Décadas antes.


Easter Egg nº 2

O VMware foi fundado apenas em 1998.

O VM/370 existia desde 1972.

Mais de 25 anos antes.


Easter Egg nº 3

A maioria dos administradores VMware nunca imaginou que muitos conceitos modernos foram herdados direta ou indiretamente dos laboratórios da IBM.


Easter Egg nº 4

O PR/SM possui certificação de isolamento extremamente rigorosa (EAL5+ em avaliações Common Criteria para determinadas configurações), permitindo que workloads de diferentes níveis de confiança coexistam com forte separação lógica. Isso é um dos motivos pelos quais governos e grandes instituições financeiras confiam na plataforma.


Dicas para o Padawan COBOL

✔ Nunca pense que seu programa "está sozinho".

Sempre existe uma camada abaixo dele.


✔ Aprenda o conceito de LPAR.

Você verá esse termo praticamente todos os dias.


✔ Entenda o z/VM.

Mesmo trabalhando apenas com COBOL.

Ele aparece frequentemente em ambientes Linux on Z.


✔ Estude PR/SM.

Poucos desenvolvedores conhecem.

Mas quem entende virtualização compreende muito melhor o IBM Z.


✔ Não confunda LPAR com Máquina Virtual.

LPAR é uma partição lógica criada diretamente pelo PR/SM. Dentro de uma LPAR, o z/VM pode criar centenas ou milhares de máquinas virtuais.


Comparação rápida

Universo Star TrekIBM Z
USS EnterpriseHardware físico
HolodeckHypervisor
Ponte de ComandoLPAR
Simulações do HolodeckMáquinas Virtuais
ScottyAdministrador do sistema
SpockWLM e gerenciamento inteligente de recursos
Computador da navePR/SM + z/VM

Lições aprendidas

Existe um mito de que virtualização é uma tecnologia moderna.

Na realidade, ela nasceu no mundo dos mainframes.

O IBM Z não apenas executa programas COBOL. Ele hospeda diversos sistemas operacionais, milhares de aplicações e enormes ambientes Linux com isolamento, segurança e desempenho excepcionais. O hypervisor — especialmente o PR/SM, complementado pelo z/VM quando necessário — é o grande responsável por essa façanha.

Quando um programador COBOL envia um JOB pelo JCL, acessa Db2, CICS ou IMS, dificilmente percebe que há uma sofisticada infraestrutura distribuindo CPUs, memória, dispositivos e redes em tempo real. Assim como a tripulação da Enterprise confia que a nave responderá a cada comando, o desenvolvedor confia que o IBM Z entregará recursos quando forem necessários.

E talvez essa seja a maior lição do universo de Star Trek aplicada ao mainframe: a tecnologia mais extraordinária é aquela que trabalha tão bem que quase se torna invisível. O hypervisor é esse "oficial silencioso" da nave. Ele não aparece na tela 3270, não compila programas COBOL e não executa SQL, mas sem ele grande parte da eficiência, da disponibilidade e da confiabilidade que tornaram o IBM Z uma referência mundial simplesmente não existiria.

Como diria o Sr. Spock:

"A eficiência não está em possuir mais recursos, mas em utilizá-los com inteligência."

Essa frase resume perfeitamente a filosofia do hypervisor no IBM Z: transformar um único computador físico em uma verdadeira frota de computadores virtuais, trabalhando em perfeita harmonia há mais de cinco décadas.


sábado, 20 de julho de 2024

Road Map para Aprender Mainframe

Bellacosa Mainframe e o roadmap mainframe 


☕ Um Café no Bellacosa Mainframe

A Volta ao Mainframe em 80 Dias — O Road Map de Phileas Fogg para se Tornar um Mainframeiro

🎩🦖 80 dias, oito grandes escalas, COBOL, JCL, z/OS, TSO/ISPF, VSAM, Db2, CICS, RACF, Git, APIs e uma aposta aparentemente impossível: sair de Londres como turista e voltar como programador mainframe

Londres.

Reform Club.

Um cavalheiro inglês consulta seu relógio.

Phileas Fogg.

Metódico.

Pontual.

Imperturbável.

Um homem capaz de tomar café às 08:23 e provavelmente considerar uma execução às 08:24 um incidente de produção.

Sobre a mesa está o Daily Telegraph.

Mas existe uma notícia estranha:

“É possível aprender mainframe em apenas 80 dias?”

Os cavalheiros riem.

Um deles comenta:

— Mainframe? Meu caro Fogg, seriam necessários anos!

Outro acrescenta:

— COBOL possui DIVISIONs!

Um terceiro, claramente traumatizado:

— E existe JCL!

Fogg fecha o jornal.

Consulta o relógio.

Oitenta dias.

Silêncio.

— Impossível!

Fogg responde:

“Então aposto vinte mil libras.”

Nesse exato momento, seu criado Passepartout percebe que provavelmente escolheu o pior dia da história para começar no emprego.

Pegam as malas.

Destino:

IBM Z.

E assim começa nossa...

🌍 VOLTA AO MAINFRAME EM 80 DIAS


🗺️ O mapa da expedição

Nossa viagem terá oito grandes escalas:

LONDRES
   ↓
z/OS + TSO/ISPF
   ↓
SUEZ
   ↓
JCL + JES2 + SDSF
   ↓
BOMBAIM
   ↓
COBOL
   ↓
CALCUTÁ
   ↓
VSAM + DATASETS
   ↓
HONG KONG
   ↓
Db2
   ↓
YOKOHAMA
   ↓
CICS
   ↓
SAN FRANCISCO
   ↓
RACF + USS + Zowe + Git + APIs
   ↓
NOVA YORK
   ↓
INTEGRAÇÃO + DEVOPS + TESTES
   ↓
LONDRES

80 dias.

Não para transformar alguém em especialista.

Isso seria picaretagem.

Mas para fazer algo perfeitamente possível:

construir um mapa mental sólido do ecossistema mainframe e conseguir desenvolver, executar, investigar e integrar uma aplicação simples.

Temos uma aposta.

O relógio começou.


🎩 DIAS 1–10 — LONDRES

Primeira escala: entender o monstro

Antes de programar mainframe precisamos cometer um ato revolucionário:

entender o que é um mainframe.

Não é:

“um computador velho.”

Também não é:

“um PC gigante.”

E definitivamente não é aquele monitor verde que Hollywood coloca em filmes quando alguém precisa invadir o Pentágono.

Precisamos compreender conceitos básicos:

IBM Z
   ↓
z/OS
   ↓
LPAR
   ↓
CPU / CP / zIIP
   ↓
MEMÓRIA
   ↓
STORAGE
   ↓
I/O

E principalmente:

por que essas máquinas existem?

Bancos.

Seguradoras.

Governos.

Companhias aéreas.

Cartões.

Grandes varejistas.

Ambientes que precisam processar volumes enormes com confiabilidade e previsibilidade.


🏛️ Dia 1 — Arquitetura

Aprenda:

IBM Z
LPAR
PR/SM
z/OS
JES
USS
STORAGE

Não tente decorar tudo.

Objetivo:

saber desenhar aproximadamente onde sua aplicação vive.


🖥️ Dias 2–4 — TSO e ISPF

Phileas Fogg entra pela primeira vez no terminal.

Tela:

---------------- ISPF PRIMARY OPTION MENU ----------------

0  Settings
1  View
2  Edit
3  Utilities
4  Foreground
5  Batch
6  Command

Passepartout pergunta:

— Monsieur, onde está o mouse?

Fogg:

— Não precisamos dele.

Passepartout começa a reconsiderar suas escolhas profissionais.

Aprenda:

TSO
ISPF
PF KEYS
COMMAND LINE
MEMBERS
LIBRARIES
EDIT
VIEW
BROWSE

E comandos fundamentais do editor:

I
D
R
C
M
A
B
CC
MM

Aqui começa a alfabetização mainframe.


📦 Dias 5–7 — Datasets

Antes de COBOL:

datasets.

Entenda:

PS
PDS
PDSE
MEMBER
RECFM
LRECL
BLKSIZE
DSORG
DISP

Você precisa conseguir olhar:

BELLACOSA.COBOL.SOURCE

e compreender que isso não é simplesmente uma “pasta”.


🧭 Dias 8–10 — Navegação

Pratique.

Crie datasets.

Crie members.

Edite.

Copie.

Renomeie.

Delete.

Liste.

Phileas Fogg olha para o relógio.

DAY 10
STATUS: ON SCHEDULE

Passepartout comemora.

Erro.

Ainda faltam 70 dias.


🚂 DIAS 11–20 — SUEZ

JCL: comprando a passagem do JOB

Agora precisamos fazer alguma coisa executar.

Entramos no território do:

JCL — Job Control Language

JCL não é exatamente uma linguagem de programação convencional.

É mais parecido com preencher documentos de imigração para convencer o z/OS a deixar seu programa trabalhar.


🎫 JOB

//FOGG80   JOB (ACCT),'AROUND WORLD',
//             CLASS=A,
//             MSGCLASS=X

Nosso passaporte.


🚂 EXEC

//STEP01 EXEC PGM=FOGGCOB

Nosso trem.


🧳 DD

//INPUT DD DSN=FOGG.WORLD.INPUT,DISP=SHR

Nossa bagagem.

Agora aprenda:

JOB
EXEC
DD
DSN
DISP
SPACE
DCB
SYSOUT
STEPLIB
SYSPRINT
SYSIN

🚦 JES2

O JOB é submetido.

SUBMIT

E desaparece.

Passepartout entra em pânico.

— Perdemos o programa!

Não.

Ele entrou no maravilhoso sistema ferroviário chamado:

JES2

Precisamos aprender:

INPUT
EXECUTION
OUTPUT
PURGE

E então:

SDSF

Aqui você aprende a investigar:

JOB STATUS
RC
SYSOUT
JESMSGLG
JESJCL
JESYSMSG

Primeira grande vitória:

MAXCC=0000

Fogg:

— Excelente.

Bellacosa:

— Calma.

Porque todo mainframeiro precisa aprender cedo:

MAXCC=0 significa que o JOB terminou; não significa que você fez a coisa certa.


🐘 DIAS 21–35 — BOMBAIM

COBOL: finalmente encontramos Grace Hopper no caminho

Chegamos à grande escala.

Quinze dias.

Agora COBOL.

Primeiro compreenda sua anatomia:

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

Não comece decorando comandos.

Entenda a arquitetura.


🪪 IDENTIFICATION DIVISION

IDENTIFICATION DIVISION.
PROGRAM-ID. FOGG80.

Quem sou eu?


🌍 ENVIRONMENT DIVISION

Onde vivo?

Com quais recursos trabalho?


📦 DATA DIVISION

Aqui está uma das grandes diferenças culturais do COBOL.

Dados são cidadãos de primeira classe.

Aprenda:

PIC X
PIC 9
PIC S9
V
COMP
COMP-3
88 LEVEL
REDEFINES
OCCURS
COPYBOOK

Exemplo:

01 WS-PASSENGER.
   05 WS-NAME       PIC X(30).
   05 WS-AGE        PIC 9(03).
   05 WS-BALANCE    PIC S9(9)V99 COMP-3.
   05 WS-STATUS     PIC X.
      88 ACTIVE     VALUE 'A'.

Não pule essa parte.

Quem não entende DATA DIVISION acaba passando metade da carreira perguntando por que tomou S0C7.


⚙️ PROCEDURE DIVISION

Agora fazemos coisas.

Aprenda:

MOVE
IF
EVALUATE
PERFORM
COMPUTE
ADD
SUBTRACT
MULTIPLY
DIVIDE
DISPLAY
STRING
UNSTRING
INSPECT

Depois:

OPEN
READ
WRITE
REWRITE
CLOSE

🔄 O coração do batch

Você precisa conseguir escrever sozinho algo parecido com:

OPEN
 ↓
READ
 ↓
VALIDATE
 ↓
PROCESS
 ↓
WRITE
 ↓
READ AGAIN
 ↓
CLOSE

Isso parece simples.

É simples.

E variações dessa arquitetura movimentaram quantidades absurdas de negócios durante décadas.


💥 Dias 31–35 — Aprenda a quebrar COBOL

Agora provoque erros.

Sim.

De propósito.

Crie situações que gerem problemas.

Investigue:

S0C7
S0C4
FILE STATUS
RETURN CODE

Use:

DISPLAY 'WS-VALUE=' WS-VALUE

Leia compile listing.

Entenda offsets.

Procure mensagens.

Porque aprender programação sem aprender debugging é como Phileas Fogg aprender a embarcar em navios sem aprender o que fazer quando o navio quebra.


🚢 DIAS 36–43 — CALCUTÁ

VSAM: os dados precisam morar em algum lugar

Agora entramos no universo dos arquivos corporativos.

Aprenda primeiro arquivos sequenciais.

Depois:

VSAM

Conceitos:

KSDS
ESDS
RRDS
LDS
VRRDS

Para começar, concentre-se principalmente no:

KSDS

Entenda:

KEY
RECORD
CI
CA
INDEX
DATA COMPONENT

Depois:

IDCAMS

Comandos:

DEFINE
DELETE
REPRO
LISTCAT

Agora seu COBOL começa a conversar com dados persistentes.


🛳️ DIAS 44–53 — HONG KONG

Db2: SQL entra na viagem

Chegamos ao banco relacional.

Aprenda SQL antes de complicar.

SELECT
INSERT
UPDATE
DELETE

Depois:

JOIN
GROUP BY
ORDER BY
SUBQUERY
INDEX
COMMIT
ROLLBACK

Agora coloque isso dentro de COBOL:

EXEC SQL
   SELECT BALANCE
     INTO :WS-BALANCE
     FROM CUSTOMER
    WHERE CUSTOMER_ID = :WS-ID
END-EXEC.

E imediatamente aprenda:

SQLCODE
SQLSTATE

Porque:

SQLCODE = 0

é maravilhoso.

SQLCODE = +100

conta outra história.

E:

SQLCODE < 0

é quando Passepartout começa a procurar o bote salva-vidas.


🧠 Entenda também

PLAN
PACKAGE
BIND
DBRM
HOST VARIABLE
CURSOR

Não precisa dominar administração Db2.

Nosso objetivo é:

programador COBOL capaz de utilizar Db2 conscientemente.


🇯🇵 DIAS 54–61 — YOKOHAMA

CICS: saímos do batch e entramos no mundo online

Até agora:

JOB
 ↓
PROCESSA
 ↓
TERMINA

Agora:

USUÁRIO
 ↓
TRANSAÇÃO
 ↓
CICS
 ↓
COBOL
 ↓
RESPOSTA

Mudamos de planeta.

Aprenda:

TRANSACTION
PROGRAM
TASK
TERMINAL
COMMAREA
CHANNEL
CONTAINER

Comandos básicos:

EXEC CICS RECEIVE
EXEC CICS SEND
EXEC CICS READ
EXEC CICS WRITE
EXEC CICS LINK
EXEC CICS XCTL
EXEC CICS RETURN

E jamais esqueça:

RESP
RESP2

🖥️ BMS

Conheça:

MAP
MAPSET
SEND MAP
RECEIVE MAP

Você não precisa tornar-se arqueólogo de telas verdes.

Mas precisa entender como aplicações tradicionais online funcionam.


🚨 Entenda a arquitetura

Comece a reconhecer:

TOR
AOR
FOR

e conceitos como:

TSQ
TDQ
PPT
PCT

Agora Phileas Fogg consegue executar batch durante a madrugada e transações durante o dia.

Está ficando perigoso.


🚂 DIAS 62–69 — SAN FRANCISCO

Segurança, Unix e o mainframe que ninguém mostra nos filmes

Agora apresentamos:

RACF

Não precisa virar administrador de segurança.

Mas precisa compreender:

USER
GROUP
RESOURCE
PROFILE
ACCESS
READ
UPDATE
CONTROL
ALTER

E principalmente:

SAF

Comece a compreender que segurança em z/OS não é simplesmente “login e senha”.


🐧 USS

Surpresa.

Existe Unix dentro do z/OS.

Passepartout:

— Linux?

Não.

Unix System Services.

Aprenda:

PATH
FILE
DIRECTORY
PERMISSION
SHELL
PROCESS

Experimente comandos familiares:

ls
cd
cat
grep
chmod

Agora aquela divisão mental:

MAINFRAME | MUNDO MODERNO

começa a desmoronar.

Como deveria.


🔧 Zowe + Git

Chegamos ao século XXI.

Conheça:

Zowe
VS Code
IBM Z Open Editor
Git
GitHub / GitLab

Aprenda o básico:

clone
branch
commit
merge
push
pull

COBOL pode perfeitamente participar de workflows modernos.

Não precisamos sacrificar cartões perfurados numa noite de lua cheia para compilar programa.


🌉 z/OS Connect e APIs

Agora faça a ponte:

MOBILE
   ↓
REST API
   ↓
z/OS CONNECT
   ↓
CICS
   ↓
COBOL
   ↓
DB2

E finalmente compreenda uma coisa fundamental:

modernização não significa necessariamente reescrever.

Às vezes significa integrar.


🗽 DIAS 70–77 — NOVA YORK

DevOps: Phileas Fogg automatiza a viagem

Estamos quase voltando para Londres.

Agora precisamos transformar conhecimento isolado em pipeline.

Conheça:

CI/CD
BUILD
TEST
PACKAGE
DEPLOY

Ferramentas e conceitos possíveis:

DBB
zAppBuild
Jenkins
GitHub Actions
GitLab CI
UrbanCode
Ansible
Zowe
z/OSMF

Não tente aprender profundamente todas.

Entenda:

o fluxo.

SOURCE
   ↓
GIT
   ↓
BUILD
   ↓
COMPILE
   ↓
TEST
   ↓
PACKAGE
   ↓
DEPLOY

🧪 Testes

Aprenda a pensar em:

UNIT TEST
COMPONENT TEST
INTEGRATION TEST
E2E

Conheça:

ZUnit
COBOL Check
Galasa

Mais importante que decorar ferramentas:

faça código testável.


🤖 IA entra no trem

Naturalmente precisamos conversar sobre IA.

Use IA para:

EXPLICAR CÓDIGO
GERAR TESTES
DOCUMENTAR
ANALISAR ERROS
CRIAR HIPÓTESES
EXPLICAR JCL
ENTENDER COPYBOOKS
SUGERIR REFACTORING

Mas lembre:

IA
   ↓
HIPÓTESE

não:

IA
   ↓
VERDADE ABSOLUTA

Compile.

Teste.

Valide.


🏁 DIAS 78–80 — ATLÂNTICO → LONDRES

A prova final

Phileas Fogg está voltando.

Passepartout olha para o calendário.

Três dias.

Agora não existe curso.

Não existe tutorial.

Não existe instrutor segurando sua mão.

Existe apenas uma especificação.


🎯 PROJETO FINAL — FOGG BANK

Construa uma pequena aplicação:

Cadastro e movimentação de clientes.

Ela deverá possuir:

COBOL
+
JCL
+
DATASET
+
VSAM ou Db2
+
CICS ou interface batch

Fluxo:

CLIENTE
   ↓
VALIDAÇÃO
   ↓
CONSULTA
   ↓
MOVIMENTAÇÃO
   ↓
ATUALIZAÇÃO
   ↓
RELATÓRIO

Depois coloque o source em Git.

Documente.

Teste.

Provoque erros.

Corrija.

Crie README.

Explique a arquitetura.

Se possível, exponha alguma funcionalidade como API.

Agora você possui algo muito mais importante que:

ASSISTI 80 HORAS DE CURSO

Você possui:

EU CONSTRUÍ ISTO.

🧭 O MAPA COMPLETO

Depois de 80 dias nossa viagem ficou assim:

                    🌍 MAINFRAME ROAD MAP

                         IBM Z
                           │
                         z/OS
                           │
              ┌────────────┴────────────┐
              │                         │
           TSO/ISPF                    USS
              │                         │
           DATASETS                  SHELL
              │
             JCL
              │
            JES2
              │
            SDSF
              │
            COBOL
        ┌──────┼───────┐
        │      │       │
      VSAM    Db2     CICS
        │      │       │
        └──────┼───────┘
               │
              RACF
               │
             APIs
               │
         z/OS Connect
               │
              Git
               │
            DevOps
               │
            Testing
               │
               IA

Agora existe uma coisa preciosa:

CONTEXTO.


🎓 O que você NÃO será depois de 80 dias

Vamos destruir uma promessa de marketing antes que ela nasça.

Depois de 80 dias você provavelmente não será:

SYSTEM PROGRAMMER
DBA DB2
CICS ADMIN
RACF SPECIALIST
STORAGE SPECIALIST
PERFORMANCE SPECIALIST
SMP/E WIZARD
ASSEMBLER JEDI

E está tudo bem.

Mainframe é um continente.

Não uma tecnologia.

Ninguém conhece tudo.


🧠 O que você PODE ser

Você pode conseguir olhar para:

JOB
 ↓
JCL
 ↓
COBOL
 ↓
CICS
 ↓
DB2

e compreender aproximadamente o caminho.

Pode receber:

S0C7

e não fugir pela janela.

Pode abrir SDSF.

Pode procurar o step.

Pode ler SYSOUT.

Pode compreender um programa COBOL.

Pode alterar.

Compilar.

Executar.

Investigar.

Testar.

E principalmente:

saber qual é a próxima pergunta.

Esse é um enorme avanço.


🎩 O relógio de Phileas Fogg

Londres.

Reform Club.

80º dia.

Os cavalheiros estão esperando.

Relógio:

20:44

Nenhum sinal.

20:45.

Porta fechada.

A aposta parece perdida.

Então:

20:45:57

A porta abre.

Phileas Fogg entra.

Passepartout atrás dele carrega um notebook.

Na tela:

FOGG80.COBOL
FOGG80.JCL
FOGG80.COPYLIB
FOGG80.TEST

Um cavalheiro pergunta:

— Então aprendeu mainframe?

Fogg responde:

— Não.

Silêncio.

— Como assim?

Ele coloca o chapéu sobre a mesa.

Aprendi o suficiente para compreender o tamanho daquilo que ainda preciso aprender.

O velho mainframeiro no fundo da sala sorri.

Porque essa talvez seja a primeira evidência de que Phileas Fogg realmente aprendeu alguma coisa.


☕ Epílogo — A aposta

Passepartout aproxima-se do terminal.

Submete o projeto final.

SUBMIT 'FOGG80.JCL(MOONJOB)'

Não.

Arquivo errado.

Fogg olha para ele.

Passepartout:

— Desculpe, monsieur.

Agora:

SUBMIT 'FOGG80.JCL(FINALJOB)'

JES2 recebe.

$HASP100 FINALJOB ON READER

Executando.

$HASP373 FINALJOB STARTED

Todos aguardam.

SDSF atualiza.

STEP010   RC 0000
STEP020   RC 0000
STEP030   RC 0000
STEP040   RC 0000

Finalmente:

$HASP395 FINALJOB ENDED

Fogg olha para o relógio.

Ainda dentro dos 80 dias.

Passepartout grita:

MAXCC=0000!

Champanhe.

Aplausos.

A aposta está ganha.

Então o instrutor Bellacosa aproxima-se lentamente.

Olha o relatório.

Franze a testa.

Pergunta:

— Fogg...

— Sim?

— O total deveria ser £20.000.

Na tela:

TOTAL = £200.000

Silêncio absoluto.

Fogg tira o paletó.

Senta diante do terminal.

Abre o source.

Passepartout prepara café.

Porque Phileas Fogg acaba de descobrir a última e mais importante etapa do Road Map Mainframe:

DIA 81 — DEBUG.

🎩🌍🚂🚢☕🦖

E essa viagem...

meu caro Padawan...

não termina em 80 dias.

//WORLD80 JOB (COBOL),'PHILEAS FOGG'
//STEP01  EXEC PGM=LEARN
//SYSOUT  DD SYSOUT=*

LEARNING IN PROGRESS...
DESTINATION: MAINFRAME
RETURN CODE: NEVER STOP
O que um jovem padawan deve aprender para ser um especialista na Stack Mainframe. Um caminho com inúmeras possibilidades, requer esforço e dedicação, porém os frutos condizem ao esforço. Descubra o z/OS, codifique em COBOL, crie queries no SQL DB2 e vá além. #ibm #mainframe #cobol #cics #db2 #jcl #sdsf #qsam #vsam #query #sql #etl #jobs #procs #jes2 #lpar #sysplex
 

domingo, 11 de agosto de 2019

🐊 CROCODILO DUNDEE NO OUTBACK DO IBM Z — QUANDO O PINGUIM ENCONTROU O MAINFRAME

 

Bellacosa Mainframe e o Linux no Ibm Z

☕ Um Café no Bellacosa Mainframe

🐊 CROCODILO DUNDEE NO OUTBACK DO IBM Z — QUANDO O PINGUIM ENCONTROU O MAINFRAME

Linux on Z, s390x, LPAR, PR/SM, IFL, z/VM, KVM, containers, OpenShift, APIs, DevOps, IA — e o dia em que Dundee descobriu que aquele “servidorzinho Linux” era, na verdade, um mainframe.





🎬 PRÓLOGO — ISSO NÃO É UM SERVIDOR. ISTO É UM SERVIDOR!

Nosso jovem programador COBOL caminhava tranquilamente pelos corredores do datacenter.

Ele conhecia aquele território.

COBOL?

Conhecia.

JCL?

Também.

CICS?

Estava começando.

Db2?

Já conseguia fazer um SELECT sem derrubar produção — o que, convenhamos, já é uma excelente habilidade para um Padawan.

Ele olhava para o IBM Z como quem observa uma enorme cidade murada:

IBM Z
 │
 └── z/OS
      ├── COBOL
      ├── JCL
      ├── CICS
      ├── Db2
      ├── IMS
      ├── VSAM
      └── JES2

Na cabeça dele, aquilo era o mainframe.

Até encontrar Crocodilo Dundee sentado diante de um terminal.

Na tela aparecia:

$ uname -m
s390x

O jovem COBOL arregalou os olhos.

— Linux?

Dundee respondeu tranquilamente:

— Sim.

— No mainframe?

— Sim.

— Então é um Linux rodando dentro do z/OS?

Dundee sorriu.

Pegou seu enorme facão imaginário e respondeu:

— Você chama aquilo de mainframe?

Apontou para o desenho do jovem.

Isto é um mainframe.

E desenhou:

                     IBM Z
                       │
                     PR/SM
                       │
        ┌──────────────┼──────────────┐
        │              │              │
      LPAR A          LPAR B         LPAR C
        │              │              │
      z/OS            Linux          z/VM
        │              │              │
     COBOL           Linux         Linux
     CICS            Apps          Guests
     Db2

O jovem ficou em silêncio.

Seu mapa do mundo acabara de aumentar.

Muito.

Pegue seu café.

Hoje nós vamos para o Outback.



🐊 CAPÍTULO 1 — IBM Z NÃO É SINÔNIMO DE z/OS

Essa é provavelmente a primeira grande descoberta que um programador COBOL iniciante precisa fazer.

Durante os estudos, aprendemos:

TSO
ISPF
JCL
COBOL
CICS
Db2
VSAM
SDSF

Tudo isso cria uma associação mental:

MAINFRAME = z/OS

Mas isso está incompleto.

IBM Z é a plataforma computacional.

z/OS é um sistema operacional executado nessa plataforma.

Uma comparação grosseira, mas didática:

PC
 │
 └── Windows

O computador não é o Windows.

Da mesma forma:

IBM Z
 │
 └── z/OS

O IBM Z não é o z/OS.

E essa distinção abre uma porta gigantesca.

Porque o IBM Z pode executar outros sistemas operacionais e ambientes.

Entre eles:

Linux.

Portanto, nosso mapa precisa mudar:

IBM Z
 │
 ├── z/OS
 │
 ├── Linux
 │
 ├── z/VM
 │
 └── outros ambientes suportados

Essa pequena mudança conceitual é fundamental para compreender o mainframe moderno.



🐧 CAPÍTULO 2 — O PINGUIM CHEGOU AO OUTBACK

Quando falamos em Linux on IBM Z, não estamos falando de uma imitação de Linux.

Também não estamos falando de algum shell colocado por cima do z/OS.

Estamos falando de:

Linux executando sobre a arquitetura IBM Z.

Você encontrará elementos absolutamente familiares para qualquer administrador Linux:

ls
cd
pwd
grep
cat
ssh
ps
top
systemctl
curl

Teremos:

/etc
/home
/usr
/var
/tmp

Teremos processos.

Usuários.

Permissões.

Sockets.

TCP/IP.

SSH.

Daemons.

Packages.

Java.

Python.

E muitas tecnologias open source.

O programador COBOL que entra nesse ambiente talvez tenha uma sensação curiosa:

“Eu ainda estou no mainframe?”

Sim.

Dundee provavelmente responderia:

— Bem-vindo ao outro lado do rio.



🧬 CAPÍTULO 3 — O MISTERIOSO s390x

Agora encontramos uma palavra que aparece constantemente quando estudamos Linux no IBM Z:

s390x

Não ignore isso.

Seu computador pessoal provavelmente utiliza uma arquitetura como:

x86_64

Muitos equipamentos modernos utilizam:

ARM64

No universo IBM Z encontraremos:

s390x

Isso importa porque programas são compilados para arquiteturas específicas.

Imagine que você encontre uma aplicação Linux na Internet.

Ela possui um executável para:

amd64

Isso não significa automaticamente que aquele binário executará em:

s390x

O software precisa possuir suporte para aquela arquitetura ou ser compilado para ela.

O mesmo raciocínio aparece fortemente em containers.

Você pode encontrar uma imagem disponível para:

amd64
arm64
s390x

Uma imagem multiarch pode possuir versões apropriadas para várias arquiteturas.

Esse detalhe é pequeno no PowerPoint.

Na produção pode signific a diferença entre:

docker run minha-aplicacao

e:

exec format error

☕ Dica Bellacosa

Quando estiver investigando software para Linux on Z, uma das primeiras perguntas deve ser:

Existe build para s390x?

Essa pergunta pode economizar muitas horas.



🏛️ CAPÍTULO 4 — PR/SM E AS FRONTEIRAS DO TERRITÓRIO

Agora Dundee encontra algo que conhece muito bem:

territórios.

No IBM Z podemos dividir os recursos da máquina em Logical Partitions, as famosas:

LPARs

Por trás dessa estrutura está o PR/SM — Processor Resource/System Manager.

Didaticamente:

                  IBM Z
                    │
                  PR/SM
                    │
      ┌─────────────┼─────────────┐
      │             │             │
    LPAR 1        LPAR 2        LPAR 3
      │             │             │
    z/OS           Linux         z/VM

Cada LPAR possui recursos atribuídos e isolamento.

Portanto, Linux não precisa ser simplesmente um processo escondido dentro do z/OS.

Ele pode executar em sua própria LPAR.

Essa distinção elimina um dos maiores equívocos de quem está começando.


⚙️ CAPÍTULO 5 — DUNDEE CONHECE O IFL

Agora encontramos outra sigla fundamental:

IFL

Integrated Facility for Linux.

O IFL é um processador especializado destinado à execução de workloads Linux no ecossistema IBM Z/LinuxONE.

Para o iniciante, podemos construir este mapa mental:

IBM Z
 │
 ├── CP
 │    └── processamento tradicional
 │
 ├── zIIP
 │    └── determinados workloads elegíveis
 │
 └── IFL
      └── Linux

Mas não pense no IFL como:

“um PC Linux instalado dentro do mainframe.”

Não é isso.

Ele faz parte da arquitetura do próprio sistema.

Isso é importante inclusive quando estudamos custos, licenciamento, capacidade e consolidação.

No mundo mainframe, tipo de processador importa.

Muito.


🧙 CAPÍTULO 6 — z/VM: VIRTUALIZAÇÃO ANTES DE VIRTUALIZAÇÃO VIRAR MODA

Dundee continua andando pelo Outback e encontra algo ainda mais interessante.

Uma LPAR pode executar:

z/VM

E dentro do z/VM podemos hospedar múltiplos sistemas Linux.

Imagine:

IBM Z
 │
 ▼
PR/SM
 │
 ▼
LPAR
 │
 ▼
z/VM
 │
 ├── Linux 001
 ├── Linux 002
 ├── Linux 003
 ├── Linux 004
 ├── Linux 005
 └── Linux ...

Agora começa a aparecer uma das grandes forças históricas do mainframe:

virtualização e consolidação.

O jovem programador pergunta:

— Então z/VM é como VMware?

Dundee responde:

— Como analogia inicial, serve. Mas não tente transformar dois animais diferentes no mesmo bicho.

Perfeito.

A comparação ajuda a compreender o papel:

Hipervisor
    │
    ▼
Máquinas virtuais

Mas arquitetura, história, gerenciamento e implementação são diferentes.


🏙️ CAPÍTULO 7 — UMA CIDADE DE LINUX DENTRO DO Z

Imagine uma organização com centenas de servidores Linux.

Talvez existam máquinas para:

APIs
Java
bancos
mensageria
monitoramento
automação
integração
DevOps
aplicações internas

Fisicamente espalhar isso significa administrar:

CPU
memória
rede
storage
energia
refrigeração
hardware
monitoramento
patching

Virtualização permite consolidar workloads.

No IBM Z podemos imaginar:

                IBM Z
                  │
                z/VM
                  │
       ┌──────────┼───────────┐
       │          │           │
     Linux      Linux       Linux
       │          │           │
     Java       API         Banco
       │
     Linux
       │
     Kafka

O objetivo não é simplesmente afirmar:

“mainframe é mais rápido.”

Essa frase isolada diz muito pouco.

Precisamos analisar arquitetura, throughput, disponibilidade, licenciamento, utilização, crescimento, operação, energia e custo total.

A palavra interessante aqui é:

consolidação.


🐊 CAPÍTULO 8 — E APARECE O KVM

Quando o Padawan acha que já entendeu tudo, Dundee aponta para outra trilha:

KVM

Sim.

Kernel-based Virtual Machine também faz parte dessa conversa.

Portanto, quando estudamos virtualização Linux no Z, podemos encontrar arquiteturas utilizando:

z/VM

ou:

KVM

Conceitualmente:

IBM Z
 │
 ├── z/VM
 │     ├── Linux
 │     ├── Linux
 │     └── Linux
 │
 └── KVM
       ├── Linux
       ├── Linux
       └── Linux

Isso aproxima ainda mais profissionais vindos do universo Linux da plataforma IBM Z.


📦 CAPÍTULO 9 — NÃO CONFUNDA LPAR, VM E CONTAINER

Este merece ser escrito em letras enormes:

LPAR ≠ VM ≠ CONTAINER

Os três conceitos oferecem formas de isolamento e organização de workloads, mas em níveis diferentes.

Uma pilha didática pode ser:

IBM Z
 │
 ▼
PR/SM
 │
 ▼
LPAR
 │
 ▼
z/VM ou KVM
 │
 ▼
Linux
 │
 ▼
Container Runtime
 │
 ├── Container
 ├── Container
 └── Container

E então chegamos ao mundo Kubernetes/OpenShift:

IBM Z / LinuxONE
        │
      Linux
        │
    OpenShift
        │
   ┌────┼─────┐
   │    │     │
  Pod  Pod   Pod

Agora perceba o tamanho da transformação.

O mesmo profissional que começou estudando:

//STEP01 EXEC PGM=PROG01

passa a conversar com colegas falando sobre:

Git
YAML
containers
pods
clusters
pipelines
APIs
observabilidade

Isso não diminui a importância do JCL.

Amplia o mapa do profissional.


🔌 CAPÍTULO 10 — O COBOL NÃO PRECISA IR EMBORA

Agora chegamos à parte que considero mais importante.

Modernização frequentemente é apresentada de maneira infantil:

VELHO = COBOL
NOVO  = JAVA

Ou:

VELHO = MAINFRAME
NOVO  = CLOUD

Arquitetura real é muito mais interessante.

Imagine um banco possuindo aplicações COBOL extremamente maduras:

z/OS
 │
 ├── CICS
 ├── COBOL
 ├── Db2
 ├── IMS
 ├── VSAM
 └── MQ

Por que necessariamente reescrever tudo?

Talvez possamos construir:

Aplicativo Mobile
        │
        ▼
      HTTPS
        │
        ▼
       API
        │
        ▼
 Linux / OpenShift
        │
        ▼
   Integração
        │
        ▼
      CICS
        │
        ▼
      COBOL
        │
        ▼
     Db2/VSAM

O COBOL continua processando regras de negócio.

Linux recebe workloads modernos.

Os dois cooperam.

Isso é modernização sem necessariamente destruir aquilo que já funciona.


☁️ CAPÍTULO 11 — O MAINFRAME ENCONTRA A CLOUD

Outra armadilha conceitual:

CLOUD = FORA DO MAINFRAME

Não necessariamente.

Cloud também envolve princípios como:

automação
provisionamento
elasticidade
virtualização
self-service
APIs
orquestração
containers

Quando combinamos:

IBM Z
+
Linux
+
virtualização
+
containers
+
OpenShift
+
automação

podemos construir arquiteturas de private cloud e hybrid cloud.

Portanto, a discussão deixa de ser:

“mainframe ou cloud?”

E passa a ser:

“qual workload deve executar onde e por quê?”

Essa é uma pergunta muito mais madura.


🤖 CAPÍTULO 12 — DUNDEE ENCONTRA A INTELIGÊNCIA ARTIFICIAL

Agora o Outback começa a ficar futurista.

IBM Z moderno também participa do universo de IA.

A ideia arquitetural mais interessante é:

levar processamento inteligente para perto dos dados e das transações.

Imagine:

Transação
    │
    ▼
  CICS
    │
    ▼
 COBOL
    │
    ├────────► modelo
    │           de IA
    │             │
    ◄─────────────┘
    │
    ▼
 decisão

Fraude é um ótimo exemplo conceitual.

Em vez de analisar apenas depois:

transações
    │
    ▼
arquivo
    │
    ▼
processamento posterior

podemos imaginar arquiteturas capazes de aplicar inferência muito mais próximas do fluxo transacional.

Linux amplia as possibilidades de frameworks, ferramentas, APIs e serviços utilizados ao redor desses modelos.


🔐 CAPÍTULO 13 — O PINGUIM TAMBÉM PRECISA DE CERCA

Linux no Z continua sendo Linux.

Portanto:

SSH
sudo
usuários
grupos
patches
certificados
TLS
firewalls
secrets
vulnerabilidades
containers

continuam importantíssimos.

Não existe magia do tipo:

“Está no mainframe, então está automaticamente seguro.”

Segurança precisa ser projetada.

Ponto.

O interessante é combinar controles Linux com capacidades de isolamento, virtualização, criptografia e segurança existentes na plataforma IBM Z.

Defesa em profundidade continua sendo a palavra-chave.


🧑‍💻 CAPÍTULO 14 — O NOVO MAPA DO PROGRAMADOR COBOL

Nosso jovem começou com:

COBOL
JCL
TSO
ISPF
CICS
Db2
VSAM
SDSF

Nada disso perdeu importância.

Mas podemos ampliar a mochila:

COBOL
JCL
CICS
Db2
VSAM
        +
Linux
Shell
SSH
Git
JSON
REST
Python
Java
Containers
OpenShift
CI/CD
Observabilidade

Não significa estudar tudo simultaneamente.

Faça por camadas.

PASSO 1 — Aprenda Linux básico

pwd
ls
cd
cat
grep
find
ps
top
ssh
curl

PASSO 2 — Entenda arquitetura

Aprenda:

IBM Z
PR/SM
LPAR
s390x
IFL
z/VM
KVM

PASSO 3 — Aprenda integração

Entenda:

TCP/IP
HTTP
REST
JSON
MQ
APIs

PASSO 4 — Entre em DevOps

Estude:

Git
pipeline
CI/CD
artifact
testes
deploy
rollback

PASSO 5 — Finalmente containers

Então:

image
container
registry
pod
Kubernetes
OpenShift

Não comece tentando decorar Kubernetes antes de entender Linux.

Seria como aprender CICS antes de compreender o que é uma transação.


🧭 CAPÍTULO 15 — IBM Z E LINUXONE NÃO SÃO A MESMA COISA

Outra pegadinha importante.

Existe:

IBM Z

e existe:

IBM LinuxONE

São famílias intimamente relacionadas tecnologicamente, mas não devemos usar os nomes como sinônimos.

Didaticamente podemos pensar:

IBM Z
 │
 ├── z/OS
 ├── Linux
 └── outros ambientes

LinuxONE
 │
 └── plataforma focada em Linux

Quando encontrar documentação, vagas ou apresentações falando em:

Linux on IBM Z

ou:

LinuxONE

observe exatamente qual plataforma e arquitetura estão sendo discutidas.


🥚 EASTER EGG — 03:17 DA MANHÃ

Às 03:17, o telefone toca.

Produção.

Naturalmente.

Um microsserviço Linux não consegue chamar uma aplicação CICS.

O Padawan abre o terminal.

Testa a API.

Nada.

Testa rede.

Nada.

Verifica logs.

Encontra:

Connection timed out

Depois de quarenta minutos investigando Java, COBOL, CICS, Linux, containers e provavelmente a posição de Saturno, alguém pergunta:

— Verificaram a regra de firewall?

Silêncio.

A regra havia sido alterada durante uma mudança de infraestrutura.

Dundee toma um gole de café.

— No Outback, garoto, primeiro você verifica se existe estrada antes de culpar o crocodilo.

Easter egg Bellacosa encontrado: 03:17.


🐊 EPÍLOGO — ISTO É UM MAINFRAME

No começo desta aventura, nosso Padawan acreditava que:

MAINFRAME
    =
  z/OS
    =
 COBOL

Agora ele consegue enxergar:

                         IBM Z
                           │
                         PR/SM
                           │
              ┌────────────┴────────────┐
              │                         │
            z/OS                       Linux
              │                         │
       ┌──────┼──────┐          ┌──────┼──────┐
       │      │      │          │      │      │
     COBOL   CICS   IMS       Java   Python  APIs
       │      │      │          │      │      │
      Db2    VSAM    MQ       Kafka Containers
                                     │
                                  OpenShift

Ao redor disso:

Git
DevOps
CI/CD
Observabilidade
Segurança
APIs
Automação
Hybrid Cloud
IA

Essa talvez seja uma das maiores mudanças mentais necessárias para quem começa sua carreira no mainframe.

COBOL é uma linguagem.

z/OS é um sistema operacional.

IBM Z é uma plataforma.

E uma plataforma pode hospedar mundos diferentes.

O Linux não chegou ao IBM Z para expulsar COBOL, CICS, IMS ou Db2.

Ele ampliou o território.

Agora podemos colocar aplicações modernas próximas de sistemas transacionais que carregam décadas de regras de negócio.

Podemos integrar.

Podemos encapsular.

Podemos criar APIs.

Podemos trabalhar com eventos.

Podemos usar containers.

Podemos automatizar pipelines.

Podemos explorar IA.

Sem começar toda reunião de arquitetura com:

“Primeiro precisamos jogar fora o legado.”

Dundee olha novamente para nosso Padawan.

O garoto aponta para uma pequena VM x86 e pergunta:

— Isto é um servidor Linux?

Dundee sorri.

Aponta para o IBM Z executando LPARs, z/OS, Linux, virtualização, APIs, containers e milhares de processos.

— Não, garoto...

Ele toma o último gole do café.

Isto é um servidor Linux.

☕🐊🐧


☕ CONCLUSÃO — BELLACOSA MAINFRAME

Se você é um programador COBOL iniciante, não abandone suas raízes para correr atrás de cada tecnologia que aparece.

Aprenda primeiro muito bem:

COBOL
JCL
CICS
Db2
VSAM
z/OS

Depois amplie sua visão:

Linux
s390x
LPAR
IFL
z/VM
KVM

Depois conecte os mundos:

REST
JSON
MQ
APIs
Git
CI/CD
Containers
OpenShift
Observabilidade
IA

Porque o profissional mainframe moderno não precisa escolher entre legado e moderno.

Ele precisa compreender como os dois trabalham juntos.

E quando alguém disser:

“Mainframe? Aquela máquina velha que só roda COBOL?”

Você não precisa discutir.

Sirva um café.

Abra o diagrama da arquitetura.

Mostre z/OS de um lado.

Linux do outro.

CICS, COBOL e Db2 trabalhando com APIs, containers, OpenShift e IA.

Então lembre-se de Dundee:

“Você chama aquilo de servidor? Isto é um servidor.”

Bellacosa Mainframe — porque compreender o legado é importante. Compreender por que ele ainda está aqui é muito mais interessante.

sexta-feira, 28 de setembro de 2018

IBM Mainframe Discovery : Capítulo IX — A Federação das Naves Invisíveis

 

Bellacosa Mainframe apresenta ibm mainframe parte ix

☕ Um Café no Bellacosa Mainframe

Capítulo IX — A Federação das Naves Invisíveis

PR/SM, LPARs e Virtualização: Como Um Único Computador se Transformou em uma Galáxia Inteira 


SEXTA REGRA DAS GRANDES CIVILIZAÇÕES

Nunca compre uma nave espacial apenas porque ela é enorme.

Pergunte primeiro:

Quantas civilizações diferentes conseguem viver dentro dela sem começar uma guerra?

Parece uma pergunta estranha.

Mas foi exatamente essa pergunta que a IBM respondeu décadas atrás.

Imagine uma nave gigantesca.

Dentro dela vivem:

  • uma federação de banqueiros;

  • um grupo de cientistas;

  • uma academia militar;

  • uma universidade;

  • um hospital;

  • uma estação meteorológica;

  • uma fábrica de robôs.

Todos utilizam o mesmo casco.

A mesma energia.

Os mesmos motores.

Mas nenhum deles sabe que os outros existem.

Parece magia.

Não é.

É virtualização.


O Grande Apartamento Cósmico

Imagine um prédio com cem apartamentos.

Todos compartilham:

  • fundação;

  • elevadores;

  • telhado;

  • energia elétrica;

  • encanamento.

Mas cada morador acredita possuir sua própria casa.

O IBM Z faz exatamente isso.

Só que em escala planetária.


Antes da Virtualização

Voltemos algumas décadas.

Você precisava de um servidor para:

Banco.

Outro para RH.

Outro para folha.

Outro para testes.

Outro para desenvolvimento.

Outro para homologação.

Resultado?

Salas inteiras cheias de computadores.

Baixa utilização.

Muito calor.

Muito desperdício.


Então Surgiu Uma Ideia Revolucionária

Um engenheiro olhou para aquele enorme computador e perguntou:

"Por que não dividir essa nave em várias menores?"

Hoje isso parece óbvio.

Na década de 1970 era praticamente ficção científica.


A Grande Mágica

Imagine um teatro.

Existe apenas um palco.

Mas cinco peças diferentes acontecem simultaneamente.

Cada plateia acredita que ocupa o teatro inteiro.

Como isso seria possível?

No IBM Z isso acontece todos os dias.

Cada ambiente acredita possuir:

sua própria CPU.

sua própria memória.

seus próprios discos.

seu próprio sistema operacional.

Na realidade...

todos compartilham o mesmo hardware.


Conheça o PR/SM

Nos bastidores existe um personagem extremamente discreto.

Seu nome é:

PR/SM

Processor Resource/System Manager.

Pense nele como o administrador da estação espacial.

Ele decide:

quem recebe CPU.

quem recebe memória.

quem recebe canais de I/O.

quem pode utilizar determinado recurso.

Segundo Wilhelm G. Spruth, o PR/SM é responsável por particionar logicamente um único sistema físico em ambientes completamente independentes, oferecendo isolamento em nível de hardware.


As LPARs — Pequenos Universos

Agora chegamos às estrelas principais deste capítulo.

As famosas:

LPARs

(Logical Partitions).

Imagine uma gigantesca nave.

Agora coloque dentro dela:

USS Alpha.

USS Beta.

USS Gamma.

USS Delta.

Cada nave possui:

tripulação.

missões.

comandante.

computadores.

sistemas.

Elas dividem o mesmo casco.

Mas vivem vidas completamente independentes.

Cada LPAR acredita ser um computador completo.

E, do ponto de vista do sistema operacional...

ela realmente é.


Um Hotel de Luxo

Imagine um hotel.

Cada hóspede possui:

quarto.

banheiro.

telefone.

televisão.

Wi-Fi.

Ar-condicionado.

Nenhum hóspede invade o quarto do outro.

As LPARs seguem exatamente esse princípio.

Cada uma recebe recursos exclusivos.

Segurança.

Isolamento.

Previsibilidade.


O Vizinho Barulhento Não Existe

Você já morou perto de alguém que fazia festa às três da manhã?

No IBM Z isso seria inaceitável.

Uma LPAR não pode consumir recursos pertencentes à outra.

O PR/SM garante essa separação.

Mesmo que uma aplicação apresente problemas...

as demais continuam funcionando normalmente.


Compartilhar Não Significa Misturar

Essa é uma lição importante.

Compartilhar hardware não significa compartilhar tudo.

Imagine um prédio.

Os apartamentos compartilham:

estrutura.

água.

energia.

Mas ninguém compartilha:

escova de dentes.

geladeira.

conta bancária.

O isolamento permanece absoluto.


CPU Compartilhada ou Dedicada?

Agora imagine uma frota espacial.

Algumas naves possuem pilotos exclusivos.

Outras utilizam pilotos compartilhados.

No IBM Z acontece exatamente isso.

Uma LPAR pode receber:

CPUs dedicadas

ou

CPUs compartilhadas.

O administrador escolhe conforme a necessidade.


O Maestro Continua Trabalhando

Lembra do Supervisor?

Agora ele ganhou um chefe.

O PR/SM coordena as LPARs.

Dentro de cada LPAR...

o Supervisor organiza seus próprios programas.

É uma hierarquia elegante.

Como uma federação.

Cada planeta governa seus habitantes.

Mas existe um conselho superior distribuindo recursos entre todos.


E Se Uma LPAR Travar?

Imagine um apartamento.

O morador derruba uma estante.

Os outros apartamentos continuam intactos.

O mesmo ocorre aqui.

Uma LPAR pode sofrer problemas.

As demais continuam operando normalmente.

Esse isolamento é um dos pilares da confiabilidade do IBM Z.


O Grande Restaurante Galáctico

Imagine um restaurante gigantesco.

Existem:

clientes VIP.

turistas.

tripulações.

embaixadores.

Todos utilizam a mesma cozinha.

Mas recebem atendimento diferente.

O PR/SM faz algo semelhante.

Distribui recursos conforme prioridades.

Sem desperdício.


Dynamic LPAR

Agora imagine algo curioso.

Enquanto a nave está viajando...

você aumenta o tamanho de um dos apartamentos.

Sem parar a nave.

Sem desligar motores.

Sem evacuar passageiros.

Isso existe.

Chama-se:

Dynamic LPAR.

Processadores, memória e alguns recursos podem ser adicionados ou removidos dinamicamente, reduzindo drasticamente interrupções operacionais.


O Universo Está Vivo

As necessidades mudam.

Às nove da manhã:

Banco precisa de mais CPU.

À meia-noite:

Batch precisa crescer.

Domingo:

Homologação precisa de recursos.

Segunda-feira:

Desenvolvimento aumenta.

Tudo isso pode acontecer dinamicamente.


WLM Entra em Cena

Agora surge outro personagem.

O famoso:

Workload Manager.

Imagine um gerente de aeroporto.

Ele percebe:

"A pista internacional está lotada."

Então redistribui equipes.

Abre novos portões.

Prioriza determinados voos.

O WLM faz exatamente isso com cargas de trabalho.

Ele conversa continuamente com o PR/SM para ajustar a distribuição dos recursos conforme os objetivos definidos pela instalação.


A Grande Ilusão

Curiosamente...

o sistema operacional nunca percebe toda essa complexidade.

O z/OS acredita possuir um computador inteiro.

Linux acredita possuir outro.

z/VM acredita possuir outro.

Todos vivem felizes.

Enquanto o PR/SM coordena silenciosamente tudo nos bastidores.


A Virtualização Não Nasceu Ontem

Existe um mito curioso.

Muita gente acredita que virtualização começou com VMware.

Ou Hyper-V.

Ou KVM.

Na realidade...

o universo Mainframe experimentava esses conceitos décadas antes.

Spruth destaca a virtualização por hardware como uma das características distintivas do System z, muito antes de ela se tornar comum em servidores distribuídos.

Isso não diminui a importância das plataformas modernas.

Mas mostra como muitas ideias consideradas "novas" possuem raízes muito mais antigas.


Hipersockets — O Teletransporte

Imagine duas naves estacionadas lado a lado.

Tradicionalmente...

elas conversariam usando rádio.

No IBM Z surgiu outra ideia.

Por que usar cabos...

...se ambas vivem dentro da mesma nave?

Assim nasceram os:

Hipersockets.

Eles permitem comunicação extremamente rápida entre LPARs, utilizando memória em vez de redes físicas.

É quase um teletransporte de mensagens.

Spruth apresenta os Hipersockets como um mecanismo de comunicação interna de altíssimo desempenho entre partições lógicas.


Uma Cidade Dentro de Outra Cidade

Imagine uma metrópole.

Dentro dela existe outra cidade.

Dentro dessa cidade...

outra.

Parece impossível.

Mas no IBM Z isso também acontece.

Uma LPAR pode executar:

z/VM.

Dentro do z/VM surgem:

centenas.

milhares.

de máquinas virtuais Linux.

Uma verdadeira galáxia de computadores vivendo dentro de outro computador.


O Que Mudou Desde 2010?

Desde que Spruth escreveu seu relatório, a virtualização evoluiu ainda mais.

Hoje encontramos:

  • dezenas de TB de memória por sistema;

  • milhares de máquinas Linux simultâneas;

  • OpenShift nativo;

  • Kubernetes;

  • containers;

  • Secure Execution;

  • integração híbrida com nuvem;

  • LinuxONE;

  • IA embarcada.

Mas o conceito permanece idêntico.

Um único computador.

Múltos mundos.

Perfeitamente isolados.


Uma Lição Para a Vida

Existe uma filosofia escondida neste capítulo.

Uma grande cidade não precisa eliminar diferenças.

Ela precisa organizá-las.

Cada LPAR possui sua missão.

Seu ritmo.

Sua prioridade.

Seu sistema operacional.

Sua cultura.

Mesmo assim...

todas cooperam utilizando a mesma infraestrutura.

Talvez essa seja uma das metáforas mais bonitas da engenharia.


Curiosidades do Diário de Bordo

🚀 O PR/SM é certificado em altos níveis de segurança e isolamento, permitindo que ambientes com diferentes requisitos coexistam no mesmo hardware físico.

🛰️ Hipersockets eliminam boa parte da latência de comunicação entre LPARs ao manter o tráfego inteiramente dentro do sistema.

🖥️ Um único IBM Z pode hospedar simultaneamente z/OS, Linux, z/VM e outros ambientes, cada um acreditando possuir sua própria máquina.

🌌 A virtualização em hardware do IBM Z antecedeu em muitos anos a popularização da virtualização em servidores x86.


Diário de Bordo do Padawan COBOL

Antes de deixar a Federação das LPARs, registre estas coordenadas no seu Holocron Técnico:

✅ Virtualização não significa apenas dividir recursos; significa criar ambientes independentes, seguros e previsíveis.

✅ O PR/SM atua como o grande administrador da nave, distribuindo CPU, memória e I/O entre diferentes partições.

✅ As LPARs permitem consolidar múltiplos sistemas em um único hardware sem sacrificar isolamento ou desempenho.

✅ Muitas tecnologias modernas de consolidação e computação em nuvem seguem princípios que o IBM Z já aplicava décadas antes.


Missão Seguinte

No próximo capítulo faremos um salto para uma das tecnologias mais impressionantes do universo IBM Z: o Parallel Sysplex e a Coupling Facility.

Descobriremos como várias naves conseguem pensar como uma só, compartilhar dados em tempo real e continuar operando mesmo quando uma delas sai de combate. Se as LPARs transformaram um computador em vários mundos, o Parallel Sysplex transformará vários computadores em uma única civilização galáctica.

☕ Um Café no Bellacosa Mainframe

O Guia Galáctico do IBM Z

Dezoito capítulos e uma conclusão reunidos em um painel interativo. Escolha uma missão, abra no visor e continue explorando diretamente no artigo original.

Não entre em pânico: se o Blogger impedir a exibição dentro do iframe, use “Abrir artigo”. Os links diretos continuam visíveis para leitores e motores de busca.
01

Capítulo I — Não Entre em Pânico!

Leia no visor ou abra a publicação original.

Abrir artigo
02

Capítulo II — A Planta da Nave Mais Duradoura da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
03

Capítulo III — A Nave Que Se Recusa a Explodir

Leia no visor ou abra a publicação original.

Abrir artigo
04

Capítulo IV — A Sala dos Cofres Cósmicos

Leia no visor ou abra a publicação original.

Abrir artigo
05

Capítulo V — A Frota Invisível do Transporte Interestelar

Leia no visor ou abra a publicação original.

Abrir artigo
06

Capítulo VI — O Grande Maestro Invisível

Leia no visor ou abra a publicação original.

Abrir artigo
07

Capítulo VII — O Grande Terminal de Embarque da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
08

Capítulo VIII — A Metrópole das Transações Infinitas

Leia no visor ou abra a publicação original.

Abrir artigo
09

Capítulo IX — A Federação das Naves Invisíveis

Leia no visor ou abra a publicação original.

Abrir artigo
10

Capítulo X — A Consciência Coletiva da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
11

Capítulo XI — O Almirante Invisível da Frota

Leia no visor ou abra a publicação original.

Abrir artigo
12

Capítulo XII — A Biblioteca Infinita da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
13

Capítulo XIII — O Serviço Postal Mais Confiável da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
14

Capítulo XIV — O Jardim Secreto da Nave

Leia no visor ou abra a publicação original.

Abrir artigo
15

Capítulo XV — O Tradutor Universal da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
16

Capítulo XVI — A Fábrica Automática da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
17

Capítulo XVII — A Última Fronteira Nunca Foi o Espaço

Leia no visor ou abra a publicação original.

Abrir artigo
18

Capítulo XVIII — O Guia Nunca Terminou

Leia no visor ou abra a publicação original.

Abrir artigo
19

Conclusão — Não Entre em Pânico... A Jornada Está Apenas Começando

Leia no visor ou abra a publicação original.

Abrir artigo
Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...