System i

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Le serveur Application System/400 (plus connu sous le nom d'AS/400, puis de iSeries et enfin de System i5) est un mini-ordinateur de la gamme IBM.

L'AS/400 a été commercialisé le 21 juin 1988, il sera renommé eServer iSeries en 2000 puis System i5 en 2004 avec l'arrivée des modèles pourvus de processeurs POWER5. Qu'il s'agisse d'AS/400, de iSeries ou de System i5, l'ensemble des serveurs de cette famille a été nommé System i. Mais en avril 2008, IBM a totalement fusionné les gammes System i et System p pour donner naissance aux IBM Power Systems. Le système d'exploitation de Rochester a également été renommé. Il faut désormais parler de : IBM i operating System

Les serveurs System i sont utilisés par près de 240 000 entreprises à travers le monde[1]. Ils intéressent principalement les PME et les sites atomisés des grands groupes.

Histoire[modifier | modifier le code]

Ancien AS/400 modèle 150

L'histoire de l'AS/400 et du System i remonte à la fin des années 1960 avec Frank G. Soltis. Ce dernier travaille sur un système basé sur une technologie nouvelle. Il présente son projet à la direction d'IBM le 8 janvier 1970. Cette nouvelle architecture devra remplacer l'actuel System/3. En 1972, sous le nom de projet Future System, la conception du System/38 (S/38) débute avec à sa tête Frank G. Soltis, Dick Bains et Roy L. Hoffman. Ces derniers définissent les cinq concepts fondamentaux du S/38, qui deviendront plus tard ceux du System i (ex AS/400). En 1973, la direction d'IBM donne son accord pour la réalisation du System/38 avec l'annonce officielle le 24 octobre 1978. Son système d'exploitation se nomme CPF (Control Program Facility). La première mouture du System/38, assez rudimentaire, sort en juillet 1980. Il faut attendre 1981 pour voir la version finale. Malgré des débuts prometteurs, le System/38 rencontre quelques problèmes de mise au point.

Entre temps, le System/36 (S/36) est apparu (mai 1983). Il s’agit d’un autre mini de la gamme IBM mais avec une architecture beaucoup plus conventionnelle. L’équipe chargée de la mise au point du System/38, basée à Rochester dans le Minnesota, poursuit le développement de son système et décide d’y intégrer d'autres innovations. Avec l’accord de la direction, elle lance en novembre 1985, le projet Silverlake (du nom d’un lac de Rochester : Silver Lake). Il doit permettre à IBM de mettre sur le marché un serveur encore plus novateur que le System/38 et qui devra également remplacer le System/36. Le projet Silverlake est le début officiel de l'AS/400. Il découle directement du System/38, mais il sera plus fiable et sensiblement amélioré. Lors de sa sortie le 21 juin 1988, son système d'exploitation, l'OS/400 ou XPF (eXtended control Program Facility), sera une très forte évolution du CPF (système d'exploitation du System/38) auquel on aura agrégé l'équivalent de 3 versions.

Le nom du projet aurait dû être System/40 (S/40), mais la direction a préféré montrer qu'il s'agissait d'un serveur sensiblement plus évolué en le nommant Application Server (AS). De plus, la branche PC d'IBM souhaitait réserver pour ses besoins, les chiffres inférieurs à 100. C'est pourquoi, il a été convenu d'ajouter un 0 au chiffre 40 et l'on a obtenu AS/400.

La naissance des AS/400 eServer puis iSeries verra apparaître la possibilité de « découper » plusieurs machines logiques (ou « machines virtuelles / LPAR (Logical Partitioning ») dans une machine physique. Puis, enchaînement logique, il est désormais possible de faire tourner d'autres systèmes que l'OS/400 sur ces machines logiques appelées partitions logiques. Ainsi aujourd'hui un « System i5 » peut supporter des partitions i5/OS, Linux, AIX ou Virtual IO Server grâce à son hyperviseur. Le serveur i5 est également capable d'héberger des serveurs x86 sous Linux, Windows ou VMWare ESX via les technologies IxS, IxA ou iSCSI. VMWare n'est supporté que sur iSCSI.

IBM a renommé ses machines iSeries puis System i5 mais la plupart des informaticiens, des utilisateurs et des SSII continuent, à parler d'AS/400.

Le langage de développement rapide, d'origine issu de l'IBM 34, portait initialement le nom de GAP, pour Générateur automatique de programmes (RPG en anglais, pour Report Program Generator). Bien que concurrencé par la version iSeries du langage Cobol, le GAP était largement diffusé sur ce système OS/400. Considérablement amélioré sur AS/400, il y prit le nom de GAP/400 (RPG/400). Pour de plus amples renseignements sur le langage RPG, se reporter à l'article Générateur automatique de programmes. Avec l'apparition de la version V3R1M0 (1995), une nouvelle version du RPG est venue s'ajouter au RPG/400 (alias le RPG/III). Il s'agit du RPG/ILE (alias le RPG/IV) qui permet désormais la programmation orientée objet et la programmation visuelle.

Les principes fondamentaux[modifier | modifier le code]

Le System i est défini par des concepts originaux que l'on nomme principes fondamentaux, il en existe cinq :

  • Technology Independence (Indépendance vis-à-vis de la technologie)
  • Object-Based Design (Conception Basée Objet)
  • Hardware Integration (Intégration Matérielle)
  • Software Integration (Intégration Logicielle)
  • Single-Level Store (Espace Adressable Unique)

Indépendance vis-à-vis de la technologie[modifier | modifier le code]

Le premier principe et peut-être le plus important est l’indépendance technologique. Le System i, contrairement aux autres systèmes, n’est pas défini par le matériel. Un programme ne parle pas directement au matériel, il dialogue à une interface machine indépendante de la technologie (TIMI = Technology Independent Machine Interface ou plus simplement MI). Entre cette interface et le matériel proprement dit se trouvent plusieurs millions de lignes de code ou plus exactement le microcode : SLIC (System Licenced Internal Code) sur les AS/400 ou iSeries et LIC (Licensed Internal Code) sur les System i5.

Cette couche logicielle isole les applications des caractéristiques du matériel sous-jacent. Un programme ignore totalement ce dernier. Par conséquent, quand la technologie processeur change, il suffit de réécrire le SLIC en fonction des changements technologiques et on préserve ainsi l’intégrité de l’interface machine. L’autre avantage de l’indépendance réside dans le fait que les programmes utilisateurs ignorent également les changements technologiques, ainsi, ils peuvent bénéficier des avantages sans les inconvénients. Lors du passage du processeur CISC 48-bits à RISC 64-bits, la plupart des clients n’ont eu qu’à transférer leurs programmes sur les nouveaux AS/400 pour les exécuter en 64 bits. Il ne s'agissait pas d'une émulation comme le font maintenant d'autres systèmes d'exploitation ou processeurs, la partie MI des applications a été remplacée automatiquement, elles sont devenues 64 bits en natif.

Conception basée objet[modifier | modifier le code]

Le System i (AS/400-iSeries-i5) est entièrement basé objet. Tous les éléments du système (programmes, fichiers, files de messages…) sont des objets. Chaque objet comporte deux parties inséparables : la partie descriptive, qui définit les modalités d’utilisation de ces données et la partie données, constituant l’aspect fonctionnel de l’objet. Si un objet est défini comme un programme, sa partie descriptive énonce que la partie de données sera traitée comme du code compilé, exécutable, en lecture seule. Les seules opérations admises sur cet objet sont celles « sensées » pour un programme. Ainsi, on peut écrire au milieu d’un fichier de données, mais pas au milieu de code compilé : le système s’y opposera. La conception en deux parties des objets du System i assure donc l’intégrité des données pour tous les objets du système.

Contrairement aux autres systèmes d’exploitation, qui manipulent des pointeurs, l’OS/400-i5/OS et le TIMI ne connaissent que des objets. Les pointeurs utilisés uniquement par le microcode ont une taille de 16 octets (8 pour l’adresse MI et 8 pour des informations relatives à l’objet et de l’espace réservé). Au-dessus du MI, les pointeurs sont encapsulés. Il existe également un mécanisme de détection, au moyen d'une balise, des pointeurs invalides et d’utilisation « illégale ».

La conception basée objet a d’importantes implications en matière de sécurité. En effet, les virus pénètrent souvent dans les systèmes déguisés en données. Une fois à l’intérieur, le virus essaie de devenir du code exécutable pour causer des ravages. Un tel changement de caractéristique est impossible sur System i. Si un flux entre en tant que données, il gardera toujours ces caractéristiques. C’est une des nombreuses raisons qui font la réputation en matière de sécurité et d’intégrité du System i.

Intégration Matérielle[modifier | modifier le code]

Alors que l’environnement informatique technique/scientifique privilégie le calcul (opérations complexes sur une quantité de données relativement petite), l’environnement informatique de gestion privilégie l’information (des opérations simples sur de gros volumes de données) ou plus exactement les entrées/sorties (I/O). Comme le System i est optimisé pour la gestion, il présente des caractéristiques matérielles lui permettant d’être très performant dans un environnement privilégiant l’information. Dans une transaction de gestion classique, un programme d’application est chargé en mémoire principale et le processeur commence à l’exécuter. Quand le processeur rencontre une demande de lecture de données sur disque, il délègue cette requête au processeur d’I/O (IOP) du disque. Après quoi, le processeur exécute un autre programme d’application et ne revient au programme original que lorsque les données demandées antérieurement sont disponibles en mémoire centrale.

Sur les plus gros System i, il est possible d'avoir des centaines de processeurs d'entrées/sorties (IOP) connectés aux bus haute vitesse, créant ainsi un débit de données extrêmement puissant.

La tendance actuelle est de faire disparaître l'intelligence de ces processeurs complémentaires en partie sur les cartes PCI traditionnelles.

Intégration Logicielle[modifier | modifier le code]

Aucun problème d’incompatibilité de version en raison de déphasage de programmes comme sur d’autres systèmes (avec les différentes versions de DLL par exemple). Tous les composants nécessaires sont entièrement intégrés dans le système d’exploitation standard. IBM teste tous ces composants mêlés aux autres, pour s’assurer que le système d’exploitation fonctionne comme une seule entité. De plus, quand IBM modifie l’OS/400-i5/OS, elle remet aux clients une nouvelle version de tout le système d’exploitation. Il n’y a donc jamais aucun conflit de version entre les divers composants de l’OS/400-i5/OS parce qu’IBM livre un système d’exploitation complet et entièrement testé à chaque nouvelle version. Les avantages de ce système d’exploitation hautement intégré sont évidents pour les clients : déploiement rapide des nouvelles solutions de gestion pour un coût remarquablement bas avec une sécurité maximum.

Espace Adressable Unique[modifier | modifier le code]

Il s'agit de la notion de mémoire virtuelle adaptée au System i. Chaque octet de mémoire (principale et secondaire) possède une adresse. Le système considère l’ensemble comme unique. Un System i ne dit jamais « mémoire pleine » (sauf quand il ne dispose plus de mémoire secondaire), la seule conséquence étant les temps de réponse qui peuvent se dégrader à cause de la pagination. L’énorme espace d’adressage 64 bits du System i peut adresser 18 trillions d’octets de données (18 x 1018 soit 18 446 744 073 709 551 616 octets).

Pour comparaison, les environnements Wintel à base de processeur Intel ou AMD, bien que disposant de processeurs 64 bits sont très loin d'atteindre un adressage mémoire à 64 bits.

  • Intel EMT64T Nocona 64-bit  : adressage mémoire à 36-bit (soit 64 Go maximum)
  • Intel EMT64T Potomac 64-bit : adressage mémoire à 40-bit (soit 1 To maximum)
  • Intel Itanium 64-bit  : adressage mémoire à 44-bit (soit 18 To maximum)
  • AMD Opteron 64-bit  : adressage mémoire à 48-bit (soit 256 To maximum)
  • Intel Itanium 2 64-bit  : adressage mémoire à 50-bit (soit 1024 To maximum)

Ces derniers chiffres peuvent sembler importants, mais ils sont très loin des valeurs atteintes par l'OS/400-i5/OS. En effet, la différence entre 50 et 64-bit est énorme, et cet adressage gigantesque permet aux System i de répondre positivement à la définition de la mémoire virtuelle contrairement à Windows ou Unix par exemple qui en raison d'un plus faible adressage mémoire sont obligés de séparer la mémoire virtuelle de la mémoire centrale (RAM). Conséquences, les différents travaux du System i peuvent partager instantanément leurs informations car elles sont toutes dans un même espace de stockage. Windows et Unix doivent créer des espaces mémoire distincts pour chaque processus rendant le partage extrêmement difficile et très consommateur de ressources processeur.

Sur le plan architectural, le System i peut même aller jusqu’à un adressage sur 128 bits. À l’intérieur de cet espace 64 bits, se trouve le stockage « réel » : disque et mémoire centrale. Mais, comme le System i gère automatiquement tous les moyens de stockage comme un espace d’adressage unique, les utilisateurs n’ont pas à s’en préoccuper. Pour eux, tous les programmes et les données résident simplement dans ce vaste espace, et ils doivent seulement faire référence à un programme par son nom sans se préoccuper de l’endroit où il réside physiquement.

Les données et programmes sont éclatés sur tous les disques physiques pour optimiser la vitesse d'accès par l'utilisation de plusieurs bras en parallèle.

La réentrance de tous les programmes est gérée par le système: si plusieurs utilisateurs ont besoin du même programme, le système ne va charger qu'une seule copie en mémoire principale.

Nul besoin, comme Unix et Windows, de recréer un espace d’adressage distinct avant de commencer l’exécution d’une nouvelle tâche. Conçu pour les fréquents changements de tâches inhérents aux environnements de gestion, le stockage à un seul niveau du System i simplifie la gestion du stockage tout en offrant des performances exceptionnelles[réf. nécessaire]. L’espace adressable unique n’est vu que par le microcode (SLIC), le MI et l’OS/400-i5/OS n’ont pas de notion de mémoire, ils adressent des objets et non pas une adresse mémoire.

Cette architecture de gestion de la mémoire est également employée sur les supercalculateurs les plus puissants du monde : IBM Blue Gene (212 992 processeurs). En effet, ces supercomputers sont également développés à Rochester Minnesota dans l'antre du System i par de nombreux développeurs de l'OS/400-i5/OS.

System i aujourd'hui[modifier | modifier le code]

La base de données intégrée se nomme DB2/UDB for System i et possède toutes les fonctionnalités d'une base de données moderne. Elle est même la seule base de données au monde (depuis la version V5R4) à respecter l'intégralité des normes du Core SQL 2011.

Les fonctions habituellement livrées avec un serveur Unix sont aussi proposées :

  • un serveur Web (reposant sur un moteur Apache modifié par IBM dans le cas d'AIX : IBM Http Server)
  • serveurs DNS, DHCP, SMTP, Filtrage IP, etc.
  • serveurs d'application (TOMCAT, Websphere Application serveur, propriétaire d'origine IBM)
  • machine virtuelle Java 32-bit ou 64-bit
  • PHP et le support des Web services depuis RPG

De nos jours les machines System i disposent de ressources systèmes importantes (cf.évolutions actuelles dans liens externes) :

  • Pour la série « System i5 » 5xx :
    • un maximum de 64 processeurs de type POWER5/POWER5+/POWER6 (64 bits)
    • un maximum de 2 téraoctets de mémoire centrale
    • Un maximum de 381 téraoctets d'espace de stockage
  • Pour la série « 8xx »
    • un maximum de 32 processeurs de type POWER4/StarSeries
    • un maximum de 256 gigaoctets de mémoire centrale
    • un maximum de 144 téraoctets d'espace de stockage
  • Capacités applicatives de l'IBM i (ex As400)
    • Interface Web
    • Interface 5250
    • Interface Eclipse
    • Interface C/S

Notes et références[modifier | modifier le code]

  1. Selon document IBM "System i architecture" [PDF] (citation : "240 000 customers world-wide", page 10 du PDF)

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  • Frank G. Soltis, Voyage à l'intérieur de l'AS/400 (titre original Inside the AS/400), D&S communications
  • Frank G. Soltis Fortress Rochester — The inside story of the IBM iSeries
  • Gary Mullen-Schulz, Blue Gene/L - “World's Fastest Supercomputer”
  • Tuning IBM eServer xSeries Servers for Performances (SG24-5287)
  • Bernard COYDON, AS/400, Editions Eyrolles
  • Bernard COYDON, Le langage de contrôle sur AS/400, Editions Eyrolles

Liens externes[modifier | modifier le code]