GEORGE (operating system)

Last updated

GEORGE
Developer International Computers and Tabulators
Written in Assembly language
Working stateHistoric
Source modelSource available to licensees.
Initial release1960s
Latest release 8,67 / 1985;39 years ago (1985)
Available in English
Platforms ICT 1900 series of computers
Kernel type Monolithic
Influenced by Multics
Default
user interface
CLI (teletype or block mode terminal)
License Proprietary commercial software

GEORGE was the name given to a series of operating systems released by International Computers and Tabulators (ICT) in the 1960s, for the ICT 1900 series of computers. These included GEORGE 1, GEORGE 2, GEORGE 3, and GEORGE 4.

Contents

Initially, the 1900 series machines, like the Ferranti-Packard 6000 on which they were based, ran a simple operating system known as Executive, which allowed the system operator to load and run programs from a Teletype Model 33 ASR based system console.

In December 1964, ICT set up an Operating Systems Branch to develop a new operating system for the 1906/7. The branch was initially staffed with people being released by the end of work on the OMP operating system for the Ferranti Orion. The initial design of the new system, named George after the head of the Basic Programming Division George E. Felton, [1] was based on ideas from the Orion and the spooling system of the Atlas computer. [2] In public it was claimed that George stood for GEneral ORGanisational Environment, but contemporary sources say that was a backronym. [3]

In July 1965, a team from ICT was present at a seminar at NPL describing the CTSS operating system developed for MIT's Project MAC. They decided that the ICT would need to provide multi-access facilities, known to ICT as MOP, "Multiple Online Processing". In November 1965 H. P. Goodman, head of the Operating Systems Branch attended the Fall Joint Computer Conference in Las Vegas where plans for Multics were initially described. [4] Some of the Multics features discussed influenced future development of George, notably the tree structured filestore.

Towards the end of 1965, ICT marketing requested that a simpler operating system be made available quickly, especially for the smaller members of the range. It was decided that two smaller systems, known as George 1 and George 2 be released rapidly, and the larger operating system was renamed George 3.

GEORGE 1 & 2

George 1 was a simple batch processing system, Job descriptions were read from cards or paper tape which controlled the loading and running of programs, either loaded from cards or paper tape or magnetic tape. The job control language allowed definition of the peripherals and files to be used and handling of exception conditions. The job description would be checked for errors before the job was run. George used the trusted program facilities provided by executive to run the user programs.

George 2 added the concept of off line peripheral handling (spooling). Several different modules, running in parallel, allowed overlapping of input, processing and output operations:

If the installation was large enough multiple copies of the central module could be run, allowing multiple jobs to be processed in parallel.

The George 2 job control language allowed use of stored macros with conditional facilities.

George 2 provided no file system, the system and user programs relied on the facilities provided by executive. Files on disk were accessed by unique 12 character names and no security other than a "do not erase" bit was provided.

MINIMOP could be run simultaneously with GEORGE 2 on the same machine, to provide on-line time-sharing facilities.

GEORGE 3 & 4

GEORGE 3 [5] was the main version of the operating system series for the larger machines of the 1900 series. Initially it was released for the 1906/7; eventually it was made available for models down to the 1902T. In contrast to George 1 & 2 which ran as user-mode programs under executive, George 3 was a full operating system, leaving only low-level peripheral and interrupt handling to a cut-down version of executive.

George 3 was implemented as a small memory-resident part and a collection of chapters (overlays) which were loaded into and removed from memory as needed. Chapters were strictly location-independent, allowing best use of memory. Internally George used cooperative multitasking; context switches could take place at any chapter change (call from one chapter to another), or at other specified places in the code. User-level code was run using preemptive multitasking; context switches were forced on I/O operations or clock ticks. [6]

George was written in a special assembler, GIN (George INput), which had richer conditional compilation and macro facilities than the standard PLAN assembler. Macros were heavily used by the code to reduce the effort of programming such a large system in assembly language. In later versions the macro features of GIN were used to add structured programming features to the code. Writing the system was estimated to have taken 75 programmer-years of effort. [7]

Job control

George 3 was a mixed batch and online system. Jobs could be run from cards or tape in the same manner as George 2, or interactively from MOP (Multiple Online Processing) terminals, either simple Teletype Model 33 ASR terminals or block mode VDU terminals.

