# General Comprehensive Operating System

GCOS /djee'kohs/ (General Comprehensive Operating System) est une famille de systèmes d'exploitation orientée mainframes.
La première version a été développée par General Electric à partir de 1962 ; nommée historiquement GECOS (the General Electric Comprehensive Operating Supervisor).
Il reste encore utilisé de nos jours sur de gros systèmes. Les programmes sur ce système d'exploitation sont généralement écrits en Cobol, Fortran (voire Algol), et maintenant Java.

## Architecture système et concepts

GCOS utilise le concept de processus pour décrire des séquences d'instructions qui agissent sur un ensemble de données et qui s'exécutent sur un processeur. Il a également le concept de multitâche. De plus, il existe une notion de groupe de processus, entité contenant plusieurs processus chargés et ordonnancés simultanément. GCOS fournit également des sémaphores pour synchroniser des processus entre eux ou avec le matériel.
Chaque processus possède son propre espace d'adressage, sur lequel les droits d'accès sont une combinaison de droits élémentaires (lecture, écriture, exécution). L'espace d'adressage est segmenté, ce qui permet le partage de données entre processus. La gestion des privilèges est basée sur les anneaux : chaque processus est associé à un anneau, plus le niveau de l'anneau est bas, plus le processus possède de privilèges.
Le système d'exploitation peut gérer les ordinateurs multi-processeurs (SMP). Il est basé sur un micro-noyau implanté sur le firmware de la machine. Il peut également fonctionner dans des modes d'émulation avec de très faibles pertes de vitesse.

## Histoire

