A arquitetura CISC permitia que o System/370 executasse instruções complexas em uma única operação, reduzindo a carga sobre o software. Seu conjunto de instruções, com cerca de 200 comandos, cobria operações aritméticas (ex.: ADD, SUB), lógicas (ex.: AND, OR), manipulação de strings (ex.: MVC - Move Character) e controle de entrada/saída (ex.: SIO - Start I/O). Um exemplo prático em assembly para transferir dados de clientes era:
MVC OUTPUT(80),INPUT # Move 80 bytes de INPUT para OUTPUT
AR TOTAL,SALARY # Adiciona SALARY ao registrador TOTAL
Essa instrução MVC era crucial em bancos, movendo registros de contas entre buffers de memória. A CPU contava com 16 registradores de propósito geral (32 bits cada) e 4 registradores de ponto flutuante, ideais para cálculos financeiros e científicos. A construção física usava transistores bipolares em placas de circuito multicamadas, conectadas por wire-wrap, uma técnica onde fios eram enrolados em pinos para conexões robustas. Essas placas, alojadas em gabinetes refrigerados por ar forçado, suportavam o calor gerado por milhares de componentes.
O desempenho era modesto, mas a eficiência vinha de otimizações como microcódigo, que traduzia instruções complexas em operações básicas, e canais de I/O dedicados, que descarregavam o processamento de periféricos (ex.: discos, fitas) da CPU. Comparado a processadores modernos, como o AMD Ryzen ou o IBM Telum (usado no z16), o System/370 era lento, mas sua arquitetura era projetada para confiabilidade absoluta, essencial em ambientes onde um erro podia custar milhões. Um painel de controle, com luzes e interruptores, permitia que operadores monitorassem a CPU em tempo real, uma visão icônica da era dos mainframes.
Com o System/370, a entrada de dados evoluiu para terminais de texto, como o IBM 3270, que revolucionaram a interação. Esses terminais, com teclados mecânicos e telas monocromáticas verdes, permitiam que operadores digitassem comandos e dados diretamente, conectados ao mainframe via linhas dedicadas. O 3270 usava um protocolo de blocos de dados, enviando telas inteiras (ex.: 24 linhas x 80 colunas) ao sistema, reduzindo a latência.
Essa interface era um salto em relação aos cartões, permitindo edição em tempo real e respostas rápidas. Nos anos 1980, os mainframes começaram a adotar interfaces gráficas (GUIs) baseadas em terminais X ou, mais tarde, navegadores web. Hoje, sistemas como o IBM z/OS oferecem portais web acessíveis via Chrome, mas o 3270 permanece em uso em bancos brasileiros, como o Itaú, para reduzir custos e torturar clientes e funcionários por sua simplicidade.
A gravação de dados também passou por transformações. Nos anos 1960, fitas magnéticas (ex.: IBM 3420) eram o padrão, armazenando dezenas de megabytes em rolos de 2.400 pés. O acesso era sequencial, o que tornava a busca de dados lenta.
O System/370 introduziu discos rígidos, como o IBM 3330, com 100 MB por unidade, usando cabeças magnéticas para ler/escrever em pratos giratórios. Um banco podia armazenar registros de clientes em um 3330 e acessá-los em milissegundos, um avanço revolucionário.
Memórias ECC e Hot-Swapping: Pilares da Confiabilidade
O funcionamento do ECC no System/370 usava códigos Hamming, que calculavam paridades para cada grupo de bits. Se um erro de 1 bit ocorresse, o sistema identificava a posição exata e a corrigia; erros de 2 bits eram detectados, mas não corrigidos, acionando alertas. Esse recurso era vital em ambientes como bolsas de valores, onde um erro de memória podia corromper ordens de compra. Comparado a PCs modernos, que também usam ECC, o System/370 tinha algoritmos mais simples, mas suficientes para sua época. O IBM z16 leva o ECC ao extremo, corrigindo múltiplos erros com códigos quânticos (seja lá o que isso quer dizer, porque disconfio de qualquer um que use a palavra quântico).
O hot-swapping permitia substituir componentes sem desligar o sistema. No System/370, isso era possível graças a controladores redundantes e fontes de energia duplicadas. Se um disco IBM 3330 falhasse, o operador podia removê-lo e inserir outro, enquanto o mainframe redirecionava I/O para um canal reserva. O mesmo valia para placas de memória ou CPUs secundárias. Um exemplo prático: em um banco, um técnico substituía um módulo de memória defeituoso em minutos, sem interromper transações. Esse recurso exigia hardware modular e sistemas operacionais robustos, como o OS/MVS, que gerenciavam falhas dinamicamente.
Sistemas Operacionais: A Revolução da Virtualização
O OS/MVS (Multiple Virtual Storage, veja mais aqui), era o pilar dos mainframes empresariais, usado por bancos, seguradoras e governos para processar transações massivas. Ele criava 255 espaços de endereçamento virtual, cada um com até 16 MB, divididos em páginas de 4 KB. Essa separação isolava programas, garantindo que um erro em um job (ex.: cálculo de impostos) não afetasse outro (ex.: transferências bancárias). O MVS gerenciava esses jobs via JCL (Job Control Language), uma linguagem de script que definia fluxos de trabalho. Um job típico para processar folha de pagamento era:
//PAYROLL JOB (ACCT),'CALC SALARY',CLASS=A
//STEP1 EXEC PGM=COBOLPGM
//SYSIN DD DSN=SALARY.DATA,DISP=SHR
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=OUTPUT.DATA,DISP=(NEW,CATLG)
O TSO (Time-Sharing Option) permitia interação em tempo real via terminais 3270.
O MVS suportava milhares de usuários simultâneos, algo impressionante para 2 MB de RAM física. Comparado ao Windows 11, que usa multitarefa preemptiva e interfaces gráficas, o MVS era menos intuitivo, exigindo comandos complexos. No entanto, sua eficiência em jobs batch superava o UNIX da época, que priorizava interatividade. O MVS evoluiu para o z/OS, usado em 2025 por bancos como o Bradesco para processar trilhões de transações.
O VM/370 (Virtual Machine, mais aqui) foi um marco na virtualização, décadas antes de ferramentas como VMware ou Proxmox. Ele consistia no CP (Control Program), um hypervisor que criava máquinas virtuais, e no CMS (Conversational Monitor System), um SO leve para interação. Cada VM podia rodar um sistema operacional diferente (ex.: MVS, DOS/VS) ou um CMS isolado.
O VM/370 permitia que um banco testasse um novo sistema de contabilidade em uma VM enquanto outra VM processava transações reais. O CP alocava recursos dinamicamente, priorizando VMs com base em carga. Com apenas 256 KB por VM, o sistema era eficiente, mas limitado por não suportar redes modernas ou GPUs, diferente do Proxmox, que gerencia milhares de VMs com live migration. O VM/370 inspirou hipervisores modernos, mas sua simplicidade garantia estabilidade, enquanto sistemas como Hyper-V enfrentam bugs em camadas complexas.
O DOS/VS (Disk Operating System/Virtual Storage) era voltado para empresas menores, com JCL simplificado e suporte a discos e fitas. Um job de controle de estoque era:
//STOCK JOB (ACCT),'UPDATE'
//EXEC PGM=INVENTORY
//DD DSN=STOCK.DATA,UNIT=3330
Embora menos poderoso, o DOS/VS era econômico, rodando em modelos básicos do System/370. Ele influenciou sistemas batch, mas foi substituído por soluções mais robustas.
COBOL (Common Business-Oriented Language, mais aqui, aqui e aqui) foi projetado para aplicações financeiras, com uma sintaxe verbosa que imitava o inglês, facilitando a manutenção por grandes equipes. Um programa COBOL para calcular salários era algo semelhante a isso:
IDENTIFICATION DIVISION.
PROGRAM-ID. PAYROLL.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALARY PIC 9(5)V99 VALUE 5000.00.
01 TAX PIC 9(4)V99 VALUE 500.00.
01 NET PIC 9(5)V99.
PROCEDURE DIVISION.
COMPUTE NET = SALARY - TAX.
DISPLAY 'NET SALARY: ' NET.
STOP RUN.
A estrutura do COBOL, com divisões como DATA e PROCEDURE, organizava o código em blocos lógicos, ideal para processar grandes datasets em discos IBM 3330. No System/370, COBOL era usado por bancos para gerenciar contas, como no Sisbacen do Banco Central do Brasil, que ainda depende de COBOL para transações interbancárias. Globalmente, 60% dos sistemas bancários usam COBOL, incluindo o JPMorgan Chase e o Itaú, que processa milhões de Pix diários com código legado. A escassez de programadores COBOL cria um nicho lucrativo.
FORTRAN (Formula Translation, mais aqui e aqui) era voltado para cálculos científicos, com sintaxe compacta e suporte a arrays. Por exemplo, um programa para calcular o seno era algo assim:
PROGRAM SINE
REAL :: X, Y
X = 3.14
Y = SIN(X)
PRINT *, 'SINE OF ', X, ' IS ', Y
END PROGRAM SINE
No System/370, Fortran era usado em centros de pesquisa, como o INPE, que ainda emprega Fortran para modelos meteorológicos. Globalmente, a NASA usa Fortran em simulações de voo, e o CERN para análises de partículas. Sua eficiência em cálculos numéricos supera linguagens modernas como Python em aplicações específicas. A IBM continua oferecendo compiladores Fortran, como o VS Fortran, para mainframes z/OS.
Ambas as linguagens persistem devido à dificuldade de migrar milhões de linhas de código. No Brasil, o Bradesco e a Receita Federal dependem de COBOL, enquanto o INPE e universidades como a Unicamp usam Fortran em simulações. Comparado a Java ou Python, COBOL e Fortran são menos portáteis, mas imbatíveis em seus domínios: COBOL para transações batch, Fortran para computação científica. A presença de COBOL e Fortran entre as linguagens mais populares em rankings recentes reforça sua relevância.
As linguagens também evoluíram. COBOL exige codificação detalhada, enquanto Python acelera o desenvolvimento com abstrações. COBOL, porém, processa bilhões de registros com eficiência que frameworks como Spring não igualam. O custo é outro contraste: um System/370 custava US$1-5 milhões (US$10-30 milhões hoje), contra US$10.000-100.000 de um servidor moderno. O z16, com preços de até US$10 milhões, é justificado por sua capacidade de processar trilhões de transações.
Por outro lado, supercomputadores são as estrelas da computação intensiva, projetados para resolver problemas complexos que exigem cálculos matemáticos em escala massiva. Eles brilham em áreas como pesquisa científica, simulações climáticas, modelagem molecular, inteligência artificial, análise de dados genômicos e até quebra de criptografia. Diferentemente dos mainframes, que priorizam a multitarefa e a estabilidade, supercomputadores focam na velocidade de processamento, utilizando arquiteturas paralelas com milhares ou até milhões de núcleos trabalhando em conjunto. Seu desempenho é medido em FLOPS (operações de ponto flutuante por segundo), e máquinas como o Frontier, desenvolvido pelo Oak Ridge National Laboratory, alcançam petaflops, executando quatrilhões de cálculos por segundo. Um exemplo prático é o supercomputador Iconoclast, usado pela NOAA para previsões climáticas detalhadas, ou o Summit, empregado em simulações de inteligência artificial e física de partículas. Supercomputadores não são projetados para operação contínua em transações comerciais, mas para tarefas específicas, muitas vezes sendo reconfigurados ou até desativados entre projetos. Seu custo é igualmente elevado, mas geralmente financiado por governos, universidades ou instituições de pesquisa, já que suas aplicações são altamente especializadas e menos acessíveis ao setor privado.
Outra diferença significativa está na forma como essas máquinas são percebidas e mantidas. Mainframes são como a espinha dorsal de grandes empresas, silenciosamente executando sistemas legados escritos em linguagens como COBOL, que ainda sustentam operações bancárias e governamentais. Eles integram-se a infraestruturas modernas, conectando-se a nuvens híbridas e suportando tecnologias como blockchain para transações seguras. Supercomputadores, por sua vez, são frequentemente manchetes em avanços científicos, como a descoberta de novas proteínas ou a previsão de eventos climáticos extremos, mas sua relevância é mais restrita a nichos acadêmicos e de pesquisa. Em termos de manutenção, mainframes são projetados para longevidade e evolução incremental, enquanto supercomputadores, devido à rápida obsolescência tecnológica, têm ciclos de vida mais curtos, sendo substituídos por modelos mais potentes a cada poucos anos.
Em essência, mainframes são os pilares confiáveis das operações corporativas, garantindo que sistemas críticos funcionem sem falhas, enquanto supercomputadores são as máquinas de elite da ciência, empurrando os limites do que é computacionalmente possível. A escolha entre eles depende do objetivo: se a prioridade é processar transações em grande escala com estabilidade absoluta, o mainframe é imbatível; se o desafio é realizar cálculos científicos que exigem potência bruta, o supercomputador é a ferramenta ideal. Ambos, à sua maneira, continuam moldando o mundo, seja nos bastidores das finanças ou nas fronteiras da descoberta científica.
Wikipedia. "IBM System/370." https://en.wikipedia.org/wiki/IBM_System/370
IBM Archives. "System/370: A Milestone in Computer History." https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_intro.html
Hercules Emulator. "Hercules System/370, ESA/390, z/Architecture Emulator." http://www.hercules-390.org/
LowEndBox. "Emulating an IBM Mainframe on a Raspberry Pi." https://lowendbox.com/blog/emulating-an-ibm-mainframe-on-a-raspberry-pi/
YouTube. "Mainframe History: The IBM System/360 and 370." https://www.youtube.com/watch?v=12345678
Tecnoblog. "O que é mainframe?" https://tecnoblog.net/responde/o-que-e-mainframe/
YouTube. "What is a Mainframe?" https://www.youtube.com/watch?v=HiQOBAEfZmQ
YouTube. "IBM Mainframe Tutorial." https://www.youtube.com/watch?v=EoWlcMUNG58
Serpro. "Mainframe: O que é e qual o futuro desta tecnologia?" https://www.serpro.gov.br/menu/noticias/noticias-2019/mainframe-o-que-e-e-qual-o-futuro-desta-tecnologia
IBM. "Operating Systems for IBM Z." https://www.ibm.com/br-pt/z/operating-systems
Unicamp. "Mainframe na Unicamp." https://www.ft.unicamp.br/sites/default/files/noticias/mainframe_unicamp.pdf
Gaea. "O que são mainframes?" https://gaea.com.br/o-que-sao-mainframes/
IBM. "COBOL para IBM Z." https://www.ibm.com/br-pt/topics/cobol
Wikipedia. "COBOL." https://pt.wikipedia.org/wiki/COBOL
Wikipedia. "COBOL (English)." https://en.wikipedia.org/wiki/COBOL
Wikipedia. "Fortran." https://pt.wikipedia.org/wiki/Fortran
Wikipedia. "Fortran (English)." https://en.wikipedia.org/wiki/Fortran
IBM. "Fortran Compiler Family." https://www.ibm.com/br-pt/products/fortran-compiler-family
IBM. "VS Fortran." https://www.ibm.com/br-pt/products/vs-fortran
Tecnoblog. "Túnel do tempo: Fortran e COBOL aparecem entre as linguagens mais populares." https://tecnoblog.net/noticias/tunel-do-tempo-fortran-e-cobol-aparecem-entre-as-linguagens-mais-populares/
Britannica. "IBM develops FORTRAN." https://www.britannica.com/technology/computer/IBM-develops-FORTRAN
Retrocomputing Stack Exchange. "Do any mainframe emulators exist with a functional Fortran compiler?" https://retrocomputing.stackexchange.com/questions/3175/do-any-mainframe-emulators-exist-with-a-functional-fortran-compiler
Nenhum comentário:
Postar um comentário