User:Sadg4000/OS4000

OS4000 is a proprietary operating system introduced by GEC Computers Limited in 1977 as the successor to GEC DOS, for its range of GEC 4000 series 16-bit, and later 32-bit, minicomputers. OS4000 was developed through to late 1990s, and has been in a support-only mode since then. = History = The first operating systems for the GEC 4000 series were COS (Core Operating System) and DOS (Disk Operating System). These were basically single-user multi-tasking operating systems, designed for developing and running Process control type applications.

OS4000 was first released around 1977. It reused many of the parts of DOS, but added multi-user access, OS4000 JCL Command-line interpreter, Batch processing, OS4000 hierarchical filesystem (although on-disk format very similar to the non-hierarchical DOS filesystem). OS4000 JCL was based on the Cambridge University Phoenix command interpreter.

OS4000 Rel 3 arrived around 1980, and included Linked-OS — support for Linked OS4000 operating systems to enable multi-node systems to be constructed. The main customer for this was the central computing service of University College London (Euclid), where a multi-node system consisting of a Hub file server and multiple Rim multi-access compute server systems provided service for over 100 simultaneous users. Linked-OS was also used to construct fail-over Process control systems with higher resilience.

OS4000 Rel 4 arrived around 1983, and upped the maxmimum number of user modules to 150 (again, mainly for the University College London Euclid system), together with an enhanced Batch processing system. It also included support for the GEC 4090 processor, which introduced a 32-bit addressing mode.

OS4000 Rel 5 introduced a modified version of the OS4000 filesystem called CFSX, in order to allow easier use of larger disks. The initial Rel 5 only supported the CFSX filesystem, but support for the original CFS1 filesystem was reintroduced as well quite quickly.

OS4000 Rel 6 introduced support for dual processor systems (GEC 4190D).

OS4000 was developed in the UK at GEC Computers Borehamwood offices in Elstree Way, and at GEC Computers Dunstable Development Centre in Woodside Estate, Dunstable.

= Architecture = The architecture of OS4000 is very heavily based around the architecture of the platform it runs on, the GEC 4000 series minicomputers, and these are rather unusual. The platform includes a feature called Nucleus which is a combination of a hardware and firmware based kernel, which cannot be altered under program control. This means that many of the features typically found in operating system kernels do not need to be included in OS4000, as the underlying platform performs these functions instead of the operating system. Consequently, there is no provision for running Privileged mode code on the platform—all OS4000 operating system code runs as processes.

Nucleus supports up to 256 processes, and schedules these automatically. OS4000 lives entirely within these processes. A set of system tables are used to configure Nucleus, and access to these system tables can be granted to processes which need to alter the configuration of Nucleus, e.g. to load new programs into processes. The system tables tell Nucleus which processes are permitted to communicate with each other, and these are updated as processes are created and destroyed, e.g. when users login and logout. All I/O is performed directly from processes, and the system tables identify which processes have access to which peripherals and handle peripheral interrupts. For example, a device driver for a disk controller is a process, which is responsible for issuing commands through Nucleus to the disk controller, and handling the interrupts passed back from the disk controller via Nucleus, and the system tables will explicitly state that process has access to that disk controller. The system tables will not grant this device driver access to any other peripherals. In the event of a process stopping or crashing, Nucleus looks up its owner process in the system tables, and informs it. The owner process can then take the decision to let the system continue running without that process, or to take out the system (like a Unix panic), or to take some action such as reload and/or restart the process. Functions such as filesystems, store allocation, terminal drivers, timing services, etc. also exist as separate processes.

Nucleus implements a segmented memory system, with processes having their access to memory segments defined by the system tables, which is maintained by OS4000. OS4000 provides a memory system which handles both store-resident memory, and virtual memory backed by disk which is known as overlay, with overlaying being performed at the segment level. OS4000 also inherited grouped segments from DOS, where a group of segments were to be overlayed and retrieved as a single group, but this feature was very little used in OS4000. A process may use any mixture of resident and overlayable segments, although a process performing real-time tasks would normally be designed to only use resident segments.

= Main Applications = Real-time Process Control accounts for over half of all the OS4000 systems deployed. Of these systems, steel production accounts for a significant proportion. The earlier of these Real-time Process Control systems were upgraded from DOS to OS4000.

X.25 Packet Switches account for a significant proportion of systems (although earlier GEC X.25 Packet Switches ran a special operating system called NOS which was a cut down operating system half-way between DOS and OS4000).

Civil Command and Control systems, e.g. Fire Service control systems interfacing the emergency telephone operator with the Fire Stations.

Prestel (UK) and the public Videotex systems used in many other countries, and many private Viewdata systems.

Multi-User Minicomputers, used in many Education and Research establishments.

= See also =
 * GEC 4000 series minicomputers