General Comprehensive Operating System (GECOS) | |
Developer: | General Electric, Honeywell, Groupe Bull, Atos |
Working State: | Current |
Latest Release Version: | GCOS 8 |
Supported Platforms: | GE-600 series, Honeywell 6000 series |
License: | proprietary |
General Comprehensive Operating System (GCOS, ; originally GECOS, General Electric Comprehensive Operating Supervisor) is a family of operating systems oriented toward the 36-bit GE-600 series and Honeywell 6000 series[1] mainframe computers.
The original version of GCOS was developed by General Electric beginning in 1962.[2] The operating system is still used today in its most recent versions (GCOS 7 and GCOS 8) on servers and mainframes produced by Groupe Bull, primarily through emulation, to provide continuity with legacy mainframe environments. GCOS 7 and GCOS 8 are separate branches of the operating system and continue to be developed alongside each other.[3]
The GECOS operating system was developed by General Electric for the 36-bit GE-600 series in 1962–1964; GE released GECOS I (with a prototype 635) in April 1965, GECOS II in November 1965 and GECOS III (with time-sharing) in 1967. It bore a close resemblance architecturally to IBSYS on the IBM 7094 and less to DOS/360 on the IBM System/360. However, the GE 600 Series four processor architecture was very different from the System/360 and GECOS was more ambitious than DOS/360. GECOS-III supported both time-sharing (TSS) and batch processing, with dynamic allocation of memory (IBM had fixed partitions, at that time), making it a true second-generation operating system.
After Honeywell acquired GE's computer division, GECOS-III was renamed GCOS 3, and the hardware line was renamed to the Honeywell 6000 series, adding the EIS (enhanced instruction set, character oriented instead of word oriented).[4] [5] [6]
The name "GCOS" was extended to the operating systems for all Honeywell-marketed product lines. GCOS-64, a completely different 32-bit operating system for the Level 64 series, similar to a parallel development called Multics, was designed by Honeywell and Honeywell Bull developers in France and Boston.
GCOS-62,[7] the operating system for another 32-bit low-end line of machines, the Level 62 series, was designed in Italy. GCOS-61 was the operating system for a new version of a small system made in France (Model 58, later Level 61/58), and the operating system for a new 16-bit minicomputer line from Massachusetts (Billerica), the Level 6, got the name GCOS 6.
Another renaming of the hardware product lines occurred in 1979, with the Level 6 becoming the DPS 6, the Level 62 becoming the DPS 4, the Level 64 becoming DPS 7, and Level 66 becoming DPS 8. Operating Systems retained the GCOS brand-name, with GCOS 6, GCOS 4, GCOS 7, and GCOS 8 being introduced. GCOS 8 was an extensive rewrite of GCOS 3, with changes made to support true virtual memory management and demand paging (these changes also required new hardware). GCOS 3 was supported in maintenance for several years after this announcement and renaming. Honeywell Bull published "Large Systems: GCOS 8 OS Time Sharing System User's Guide" in 1986.[8]
DPS 6 and DPS 4 (ex-Level 62) were superseded by Motorola 68000 and later on PowerPC minicomputers running Unix and the product lines were discontinued, though GCOS 6 ran in an emulator on top of AIX. The DPS 7 line, along with GCOS 7, continued to evolve into the DPS 7000 hardware base.
In the late 1980s Honeywell sold its computer business to a joint venture that initially included NEC and Bull, with Honeywell still holding a stake for a time. Over a couple of years, Bull took over the company. NEC supplied several generations of mainframe hardware at the high end, which would run both GCOS 8 and their own ACOS-4 Operating System. Bull used the nomenclature DPS-9000 for its entire GCOS 8-based mainframe line, which included models designed by both Bull and NEC.
By the late 1990s and early 2000s, Bull's desire was to center its development on a single hardware base, running commodity Intel chips but with Bull value-adds. This platform, called Novascale[9] and based on Itanium 2 processors, ran both Windows and Linux natively. However, instruction set simulators for both the DPS 7000 and DPS 9000 allowed GCOS 7 and GCOS 8 to run on this platform. The demise of the Itanium family required a change of hardware, and as of 2022, GCOS 7 and GCOS 8 are simulated on Bull Sequana M7200 and M9600 Xeon-based hardware respectively.[10] [11]
Support for GCOS 7 and GCOS 8 from Bull is planned through at least 2025 including regular hardware and software upgrades.
A trace of GCOS influence remains today in modern UNIX systems. Some early Unix systems at Bell Labs used GCOS machines for print spooling and various other services.[12] The field added to "/etc/passwd" to carry GCOS ID information was called the "GECOS field" and survives today as the "pw_gecos" member used for the user's full name and other human-ID information.
Multics today, under the DPS8M simulator,[13] retains the capability of running GCOS jobs, both batch and timesharing, via the "Multics GCOS Environment Simulator."[14]
GCOS 3 (and later GCOS 7 and GCOS 8) featured a good Codasyl network database called Integrated Data Store (IDS) that was the model for the more successful IDMS.
Several transaction processing monitors were designed for GCOS 3 and GCOS 8. An early attempt at Transaction processing (TP) for GCOS 3, the Transaction Processing Executive, assumed that, as in Unix, a new process should be started to handle each transaction, and enjoyed only very limited success. Another TP system, the Transaction Driven System (TDS), was soon developed for GCOS 3, using a single process (potentially with multiple threads) to service all transactions. TDS was essentially a Honeywell development. It was later replaced by the backward-compatible Transaction Processing 8 (TP8) on GCOS 8, which profited from the overhaul in GCOS system architecture that came with GCOS 8 to make full use of virtual memory concepts. TP8 used multiple static processes in a way similar to UNIX daemons to handle incoming transactions in a multiplexed way. TDS and its TP8 successor were commercially successful, and TDS predated IBM CICS, which had a very similar architecture. A similar product also called TDS was developed for GCOS-7, but the internal architecture was completely different.
GCOS is a multithreading, multiprogramming operating system originally oriented towards batch processing, although later versions incorporated enhancements for timesharing and online transaction processing environments. Systems running GCOS today use it mainly for batch and OLTP, or as a backend enterprise server.
GCOS has a basic architecture similar to that of operating systems for the IBM 360 and earlier IBM 7090 Series, and subsequent operating systems with which it competed. It was also heavily influenced by projects such as MEDINET, Multics, and WWMCCS, and has inherited a strong security structure in consequence. Hardware and software features combine to render the operating system unusually secure for an operating system of its generation and class. Multics influenced the design of the hardware, with gate-oriented secure transfer-of-control instructions and a hardware-enforced system of security levels very similar to that of the famous Multics rings. Operational environments such as WWMCCS drove development of special security features to allow secure hosting of classified information and compartmentalization. For a time separate versions of the GCOS system with special security features turned on were maintained specifically for government customers.
Early versions of GCOS and the hardware it ran on did not support paged virtual memory but did support a single memory segment per process. This made it inferior for time-sharing, especially compared with hardware designed to support Multics and the contemporaneous DEC PDP-10 hardware.
GCOS is a process-oriented OS, in which each process hosts one or more execution threads and executes in its own virtual memory space. Virtual memory is divided into segments of arbitrary size reminiscent of Multics segments, and a second level of address translation converts pure virtual addresses to pageable addresses, which are then converted to real addresses in main memory or backing store. Segments and pages and other constructs include hardware-enforced security parameters. The top-level virtual memory architecture also simplifies sharing of code and data in a secure fashion, again in a way reminiscent of Multics.
Each GCOS version was designed for specific hardware. The most recent machines capable of running the OS do so through emulation of that hardware. The hardware originally had much in common with Multics hardware, so much so that some mainframe equipment could be switched from "GCOS mode" to "Multics mode" with the turn of a dial. Much of the peripheral equipment used with GCOS could also be used with Multics, although front-end network processors were very different between the two systems.
Program languages available for GCOS included GCOS Algol, Algol-68, COBOL, SNOBOL, JOVIAL, APL, FORTRAN 68, CORAL 66, FORTRAN 77,[15] and B.[16]
Documentation were printed pages, available on-premise to users (staff, students...), organized into steel binders, locked together in one monolithic steel reading rack, bolted to a table or counter, with pages organized for modular information updates, replacement, errata, and addenda.
Modern terminology for units of storage applies across various operating systems and computer vendors, and is part of everyday conversation. Terms like megabyte and gigabyte mean much the same to everyone, and terms like mebibyte and gibibyte have been formally standardised.
However, the GCOS8 system pre-dates this mono-culture with some units of its own, as follows:
Unit[17] [18] | Full Name | Meaning | Generic Equivalent | |
---|---|---|---|---|
WORD | Word | 36 bits, 6 BCD chars, 4 ASCII chars | 4 bytes | |
LLINK | Little Link (sometimes "block") | 320 words | 1280 bytes or 1.25 kibibytes | |
LINK | Link | 12 LLINK's | 15,360 bytes or 15 kibibytes | |
BLINK | Big Link | 5 LINK's | 76,800 bytes or 75 kibibytes |
Note that in this system a byte contains 9 bits with values ranging from (000)8 to (777)8 or 0–511, unlike the usual 8-bit-bytes with values ranging from (000)8 to (377)8 or 0-255. This is due to the 36-bit CPU architecture.
Permanent file sizes were specified in Llinks (1280 bytes). Temporary file sizes were specified in Links (15,360 bytes). Since the early 1970s, all GCOS 3 and GCOS 8 disk drives used Logical Block Addressing (LBA).