IBM i - IBM i

IBM i
Logotipo da IBM i (2021) .svg
Ibmi-main-menu.png
Menu principal do IBM i 7.1, mostrado dentro de um cliente TN5250
Desenvolvedor IBM
Escrito em C ++ , C , PL / MI , Java , linguagem Assembly , Modula-2 , PL / MP
Família OS IBM CPF
Estado de trabalho Atual
Modelo fonte Fonte fechada
lançamento inicial 26 de agosto de 1988 ; 33 anos atrás ( 26/08/1988 )
Último lançamento 7.4 / 23 de abril de 2019 ; 2 anos atrás ( 23/04/2019 )
Alvo de marketing Minicomputador , computador de médio porte e servidor corporativo
Disponível em inglês
Método de atualização Correções temporárias de programa (PTFs)
Gerenciador de pacotes RPM e YUM para pacotes de código aberto
Plataformas IBM Power Systems , AS / 400 IMPI e PowerPC
Tipo de kernel compartilha muitas filosofias de design de Microkernel (SLIC) e de máquina virtual (TIMI)

Interface de usuário padrão
Interface do usuário baseada em texto
Licença Proprietário
Precedido por Programa de Suporte do Sistema , Instalação do Programa de Controle
Website oficial IBM i

IBM i (o i que significa integrado ) é um sistema operacional desenvolvido pela IBM para IBM Power Systems . Foi originalmente lançado em 1988 como OS / 400 , junto com a linha de sistemas IBM AS / 400 . Foi renomeado para i5 / OS em 2004, antes de ser renomeado pela segunda vez para IBM i em 2008. É uma evolução do sistema operacional System / 38 CPF , com camadas de compatibilidade para aplicativos System / 36 SSP e AIX . Ele herda uma série de recursos distintos da plataforma System / 38, incluindo a Interface de Máquina , a implementação de endereçamento baseado em objeto no topo de um armazenamento de nível único e a integração estreita de um banco de dados relacional no sistema operacional.

História

Origem

OS / 400 foi desenvolvido juntamente com a plataforma de hardware AS / 400 a partir de dezembro de 1985. O desenvolvimento começou na sequência do fracasso do projeto Fort Knox , que tentou consolidar várias linhas de produtos IBM de gama média e minicomputador em uma única baseada no IBM 801 processador. O projeto Fort Knox paralisou o desenvolvimento de novos produtos na IBM Rochester , deixando a IBM sem um sistema de médio porte competitivo.

Durante o projeto de Fort Knox, um projeto de skunkworks foi iniciado em Rochester por engenheiros que acreditavam que o fracasso de Fort Knox era inevitável. Esses engenheiros desenvolveram um código que permitiu que os aplicativos System / 36 rodassem sobre o System / 38, e quando Fort Knox foi cancelado, este projeto skunkworks evoluiu para um projeto oficial para substituir o System / 36 e o ​​System / 38 por um único novo plataforma de hardware. O projeto ficou conhecido como Silverlake (em homenagem a Silver Lake em Rochester, Minnesota ). O sistema Silverlake construído sobre as tentativas da IBM Rochester de consolidar o System / 38 e System / 36 e foi essencialmente uma evolução do System / 38 que reutilizou parte do hardware e software desenvolvido para o projeto Fort Knox. O sistema operacional do Silverlake tinha o codinome XPF (Extended CPF ) e originalmente começou como uma porta do CPF para o hardware Fort Knox. Além de adicionar suporte para aplicativos do System / 36, alguns dos recursos de interface do usuário e facilidade de uso do System / 36 foram transferidos para o novo sistema operacional.

Silverlake estava disponível para teste de campo em junho de 1988 e foi anunciado oficialmente em agosto daquele ano. Nesse ponto, ele havia sido renomeado para Application System / 400 , e o sistema operacional foi denominado Operating System / 400 .

A mudança para PowerPC