Le système d'exploitation GECOS-II a été développé par General Electric pour le GE-635, une machine 36 bits, de 1962 à 1964. Contrairement à la rumeur, GECOS n'est pas une copie de System/360 (rumeur reprise par le Jargon File). L'architecture du GE-635 était très différente de celle de l'IBM 360, et GECOS était bien plus ambitieux que DOS/360. Une des caractéristiques marquantes de la seconde génération de ce système d'exploitation était le support du temps partagé (Time-Sharing, TSS) ainsi que du traitement par lots (batch).
Après le rachat de la division des ordinateurs de General Electric par Honeywell, GECOS-III a été rebaptisé GCOS-3, et la ligne de machines renommée H-6000. Plus tard, le marketing d'Honeywell a créé une « Série 60 », et renommé le H-6000 en Level-66. Honeywell, avec son associé européen CII-Honeywell Bull, a aussi décidé de lancer une nouvelle ligne de produits « Level 64 », qui est devenue le DPS-7.
Le nom GCOS s'est ensuite étendu à toutes les lignes de produits commercialisées par Honeywell et à GCOS-64, un système d'exploitation 32 bits complètement différent, largement inspiré par Multics développé parallèlement par Honeywell et Honeywell-Bull en France et à Boston. GCOS-62, un autre système 32 bits bas de gamme a été conçu en Italie. GCOS 61 était une nouvelle version d'un petit système réalisé en France, et la nouvelle ligne DPS-6 de mini-ordinateurs 16 bits du Massachusetts a pris le nom GCOS-6.
Un autre changement de nom dans les lignes de produits a eu lieu en 1979, le Level-6 devenant le DPS-6 le Level-61 renommé DPS-4, Le Level-64 rebaptisé en DPS-7, et le Level-66 désormais appelé DPS-8. Le nom commercial de Mini 6 est utilisé en France, où il faut trouver un successeur au Mitra 15.
Les systèmes d'exploitation gardèrent le nom commercial GCOS, avec l'introduction de GCOS 6, GCOS 4, GCOS 7 et GCOS 8. Tous ces changements causèrent une certaine confusion chez les clients, parce que la ligne GCOS d'origine, qui s'appelait GCOS-III (ou GCOS-3) était soudainement devenue GCOS 8. GCOS-3 a été supporté et maintenu pendant plusieurs années après ces annonces.
GCOS-3 (et ensuite GCOS-7 et GCOS-8) avait un bon système de gestion de base de données réseau (CODASYL) appelé IDS (Integrated Data Store). IDS a été le modèle pour IDMS, qui a connu davantage de succès. La version IDS/2 est encore utilisée à ce jour.
Plusieurs moniteurs transactionnels ont été conçus pour GCOS-3 et GCOS-8. Une première version de moniteur pour GCOS-3 supposait, comme dans Unix, qu'un nouveau processus soit lancé pour chaque transaction de la base de données. Les clients d'IBM voulaient un modèle plus efficace où des processus légers (threads) multiplexés attendent des messages et partagent des ressources. Ces caractéristiques ont été réalisées sous forme de sous-systèmes.
GCOS-3 a bientôt eu un vrai moniteur transactionnel nommé TDS (Transaction Driven System), qui était essentiellement un développement d'Honeywell. TDS a ensuite évolué en TP (faisant partie du package Data Management IV, comprenant 4 briques : un langage (COBOL), un SGBD (IDS/2), un langage d'interrogation type SQL (PDQ : Personal Data Query) et donc un moniteur transactionnel (TP : Transactional Processor)). DMIV a été également porté sur GCOS-8, cependant, sur cette version du système d'exploitation, la brique TP a été remplacée par TP8 lorsque celui-ci a vu se développer le concept de workstation (ensemble de ressources partagées/partageables par un ou plusieurs processus), de même que le SGBD IDS/2 a été remplacé par RFM (Relational File Manager, un SGBDR) et le programme PDQ remplacé par Interel (intégré dans une sorte de 'bureau à tout faire', nommé Infoedge). Cependant, toutes les briques DMIV sont restées utilisables.
TDS et ses successeurs ont été des succès commerciaux et prirent des parts de marché à CICS (d'IBM) dont l'architecture était semblable. Un produit similaire, également appelé TDS, a été développé pour GCOS-7.
GCOS-6 et GCOS-4 (l'ex GCOS-62) ont été dépassés par des mini-ordinateurs à base de Motorola 68000 et de PowerPC sous Unix, et les lignes de produits ont été arrêtées. Cependant GCOS-6 tournait dans un émulateur fonctionnant sur AIX. La gamme DPS-7, avec GCOS 7, a continué à évoluer avec le DPS-7000.
À la fin des années 1980, Honeywell a vendu son activité informatique à une coentreprise dont faisaient partie NEC et Bull, et à laquelle Honeywell a pris part pendant un temps. En quelques années, Bull a pris la tête de cette compagnie. NEC a fourni plusieurs générations de matériel grand-système dans le haut de gamme, qui tournaient à la fois avec GCOS 8 et leur propre système ACOS-4. Bull a utilisé la dénomination DPS-9000 pour sa ligne entière de grands systèmes GCOS-8, avec des modèles conçus par Bull et par NEC.
À la fin des années 1990 et au début des années 2000, Bull voulait centrer son développement sur un seul type de matériel à base de circuits intégrés Intel standards, mais avec des "bonus" Bull. Sur cette plate-forme Novascale (basée sur les processeurs Itanium 2) tournent Windows et Linux en mode natif. Qui plus est, des émulateurs (Instruction Set Simulator) de DPS-7000 et DPS-9000 permettent de faire tourner GCOS7 et GCOS8 sur cette plateforme. Bull continue à investir dans le développement et le support de GCOS7 et GCOS8, et a encore des clients dans de nombreux pays dans le monde.

## Influence sur d'autres SE

* Quelques-uns des premiers systèmes Unix des Laboratoires Bell utilisaient des machines sous GCOS comme spools d'impression et divers services.
* L'élément ajouté au fichier /etc/passwd pour stocker l'information d'identité GCOS a été baptisé « champ Gecos » (GECOS field) et existe toujours dans l'API Unix, nommé pw_gecos, contenant le nom complet de l'utilisateur et autres informations à usage essentiellement humain.