The job control language was the same on terminals or in batch jobs and included conditional operations and macro operations. In contrast to Unix systems the job control language was part of the operating system rather than being a user level shell process.

A job could only have one program loaded in to memory at a time, but one job could start other jobs to run concurrently, if system resources and site policy would permit. The system would swap user programs out of memory while they were waiting for input or output if other activities required memory to run.

Filestore

George 3 provided a tree structured Filestore, inspired in part by Multics.

Every user of the system had a home directory with as many sub directories as needed under it. A users home directory could be accessed directly, for example the directory for user JOHN could be referred to as :JOHN, or by a full path, for example if JOHN was in the computer science department his home directory might be :MANAGER.USERS.COMPSCI.JOHN.

Access control lists were used for security, a user could permit or deny any user or group of users access to his files or directories.

File data storage was two-level: files could be either currently on disk, or, if the system was low on disk space they could be automatically relegated to magnetic tape. If an attempt was made to access a currently off line file the job would be suspended and the operators requested to load the appropriate tape. When the tape was made available the file would be brought back to disk and the job resumed.

The underlying disc storage mechanism George 3, in 1968, was probably the earliest commercial version of a Copy-On-Write file system. The way this worked was that all modified blocks would be written to blocks on a "free" list. Blocks containing metadata were also treated in the same way but were, together with data blocks, physically written in an order in such a way that, when the final "master" block had been written, the file was committed. If the machine failed at any point, it was guaranteed by the hardware that the file would be in either its original, unmodified, form or fully up to date.

Another useful feature was that the Filestore could emulate all the standard peripherals, such as card readers and punches, magnetic tapes and discs. This allowed older George 1 & 2 programs that required these physical devices, to be run under George 3 without modification. This could speed up jobs that required many tape or disc changes on George 1 & 2 to be automated to the extent that something that had required two operators, several tens of tape changes and five hours, now required no operators, other than for mounting two work tapes for the results, and finished in 45 minutes.

George 4

Starting with the 1904A, a paging unit was available for larger 1900 processors and George 4 was written to take advantage of it. George 4 remained compatible with George 3. It was common to alternate George 3 and 4 on the same machine and filestore, running George 3 during the day for small, interactive workloads and George 4 at night for large, memory intensive, jobs. [8]

George 4 introduced the concept of a sparse program, a program that had an addressing space larger than its allocated memory and read-only (pure) data and code regions. New versions of the consolidator (linker) and compilers were provided to use these facilities.

The source code of George 3 and 4 were the same; conditional compilation facilities of the GIN assembler were used to select which version of the system was being compiled.

As the 1900 paging feature was not emulated by the 2900 series machines used by later George installations, George 4 fell out of use before George 3.

Source code

George was distributed in a form that allowed a site to modify large parts of the system. A compilation of the system was started, then interrupted just before the end and dumped to magnetic tape. The GIN compiler allowed the compilation to be continued from this point at the user site, possibly modifying code already compiled.

Versions of George 3 before release 8 were provided in binary form. Any modifications needed to the system were made as binary patches. To simplify the process most George chapters included an empty MEND area at the end.

Starting with release 8 the source of George was distributed with the binary, both on magnetic tape and microfiche. A system of source level patches, known as MENDITS was used to modify the system and an existing chapter could be completely replaced by the new modified chapter.

The George user group set up a "MEND exchange scheme" to share interesting modifications to George. Some modifications were distributed freely, others were available for a fee. When ICL produced a new version of George they would sometimes include modifications produced by the users.

For the last released version, 8.67, most of the patches from the MEND exchange scheme were included in the standard George source, switched off by conditional compilation. They can be turned on as part of the standard process of tailoring George for a site.

Documentation

George was well documented internally in a series of looseleaf folders, distributed as an initial version plus amendments. Eventually all the original pages were replaced, so any new copy of the manuals consisted of a box of empty looseleaf folders and a pile of amendments. The first amendment was a list of contributors, and the technical reason for the amendment was described as "to keep everyone happy".

Modified Versions

A modified version of George 3 was supplied to the University of Manchester Regional Computer Centre (UMRCC). This linked George 3 to a CDC Cyber machine, to which George supplied the offline I/O and Job queueing functions. Online support was supplied by both ICL and Cyber for both hardware and software. The Cyber support team worked in an office with the name "Cybermen" on the door.[ citation needed ]