A porta para PowerPC exigiu uma reescrita da maior parte do código abaixo do TIMI . As primeiras versões do OS / 400 herdaram as camadas de Microcódigo Horizontal e Vertical do Sistema / 38, embora tenham sido renomeadas para Código Interno Licenciado Horizontal (HLIC) e Código Interno Licenciado Vertical (VLIC), respectivamente. A porta para o novo hardware substituiu o IMPI e o microcódigo associado, que exigia que o VLIC fosse reescrito para direcionar o PowerPC em vez do IMPI, e para que a funcionalidade do sistema operacional previamente implementada no microcódigo HLIC fosse reimplementada em outro lugar. Isso fez com que o HLIC e o VLIC fossem substituídos por uma única camada chamada System Licensed Internal Code (SLIC). O SLIC foi implementado em um estilo orientado a objetos com mais de 2 milhões de linhas de código C ++ , substituindo todo o código HLIC e a maior parte do código VLIC. Devido à quantidade de trabalho necessária para implementar o SLIC, a IBM Rochester contratou várias centenas de programadores C ++ para o projeto, que trabalharam no SLIC paralelamente às novas revisões do VLIC para os sistemas CISC AS / 400. O primeiro lançamento do OS / 400 para suportar hardware baseado em PowerPC foi o V3R6.

Reformulação

Logotipo do IBM i5 / OS
Logotipo original da IBM i

A linha de produtos AS / 400 foi renomeada várias vezes ao longo das décadas de 1990 e 2000. Como parte da mudança de marca de 2004 para eServer i5 , OS / 400 foi renomeado para i5 / OS ; o 5 significa o uso de processadores POWER5 . A primeira versão do i5 / OS, V5R3, foi descrita pela IBM como "um nome diferente para o mesmo sistema operacional".

Em 2006, a IBM rebatizou a linha AS / 400 pela última vez para System i . Em abril de 2008, a IBM consolidou o System i com a plataforma System p para criar IBM Power Systems . Ao mesmo tempo, o i5 / OS foi renomeado para IBM i , a fim de remover a associação com processadores POWER5. As duas versões mais recentes do sistema operacional naquela época, que haviam sido lançadas como i5 / OS V5R4 e V6R1, foram renomeadas para IBM i 5.4 e 6.1.

Junto com a mudança de marca para IBM i, a IBM mudou a nomenclatura de versão para o sistema operacional. As versões anteriores usavam um esquema de versão, versão, modificação , por exemplo, V2R1M1. Isso foi substituído por um esquema Version.Release , por exemplo, 6.1. Começando com o IBM i 7.1, a IBM substituiu os releases de Modificação por Atualizações de Tecnologia . As atualizações de tecnologia são fornecidas como PTFs opcionais para versões específicas do sistema operacional, que adicionam nova funcionalidade ou suporte de hardware ao sistema operacional.

Arquitetura

Diagrama mostrando as camadas arquitetônicas do sistema operacional IBM i e sua relação com o hardware e os aplicativos do usuário

O IBM i é dividido em duas camadas, o System Licensed Internal Code (SLIC) dependente de hardware e o Extended Control Program Facility (XPF) independente de hardware . Eles são divididos por uma camada de abstração de hardware chamada Technology Independent Machine Interface (TIMI). A IBM costuma usar nomes diferentes para TIMI, SLIC e XPF na documentação e nos materiais de marketing, por exemplo, a documentação do IBM i 7.4 se refere a eles como IBM i Machine Interface , IBM i Licensed Internal Code e IBM i Operating System, respectivamente.

TIMI

O TIMI isola usuários e aplicativos do hardware subjacente. Esse isolamento é mais completo do que as abstrações de hardware de outros sistemas operacionais e inclui abstrair a arquitetura do conjunto de instruções do processador, o tamanho do espaço de endereço e as especificações de E / S e persistência. Isso é realizado por meio de dois mecanismos inter-relacionados:

  • Compiladores para IBM i não geram código de máquina nativo diretamente, em vez disso, geram uma representação intermediária de alto nível definida pelo TIMI. Quando um programa é executado, o sistema operacional realiza a tradução antecipada das instruções TIMI em código de máquina nativo para o processador e armazena o código de máquina gerado para execução futura do programa. Se o processo de tradução for alterado, ou um conjunto de instruções de CPU diferente for adotado, o sistema operacional pode regenerar de forma transparente o código de máquina a partir das instruções TIMI sem a necessidade de recompilar a partir do código-fonte.
  • Em vez de operar em endereços de memória, as instruções TIMI operam em objetos . Todos os dados no IBM i, como arquivos de dados, código-fonte, programas e regiões de memória alocada, são encapsulados dentro de objetos gerenciados pelo sistema operacional (cf o modelo " Tudo é um arquivo " no Unix ). Os objetos IBM i têm um tipo fixo, que define o conjunto de operações aplicáveis ​​que podem ser realizadas neles (por exemplo, um objeto Programa pode ser executado, mas não pode ser editado). O modelo de objeto oculta se os dados são armazenados no armazenamento primário ou secundário . Em vez disso, o sistema operacional lida automaticamente com o processo de recuperação e armazenamento das alterações no armazenamento permanente.

