ICT 1900 Operating Systems
Notes by George Felton for
the Seminar in the
The successful George systems were based on original ideas developed between 1959 and 1964 for the Ferranti Orion computer. I shall have to outline these to start with.
Thinking about the Orion system started late in 1958. From Jan 1959 intensive work in Ferranti on new computers led to Atlas and Orion. Development of the operating system (OMP) took place in parallel with that of the hardware (which was heavily oriented to users, ie programmers and operators). In March 1959; a presentation of both machines was made to Harwell. At this time much effort was still going into Pegasus and Mercury. Meeting 7May to specify floating point for Orion.
We designed simple but effective features in the Orion hardware to allow simultaneous running of independently written programs – we called this Time-Sharing but it would nowadays be called pre-emptive multi-tasking, with limited multi-threading. There were privileged instructions to allow efficient time sharing or multi-programming. There were hardware datum and limit registers to prevent any program from accessing any part of the core outside its own entitlement – this prevented accidental interference between jobs and was considered vital for sanitary time sharing (paging was introduced later and provided a different but equally effective way to prevent interference between jobs). There were also arrangements for a program to access only its own peripherals, referring to them by its own private set of addresses. Each program had its own set of registers (accumulators, modifier registers, etc). All these features seemed obvious at the time and they were cheap to include in the hardware. OMP didn't include any multi-access features – the idea was invented later at MIT as Project MAC.
In June 1962 we started shift work developing OMP and Nebula on the Orion prototype in West Gorton. We started running time-shared programs on the prototype Orion by May 1963, when the first (Turitz) Orion started acceptance tests. ICT bought the Ferranti Computer Dept, and we moved to Putney. In September 1964 the 1900-series was launched.
In about Dec 64
(?) Peter Hunt was made
responsible for software development in ICT and a request was received from
Chris Wilson (responsible for selling the 1906/7) for an operating system on the
lines of OMP for the 1906/7. On
People often ask about the
origin of the name George. I'm told that in May 1965 while I was abroad a
meeting was held in my office to analyse ways of interfacing the Executive to
the Operating System – starting with version 'A' and ending with version
'G'. This last was thought to be the best arrangement, someone suggested it ought to be called
George (Autopilot on aircraft, General Organizational Environment, and
Just for a laugh). On
Early on we designed and wrote the George Input Assembler GIN (having found that the usual 1900 assembly language (PLAN) was unsuitable) – this was mostly done by Dan Oestreicher and Jeff Strauss. This proved an ideal input scheme for an operating system; it included facilities for conditional assembly of blocks of source code, and programmer-defined macros. This allowed various versions of George 3 and George 4, with or without temporary diagnostic additions, to be assembled from the same source code. George 4 was the version for paged systems, released late 1974.
Operating systems for medium-size 1900s (32K up) were requested a few months after the initial request in December 1963 (for the 1906/7). We decided to rename George as George 3 and to insert two smaller systems, George 1 and George 2. George 1 allowed complete pre-planning of a single stream of work. Each job was specified as a formal sequence of instructions, which were carried out in turn by George 1. Operator action was reduced in principle to loading and unloading the peripherals. (The first version went to Product Test Jul 1966, released Oct 1966 - the first 1900 Operating System. Mk3 in use Dec 1966.)
For medium-sized 1900s (32K up). This was George 1 plus off-lining features to separate input, computation and output. This provided more efficient batch processing since input/output speeds did not limit processing. Two copies of George 2 can run simultaneously in systems with 48K core. (Draft Spec Feb66. Released George 2T (magnetic tape) November 1967; first deliveries of George 2D (disks) June 1968 - can run on 50% of 1900 systems, 10-12K core.)
A multi-access system enabling up to nine users to communicate with a 1900 processor in a time-sharing mode through remote typewriter consoles. Occupies 6K core. Provides access to FORTRAN, Algol and also JEAN – a conversational system allowing non-specialists to make simple calculations using remote terminals as if they were desk calculators. (Available July 1968)
Concurrent use of George 2
and Minimop was available on larger machines pending release of George 3. An
on-line service was set up in
This could be described as a comprehensive operating system combining batch processing and multi-access (MOP) facilities. Initially George covered only batch work, MOP being a separate system, but these were combined quite soon, with the same command language for both, to their mutual advantage (see 'On unifying a batch system with a multi-access system' by H P Goodman in APIC Studies in Data Processing No.9 Operating System Techniques, Academic Press 1972 (ISBN 0-12-350650-6). Batch processing handles many job streams and schedules these automatically. Facilities are provided for permanent file storage of many types of file for the system itself and for users, with protection and an elaborate method of incremental back-up. Users don't need to concern themselves with where their files are currently stored.
Multi-access facilities are provided through typewriter consoles – later enhancements provided for other types of console, including visual displays, and coupled card reader and line printer clusters. Large numbers of multi-access users are allowed. George 3 also handles multiple processor configurations.
The prototype George 3 system was assembled in January 1966. We had a great many difficulties in developing the system, the biggest was that we had developed a sophisticated system which had to run on a small machine: the 1904/5 with 32K core. It suited the larger 1900s well (eg 1906A). There were many practical problems to cope with – initially the hardware was unreliable and insufficient (only a single prototype at first), and we didn't get access to a 1907 in Putney until August 1967.
George 3 Mark 1 was released
in April 1969. Subsequent releases were about six months apart, until Mk5 in
April 1971. Mk6 was in October 1971. Mk7 at the end of
1972. The project was moved to
The system is still in use on DME hardware, and I am glad to be able to announce that we believe that recent scare stories-about the date at the end of 1999 will not bother George 3 – we think however that there may be problems after the year 2047.
George Felton 29 May 1996 Pers\Seminar\Summary