End of life

Obsolescence

With the release of ICL's "new range", the 2900 series with its VME operating system, George became obsolete. However, due to the legacy of investment in software for George, ICL released options to run 1900 series software, including George, on 2900 series machines, initially the Direct Machine Environment (DME), later the Concurrent Machine Environment (CME) which allowed simultaneous running of 1900 and 2900 code on the same system.

New versions of George 3 continued to be released for the 2900. The last version was 8.67, released in 1983.

As of 2005 at least one site in Russia was still running George 3 under DME. [9]

In November 2014 George 3 was run on a reconditioned ICL 2966 at the National Museum of Computing. [10]

Emulation

David Holdsworth and Delwyn Holroyd obtained copies of George 3 issue tapes when the last live site in the UK, at British Steel Corporation, was being decommissioned and wrote an emulator for the 1900 hardware and executive that allows running of George on Microsoft Windows and Linux as part of a project for the Computer Conservation Society. [11] [12]

Related Research Articles

<span class="mw-page-title-main">Multics</span> Time-sharing operating system

Multics is an influential early time-sharing operating system based on the concept of a single-level memory. Nathan Gregory writes that Multics "has influenced all modern operating systems since, from microcomputers to mainframes."

<span class="mw-page-title-main">Text editor</span> Computer software used to edit plain text documents

A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software. Text editors are provided with operating systems and software development packages, and can be used to change files such as configuration files, documentation files and programming language source code.

Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically be run at scheduled times as well as being run contingent on the availability of computer resources.

RT-11 is a discontinued small, low-end, single-user real-time operating system for the full line of Digital Equipment Corporation PDP-11 16-bit computers. RT-11 was first implemented in 1970. It was widely used for real-time computing systems, process control, and data acquisition across all PDP-11s. It was also used for low-cost general-use computing.

VME is a mainframe operating system developed by the UK company International Computers Limited. Originally developed in the 1970s to drive ICL's then new 2900 Series mainframes, the operating system is now known as OpenVME incorporating a Unix subsystem, and runs on ICL Series 39 and Trimetra mainframe computers, as well as industry-standard x64 servers.

<span class="mw-page-title-main">IBM Series/1</span> 1970s era IBM minicomputer

The IBM Series/1 is a 16-bit minicomputer, introduced in 1976, that in many respects competed with other minicomputers of the time, such as the PDP-11 from Digital Equipment Corporation and similar offerings from Data General and HP. The Series/1 was typically used to control and operate external electro-mechanical components while also allowing for primitive data storage and handling.

<span class="mw-page-title-main">Compatible Time-Sharing System</span> Computer operating system

The Compatible Time-Sharing System (CTSS) was the first general purpose time-sharing operating system. Compatible Time Sharing referred to time sharing which was compatible with batch processing; it could offer both time sharing and batch processing concurrently.

<span class="mw-page-title-main">International Computers Limited</span> British computer company (1968-2002)

International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Electric Computers (EEC) and Elliott Automation in 1968. The company's most successful product line was the ICL 2900 Series range of mainframe computers.

Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966. In its time, DOS/360 was the most widely used operating system in the world.

Direct Machine Environment, abbreviated DME, was a mainframe environment for the ICL 2900 Series of computing systems from International Computers Limited that was developed in the 1970s. DME was more-or-less an ICL 1900 order code processor in microcode, which permitted the ICL 1900 series executive, operating systems and program libraries to operate on the ICL 2900 series.

<span class="mw-page-title-main">International Computers and Tabulators</span>

International Computers and Tabulators or ICT was a British computer manufacturer, formed in 1959 by a merger of the British Tabulating Machine Company (BTM) and Powers-Samas. In 1963 it acquired the business computer divisions of Ferranti. It exported computers to many countries and in 1968 became part of International Computers Limited (ICL).

The ICT 1301 and its smaller derivative ICT 1300 were early business computers from International Computers and Tabulators. Typical of mid-sized machines of the era, they used core memory, drum storage and punched cards, but they were unusual in that they were based on decimal logic instead of binary.

<span class="mw-page-title-main">ICL 2900 Series</span> UK mainframe computer systems

The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer International Computers Limited on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.