O TIMI é uma extensão compatível com versões anteriores da interface System / 38 Machine e permite que os aplicativos IBM i sejam completamente independentes do hardware subjacente. O isolamento de hardware fornecido pelo TIMI permitiu que a IBM substituísse a arquitetura IMPI de 48 bits do AS / 400 pela arquitetura RS64 de 64 bits em 1995. Os aplicativos compilados em sistemas usando o conjunto de instruções IMPI podiam ser executados sobre os sistemas RS64 mais novos sem qualquer alterações de código, recompilação ou emulação, ao mesmo tempo que permite que esses aplicativos se beneficiem do endereçamento de 64 bits.

O armazenamento das instruções TIMI junto com as instruções do código de máquina nativo é conhecido como observabilidade . Em 2008, o lançamento do i5 / OS V6R1 (mais tarde conhecido como IBM i 6.1) introduziu uma série de mudanças na camada TIMI que causou problemas para software de terceiros que removeu a capacidade de observação dos objetos de aplicativos enviados aos clientes.

SLIC

IBM i durante o carregamento do programa inicial do SLIC

O SLIC consiste no código que implementa o TIMI no topo da arquitetura IBM Power. Além de conter a maior parte da funcionalidade normalmente associada a um kernel do sistema operacional , ele é responsável por traduzir as instruções TIMI em código de máquina e também implementa algumas funcionalidades de alto nível que são expostas por meio do TIMI, como o banco de dados relacional integrado do IBM i. O SLIC implementa o modelo de armazenamento baseado em objeto do IBM i no topo de um esquema de endereçamento de armazenamento de nível único , que não faz distinção entre armazenamento primário e secundário e, em vez disso, gerencia todos os tipos de armazenamento em um único espaço de endereço virtual . O SLIC é implementado principalmente em C ++ e substituiu as camadas HLIC e VLIC usadas nas versões do OS / 400 anteriores ao V3R6.

XPF

O XPF consiste no código que implementa os componentes independentes de hardware do sistema operacional, que são compilados em instruções TIMI. Os componentes do XPF incluem a interface do usuário, a linguagem de controle , gerenciamento de dados e utilitários de consulta, ferramentas de desenvolvimento e utilitários de gerenciamento de sistema. O XPF também contém o ambiente System / 36 e o ambiente System / 38 , que fornecem APIs e utilitários de compatibilidade retroativa para aplicativos e dados migrados de sistemas SSP e CPF. O XPF é o nome interno da IBM para esta camada e, como o nome sugere, começou como uma evolução do System / 38 Control Program Facility . O XPF é implementado principalmente em PL / MI , embora outras linguagens também sejam usadas.

PASE

O Portable Application Solutions Environment (originalmente conhecido como Private Address Space Environment ) é uma camada de compatibilidade AIX para IBM i. Ele fornece compatibilidade binária para executáveis ​​no modo de usuário que não interagem diretamente com o kernel do AIX e suporta as interfaces binárias de aplicativo AIX de 32 e 64 bits . O PASE foi incluído pela primeira vez em uma forma limitada e não documentada na versão V4R3 do OS / 400 para oferecer suporte a uma porta do Smalltalk . Ele foi anunciado pela primeira vez para os clientes na época do lançamento do V4R5, quando já havia ganhado uma funcionalidade adicional significativa.

