OS4000

Last updated

OS4000
Developer GEC Computers Ltd.
Written in Babbage [1]
Working stateNo further development, but still supported
Source model Closed source
Initial release1977;47 years ago (1977)
Latest release 6.5 / 1993?
Marketing target Minicomputer, Process control, Real time, multi-user, Time-sharing, Batch processing, Data communications
Available in English (UK)
Platforms GEC 4000 series
Kernel type Hardware and Firmware
Default
user interface
CLI - OS4000 JCL
License Proprietary

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.

Contents

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 maximum 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 features of the platform it runs on, the GEC 4000 series minicomputers, and these are rather unusual. They include a feature called Nucleus , [2] 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 using a fixed priority scheme. 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, adjust the Nucleus scheduling for time-shared processes, etc. 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 overlaid 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.

OS4000 supports a fully mixed set of process scheduling within the same system, from hard real-time processes, through soft real-time, time-shared, and background. Given that OS4000 also includes full program development and test/debug facilities, this made OS4000 ideal for developing and deploying real-time applications such as process control and high speed (at the time) data communications all within one system.

Filesystem

OS4000 uses its own proprietary filesystem. The filesystem is extent based, and variable block size — different files can be created with different blocksizes, ranging from 256 bytes to 16,384 bytes in 256-byte multiples.

When a file is created the initial disk allocation is specified and if required what later allocations are permitted. Most files are given discrete (fragmented) allocations although a file can be created with a contiguous (single and fixed size) allocation. [3] [4]

The filesystem is hierarchical, with components limited to 8 characters and the "." (period) used as the component separator. OS4000 JCL limits characters in file path components to upper case letters and numbers only. Each file path starts with a context pointer which is a name which refers to a position in a filesystem, followed by zero or more catalogues (equivalent to Unix directories ), and ending with a filename. Each disk on the system contains a separate and independent filesystem, and the volume name of a disk is the same as the name of its top level catalogue or master catalogue. There must be one disk mounted with a volume name of SYSTEM which contains specific files required by OS4000. In larger systems, there will usually be additional disks containing user files, data files, etc. although these can all coexist on the SYSTEM disk, space permitting. Users are each given a set of initial context pointeralloweds which each point to a catalogue on a filesystem, and users can only see the filesystem hierarchies below their initial context pointers. Systems are usually configured so that unprivileged users cannot see other users files or the system's files, except for the system executables held in SYS. By convention, an area called POOL is available for all users, and enables the transfer/sharing of files.

The access rights for the owner of the file is different from the access rights for other users.

Files in an OS4000 filesystem are typed, which means that the filesystem can hold several different types of file, and understands how the contents are structured. Most common are logical files which contain a record structure. These are split into sequential and random files, with random files having all records the same length to enable seeking to record numbers. Finally, text and binary files are distinguished, mainly to prevent applications which expect textual data from accidentally using a binary file. This results in a set of logical file types identified by three letters, e.g. Logical Sequential Text is LST. The logical file types are LST, LSB, LRT, LRB. The converse to logical files are physical files, which are accessed block at a time, and these are known as Physical Random Binary (PRB) files. File types PST, PSB, PRT also exist in theory, but have the same capabilities as PRB and are not generally used. Additionally, there is a Logical Indexed Sequential (LIS) filetype, which is an ISAM file and always appears to be sorted on its key field, and a Byte stream (BYT) filetype, which was added in Rel 6.5 to better support the OS4000 NFS server. A filetype CAT is used to hold catalogues—it is actually the same as an LSB file, but can only be modified by the filesystem itself.

In addition to files and catalogues, there are 3 types of symbolic links. References (REF) can be created to point to another file or catalogue which creator of the REF can see through an initial context pointer, in either the same filesystem or another filesystem. Off Disk Pointers (ODP) are similar to references but can be created to point to a file or catalogue which cannot be seen through any initial context pointers, and creating an ODP is a privileged operation only available to the system manager. Support for Unix style symlinks (arbitrary text stored in a catalogue) was added in Rel 6.5 to better support the OS4000 NFS server, but symlinks can only be created and are only visible from NFS clients.

OS4000 also provides a non-hierarchical temporary filesystem. This supports exactly the same types of file as permanent filesystems, except for CAT, REF, ODP, and symlinks. The file contents are stored in dedicated temporary filing disk regions, but the file metadata is stored in memory. Each logged in user has a private temporary filing name space which cannot be seen by any other logged in user (nor even another logged in user with the same username). A user's temporary files are deleted when the user logs out (and implicitly if the system is rebooted). Temporary filenames start with a percent "%" or ampersand "&" and are limited to 8 characters.