ALGOL 68RS is the second ALGOL 68 compiler written by I. F. Currie and J. D. Morrison, at the Royal Signals and Radar Establishment (RSRE). Unlike the earlier ALGOL 68-R, it was designed to be portable, and implemented the language of the Revised Report.

VS/9 is a computer operating system for the UNIVAC Series 90 mainframes, used during the late 1960s through 1980s. The 90/60 and 90/70 were repackaged Univac 9700 computers. After the RCA acquisition by Sperry, it was determined that the RCA TSOS operating system was far more advanced than the Univac counterpart, so the company opted to merge the Univac hardware with the RCA software and introduced the 90/70. The 90/60 was introduced shortly thereafter as a slower, less expensive 90/70. It was not until the introduction of the 90/80 that VS/9 finally had a hardware platform optimized to take full advantage of its capability to allow both interactive and batch operations on the same computer.

CADES was a software engineering system produced to support the design and development of the VME/B Operating System for the ICL New Range - subsequently 2900 - computers.

BESYS was an early computing environment originally implemented as a batch processing operating system in 1957 at Bell Labs for the IBM 704 computer.

<span class="mw-page-title-main">Scripting language</span> Programming language for run-time events

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.

MINIMOP was an operating system which ran on the International Computers Limited (ICL) 1900 series of computers. MINIMOP provided an on-line, time-sharing environment, and typically ran alongside George 2 running batch jobs. MINIMOP was named to reflect its role as an alternative to the MOP facilities of George 3, which required a more powerful machine.

ICT 1900 was a family of mainframe computers released by International Computers and Tabulators (ICT) and later International Computers Limited (ICL) during the 1960s and 1970s. The 1900 series was notable for being one of the few non-American competitors to the IBM System/360, enjoying significant success in the European and British Commonwealth markets.

References

  1. In "Another ICL Anthology" George Felton explains the origin of the name as follows:
    "About January 1965, there was a meeting in my office, while I was away abroad, discussing different ways of allotting functions between the proposed operating system and Executive. Scheme A was discussed and rejected. Scheme B ditto. And Schemes C, D, E and F were also discarded in quick succession. When Scheme G came up, everybody was happy, and it was decided to adopt it. The "GEneral ORGanisational Environment' was also quickly formulated as the official expansion of the acronym. But the name 'GEORGE' was in any case a natural choice: it had echoes of aircraft autopilots; it was a bit of fun; and I certainly wasn't going to object".
  2. Goodman, H. P. (2004-01-01). "3.4.2- George Operating Systems for the ICL 1900 Series Computer Range". Archived from the original on 2011-06-28. Retrieved 2011-02-15.
  3. Carmichael, Hamish (November 1998). Another ICL Anthology (PDF). Laidlaw Hicks. ISBN   978-0-9527389-2-3 . Retrieved 2013-12-05.
  4. "Multics Technical Papers online" . Retrieved 2011-02-15.
  5. GEORGE 3 Online Reference
  6. Oestreicher, M. D. (April–June 1971). "The design of the internal structure of the ICL George 3 operating system". Software: Practice and Experience. 1 (2): 189–200. doi:10.1002/spe.4380010209. S2CID   43403696.
  7. Cambell-Kelly, Martin (1989). ICL: A Business and Technical History. Oxford University Press. p. 239. ISBN   0-19-853918-5.
  8. "UEA CPC Annual report 1975-76" (PDF). Retrieved 2014-05-06.
  9. Holdsworth, David (Autumn 2005). "Society Activity". RESURRECTION the Bulletin of the Computer Conservation Society (36). Retrieved 2014-04-14. Out of the blue I have received a mail message from a Russian who still has a George 3 system running on DME.
  10. Holroyd, Delwyn (Winter 2014). "Society Activity". RESURRECTION the Bulletin of the Computer Conservation Society (68). ISSN   0958-7403 . Retrieved 2015-04-12. I'm pleased to report that the 2966 project has reached a major milestone this month. On 15th November we successfully loaded George 3 under CME for the first time and by the end of the day the 7501 terminal was available for visitors to play the Colossal Cave adventure which is normally hosted on a Raspberry Pi running the George 3 Executive Emulator.
  11. GEORGE 3 Emulator from the University of Leeds
  12. George3 running on Raspberry Pi

Further reading