O PASE consiste no espaço do usuário do AIX em execução em uma interface de chamada do sistema implementada pelo SLIC. As interfaces de chamada do sistema permitem a interoperabilidade entre o PASE e os aplicativos IBM i nativos, por exemplo, os aplicativos PASE podem acessar o banco de dados integrado ou chamar os aplicativos IBM i nativos e vice-versa. Durante a criação do PASE, um novo tipo de objeto de armazenamento de nível único denominado Teraspace foi adicionado ao sistema operacional, o que permite que cada processo PASE tenha um espaço privado de 1TiB que é endereçado com ponteiros de 64 bits. Isso foi necessário porque todos os jobs do IBM i (ou seja, processos) geralmente compartilham o mesmo espaço de endereço. Os aplicativos PASE não usam as instruções TIMI independentes de hardware e, em vez disso, são compilados diretamente no código de máquina Power.

O PASE é diferente do ambiente Qshell , que é uma implementação de um shell Unix e utilitários associados construídos sobre APIs compatíveis com POSIX nativas do IBM i.

Recursos

Gerenciamento de banco de dados

O IBM i apresenta um banco de dados relacional integrado atualmente conhecido como IBM Db2 para IBM i . O banco de dados evoluiu a partir do banco de dados não relacional System / 38, ganhando suporte para o modelo relacional e SQL . O banco de dados originalmente não tinha nome, em vez disso foi descrito simplesmente como "suporte de banco de dados". Recebeu o nome de DB2 / 400 em 1994 para indicar funcionalidade comparável a outros bancos de dados comerciais da IBM. Apesar da marca Db2, Db2 para IBM i é uma base de código totalmente separada para Db2 em outras plataformas e está totalmente integrado na camada SLIC do IBM i, em vez de ser um produto opcional.

O IBM i fornece dois mecanismos para acessar o banco de dados integrado - a chamada interface nativa , que é baseada no modelo de acesso ao banco de dados do System / 38, e SQL . A interface nativa consiste na linguagem Data Description Especificações (DDS), que é usada para definir esquemas e a API de OPNQRYFcomando ou QQQQRYconsulta. Certos recursos do Db2 for i, como gerenciamento de banco de dados relacional de objeto, requerem SQL e não podem ser acessados ​​por meio da interface nativa. O IBM i tem dois otimizadores de consulta separados, conhecidos como Classic Query Engine (CQE) e SQL Query Engine (SQE). Eles são implementados dentro do SLIC junto com um Query Dispatcher que seleciona o otimizador apropriado dependendo do tipo de consulta. O acesso remoto por meio da interface nativa e SQL é fornecido pela Arquitetura de Gerenciamento de Dados Distribuídos (DDM) e Arquitetura de Banco de Dados Relacional Distribuído, respectivamente.

Um mecanismo de armazenamento para MySQL e MariaDB chamado IBMDB2Ipermite que aplicativos projetados para esses bancos de dados usem Db2 for i como um armazenamento de apoio. Outros bancos de dados de código aberto foram transferidos para IBM i, incluindo PostgreSQL , MongoDB e Redis . Esses bancos de dados são executados no ambiente PASE e são independentes dos recursos de banco de dados integrados do sistema operacional.

Networking

O IBM i suporta rede TCP / IP , além da IBM Systems Network Architecture proprietária .

Os sistemas IBM i eram historicamente acessados ​​e gerenciados por meio de terminais IBM 5250 conectados ao sistema com cabeamento twinax . Com o declínio do hardware de terminal dedicado, os sistemas IBM i modernos são normalmente acessados ​​por meio de emuladores de terminal 5250 . A IBM fornece dois produtos de emulador de terminal para IBM i:

  • O IBM i Access Client Solutions é um cliente baseado em Java executado em Linux , macOS e Windows para fornecer emulação 5250.
  • O IBM i Access para Web / Mobile fornece emulação 5250 baseada na web.

Além disso, a IBM fornece um console de gerenciamento baseado na web e um produto de análise de desempenho denominado IBM Navigator for i.

Código aberto

Alguns dos aplicativos de código aberto transferidos para o IBM i incluem:

O software de código aberto para IBM i geralmente é empacotado usando o formato de pacote RPM e instalado com o gerenciador de pacotes YUM . YUM e RPM substituíram o produto 5733-OPS, que era usado anteriormente para instalar software de código aberto no IBM i.

Programação

As linguagens de programação disponíveis na IBM para IBM i incluem RPG , Linguagem de Controle , C , C ++ , Pascal , Java , EGL , Smalltalk , COBOL , BASIC , PL / I e REXX . O Integrated Language Environment (ILE) permite que programas de linguagens compatíveis com ILE (C, C ++, COBOL, RPG e CL) sejam vinculados ao mesmo executável e procedimentos de chamada escritos em qualquer uma das outras linguagens ILE.