Multi-access Environment

The following shows a short Multi-access login session:

SESSION STARTING  OS4000 Rel 6.5 A036 on A7 SUN 17 MAY 2009 11:06:27 Logging in user SMAN password  ID last used SAT 16 MAY 2009 22:21:43 STARTED - SUN 17 MAY 2009 11:06:31 OS4000 Rel 6.5 A036 on A7 SUN 17 MAY 2009 11:06:31 Only an authorised person should be logged in as SMAN READY EXAMINE EXAMINE version 305  Catalogue  USER --------------------------------------------------------------------------------  DATA      Odp   GEST      Odp   IPL       CAT   MAILAREA  CAT   MCODE     CAT OPER      CAT   PDA1      Odp   POSTCAT   Odp   POSTFOLD  CAT   SEBACKUP  LST SMAN      CAT   SOURCE    Odp   SOURCE1   Odp   SPOOL     Odp   SUNDRY    Odp SYS       CAT   SYSFILES  CAT   SYSGEN    Odp   SYSGEN1   Odp   TEST      Odp USEA      Odp   USEB      Odp   USEC      Odp   WORK      Odp   X25       CAT YBTS      CAT  -------------------------------------------------------------------------------- READY ***TO REMAIN ONLINE TYPE COMMAND WITHIN 5 MINS ***STOPPED CPU used: 3 ieu  elapsed time used: 15 mins User SMAN terminal   2 logged out  SUN 17 MAY 2009 11:21:31

In this case, user SMAN has logged in and issued the EXAMINE command. Then the session has been left to timeout through inactivity.

When a user logs in, the OS4000 JCL command interpreter SYS.COMM is loaded into the user's COMM process and started. This reads commands from the terminal. A number of system commands are built into SYS.COMM. In the case of a command which isn't built in, executable binary files are loaded into the USER process and run, and text JCL files are opened and processed directly by SYS.COMM itself. A user normally also gets an AIDA process which is privileged and used to load only trusted debugging programs.

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.[ citation needed ]

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 halfway 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.

Ports

OS4000 was ported to the GEC Series 63 minicomputer where it was known as OS6000. [5] This required the addition of a software Nucleus emulation, as this was not a feature of the GEC Series 63 hardware. GEC Computers dropped OS6000, and the source code was given to Daresbury Laboratory who was the main user of it, and they continued to keep it in step with OS4000 releases for the lifetime of their two GEC Series 63 systems.

See also

Related Research Articles

<span class="mw-page-title-main">Disk partitioning</span> Creation of separate accessible storage areas on a secondary computer storage device

Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct "logical" disk that uses part of the actual disk. System administrators use a program called a partition editor to create, resize, delete, and manipulate the partitions. Partitioning allows the use of different filesystems to be installed for different kinds of files. Separating user data from system data can prevent the system partition from becoming full and rendering the system unusable. Partitioning can also make backing up easier. A disadvantage is that it can be difficult to properly size partitions, resulting in having one partition with too much free space and another nearly totally allocated.

AmigaDOS is the disk operating system of the AmigaOS, which includes file systems, file and directory manipulation, the command-line interface, and file redirection.

OS/8 is the primary operating system used on the Digital Equipment Corporation's PDP-8 minicomputer.

Disk formatting is the process of preparing a data storage device such as a hard disk drive, solid-state drive, floppy disk, memory card or USB flash drive for initial use. In some cases, the formatting operation may also create one or more new file systems. The first part of the formatting process that performs basic medium preparation is often referred to as "low-level formatting". Partitioning is the common term for the second part of the process, dividing the device into several sub-devices and, in some cases, writing information to the device allowing an operating system to be booted from it. The third part of the process, usually termed "high-level formatting" most often refers to the process of generating a new file system. In some operating systems all or parts of these three processes can be combined or repeated at different levels and the term "format" is understood to mean an operation in which a new disk medium is fully prepared to store files. Some formatting utilities allow distinguishing between a quick format, which does not erase all existing data and a long option that does erase all existing data.

Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem. The purpose of JCL is to say which programs to run, using which files or devices for input or output, and at times to also indicate under what conditions to skip a step. Parameters in the JCL can also provide accounting information for tracking the resources used by a job as well as which machine the job should run on.

<span class="mw-page-title-main">TRSDOS</span> Operating system for Tandy TRS-80 computers

