GEORGE (operating system)
Developer | International Computers and Tabulators |
---|---|
Written in | Assembly language |
Working state | Historic |
Source model | Source available to licensees. |
Initial release | 1960s |
Latest release | 8,67 / 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.
Initially, the 1900 series machines, like the
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
In July 1965, a team from ICT was present at a seminar at
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
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:
- Jobs were read from cards or paper tape to temporary files on magnetic disk or tape by an input module.
- A central module executed the user programs, taking input from the temporary input files and writing program output to temporary files.
- An output module wrote the temporary output files to physical printers and punches.
- A module was also available for entering jobs from remote job entry stations, the output of the job could be printed on the remote printer.
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 (
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
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.
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
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
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
End of life
Obsolescence
With the release of ICL's "new range", the
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
Emulation
References
- ^ 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". - ^ 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.
- ISBN 978-0-9527389-2-3. Retrieved 2013-12-05.
- ^ "Multics Technical Papers online". Retrieved 2011-02-15.
- ^ GEORGE 3 Online Reference
- S2CID 43403696.
- ISBN 0-19-853918-5.
- ^ "UEA CPC Annual report 1975-76" (PDF). Retrieved 2014-05-06.
- ^ 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.
- 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.
- ^ GEORGE 3 Emulator from the University of Leeds
- ^ George3 running on Raspberry Pi
Further reading
- Oestreicher, M. D.; Bailey, M. J.; Strauss, J. I. (1967-11-01). "GEORGE 3---A general purpose time sharing and operating system". Communications of the ACM. 10 (11): 685–693. S2CID 18176176.