Os sistemas IBM também podem vir com software de programação e desenvolvimento, como o Programming Development Manager . A IBM fornece um ambiente de desenvolvimento integrado baseado em Eclipse para IBM i denominado IBM Rational Developer for i.

O IBM i usa EBCDIC como codificação de caracteres padrão , mas também fornece suporte para ASCII , UCS-2 e UTF-16 .

Armazenar

No IBM i, as unidades de disco podem ser agrupadas em um pool de armazenamento auxiliar (ASP) para organizar os dados para limitar o impacto das falhas do dispositivo de armazenamento e para reduzir o tempo de recuperação. Se ocorrer uma falha de disco, apenas os dados do pool que contém a unidade com falha precisam ser recuperados. Os ASPs também podem ser usados ​​para melhorar o desempenho, isolando objetos com características de desempenho semelhantes, por exemplo, receptores de diário, em seu próprio pool.

Por padrão, todas as unidades de disco são atribuídas ao pool 1. O conceito de pools do IBM i é semelhante ao conceito Unix / Linux de grupos de volumes ; entretanto, com o IBM i é comum que todas as unidades de disco sejam atribuídas a um único ASP.

Segurança

O IBM i foi um dos primeiros sistemas operacionais de uso geral a obter a classificação de segurança C2 da NSA . O suporte para segurança de nível C2 foi adicionado pela primeira vez na versão V2R3 do OS / 400.

Cronograma de lançamento

Versão Branding Data de lançamento Fim do
suporte do programa
Versão antiga, não mantida mais: V1R1 OS / 400 26/08/1988 31/05/1993
Versão antiga, não mantida mais: V1R1M2 25/11/1988
Versão antiga, não mantida mais: V1R2 27/10/1989
Versão antiga, não mantida mais: V1R3 28/09/1990
Versão antiga, não mantida mais: V2R1 24/05/1991 30/06/1994
Versão antiga, não mantida mais: V2R1M1 06/03/1992
Versão antiga, não mantida mais: V2R2 18/09/1992 31/03/1995
Versão antiga, não mantida mais: V2R3 17/12/1993 31/05/1996
Versão antiga, não mantida mais: V3R0M5 04/05/1994 31/05/1997
Versão antiga, não mantida mais: V3R1 25/11/1994 31/10/1998
Versão antiga, não mantida mais: V3R2 21/06/1996 31/05/2000
Versão antiga, não mantida mais: V3R6 22/12/1995 31/10/1998
Versão antiga, não mantida mais: V3R7 08/11/1996 30/06/1999
Versão antiga, não mantida mais: V4R1 29/08/1997 31/05/2000
Versão antiga, não mantida mais: V4R2 27/02/1998 31/05/2000
Versão antiga, não mantida mais: V4R3 11/09/1998 31/01/2001
Versão antiga, não mantida mais: V4R4 21/05/1999 31/05/2001
Versão antiga, não mantida mais: V4R5 28/07/2000 31/07/2002
Versão antiga, não mantida mais: V5R1 25/05/2001 30/09/2005
Versão antiga, não mantida mais: V5R2 30/08/2002 30/04/2007
Versão antiga, não mantida mais: V5R3 i5 / OS 11/06/2004 30/04/2009
Versão antiga, não mantida mais: V5R4 / 5.4 i5 / OS
Posteriormente IBM i
14/02/2006 30/09/2013
Versão antiga, não mantida mais: V6R1 / 6.1 21/03/2008 30/09/2015
Versão antiga, não mantida mais: 6.1.1 IBM i 23/10/2009
Versão antiga, não mantida mais: 7,1 23/04/2010 30/04/2018
Versão antiga, não mantida mais: 7,2 02/05/2014 2021-04-30
Versão mais antiga, mas ainda mantida: 7,3 15/04/2016 TBA
Versão estável atual: 7,4 21/06/2019 TBA
Lenda:
Versão antiga
Versão mais antiga, ainda mantida
Última versão
Versão de visualização mais recente
Lançamento futuro

Veja também

Referências

links externos