TRSDOS is the operating system for the Tandy TRS-80 line of eight-bit Zilog Z80 microcomputers that were sold through Radio Shack from 1977 through 1991. Tandy's manuals recommended that it be pronounced triss-doss. TRSDOS should not be confused with Tandy DOS, a version of MS-DOS licensed from Microsoft for Tandy's x86 line of personal computers (PCs).

Utility software is a program specifically designed to help manage and tune system or application software. It is used to support the computer infrastructure - in contrast to application software, which is aimed at directly performing tasks that benefit ordinary users. However, utilities often form part of the application systems. For example, a batch job may run user-written code to update a database and may then include a step that runs a utility to back up the database, or a job may run a utility to compress a disk before copying files..

<span class="mw-page-title-main">File system</span> Computer filing system

In computing, a file system or filesystem governs file organization and access. A local file system is a capability of an operating system that services the applications running on the same computer. A distributed file system is a protocol that provides file access between networked computers.

<span class="mw-page-title-main">Commodore DOS</span>

Commodore DOS, also known as CBM DOS, is the disk operating system used with Commodore's 8-bit computers. Unlike most other DOSes, which are loaded from disk into the computer's own RAM and executed there, CBM DOS is executed internally in the drive: the DOS resides in ROM chips inside the drive, and is run there by one or more dedicated MOS 6502 family CPUs. Thus, data transfer between Commodore 8-bit computers and their disk drives more closely resembles a local area network connection than typical disk/host transfers.

<span class="mw-page-title-main">PRIMOS</span> Operative System

PRIMOS is a discontinued operating system developed during the 1970s by Prime Computer for its minicomputer systems. It rapidly gained popularity and by the mid-1980s was a serious contender as a mainline minicomputer operating system.

In computing, privilege is defined as the delegation of authority to perform security-relevant functions on a computer system. A privilege allows a user to perform an action with security consequences. Examples of various privileges include the ability to create a new user, install software, or change kernel functions.

In computer data storage, a volume or logical drive is a single accessible storage area with a single file system, typically resident on a single partition of a hard disk. Although a volume might be different from a physical disk drive, it can still be accessed with an operating system's logical interface. However, a volume differs from a partition.

<span class="mw-page-title-main">Hierarchical file system</span> Computer files in nested directories

In computing, a hierarchical file system is a file system that uses directories to organize files into a tree structure.

<span class="mw-page-title-main">GEC 4000 series</span> Series of 16/32-bit minicomputers

The GEC 4000 was a series of 16/32-bit minicomputers produced by GEC Computers Ltd in the United Kingdom during the 1970s, 1980s and early 1990s.

<span class="mw-page-title-main">GEC Series 63</span>

The GEC Series 63 was a 32-bit minicomputer produced by GEC Computers Limited of the UK during the 1980s in conjunction with A. B. Dick in USA. During development, the computer was known as the R Project. The hardware development was done in Scottsdale, Arizona whilst the software was the responsibility of GEC in Dunstable, UK. The hardware made early use of pipeline concepts, processing one instruction whilst completing the preceding one.

In Unix-like operating systems, a device file or device node or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These special files allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

<span class="mw-page-title-main">SpartaDOS X</span> Disk operating system

SpartaDOS X is a disk operating system for the Atari 8-bit family of computers that closely resembles MS-DOS. It was developed and sold by ICD, Inc. in 1987-1993, and many years later picked up by the third-party community SpartaDOS X Upgrade Project, which still maintains the software.

<span class="mw-page-title-main">AmigaOS</span> Operating system for Amiga computers

AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.

<span class="mw-page-title-main">GEC Computers</span>

GEC Computers Limited was a British computer manufacturing company under the GEC holding company from 1968 until the 1990s.

References

  1. "Babbage Language". Datamation. Retrieved 7 July 2009.
  2. "Central Processor Unit Nucleus Manual" (PDF). GEC 4000 Computer. December 1977. Retrieved 15 June 2009.
  3. "Programmer's Facts Book 85-64732/1" (PDF). GEC Computers Ltd. 1986. pp. 28–35. Retrieved 10 October 2023.
  4. "Terminal User's Facts Book 85-62043/6" (PDF). GPT Computers Ltd. 1988. pp. 7–9. Retrieved 10 October 2023.
  5. "GEC Series 63 Computer". FORUM 1981-83 Computing Division Newsletter. July 1983. p. s.5 Recently Announced Hardware. Retrieved 15 June 2009.

Further reading