Mailinglist Archive: opensuse (714 mails)

< Previous Next >
GEORGE 3 was: [opensuse] different types of shell scripts
Anton Aylward wrote:
Dave Howorth said the following on 09/22/2011 10:07 AM:

Sorry for the late reply. It's taken a while to read some stuff.

Hmm, UNIX was first named UNICS, named after MULTICS, from which it took
many features, including multiprocessing. As well as MULTICS, the
Burroughs MCP had parallel execution of tasks, as did ICL's GEORGE 3.
They all had job control languages too, and all in the 1960s before Unix
was conceived.

I've used Burroughs engines and George on a 1901/2.
Saying "job control language" is still not a 'shell' in the way Steve
Bourne (another Brit) conceived of it. They were still line-oriented.

Well the shell is still line oriented :)

When they had decision/branching statements they were "interpreted" line
by line, often be re-reading the file so they could GOTO a previous
statement. Yes, I know, I worked on the code!

What made Steve's shell different was that he read in and tokenized the
whole file (then closed it and forget about the source). Was this new?

How interpretive languages are interpreted is an interesting and
important subject, but I don't think it is fundamental in defining a
modern shell. There's an interesting paper describing "GEORGE 3 — A
general purpose time sharing and operating system", which was written in
1967 and is available at

It describes the following features of the GEORGE3 JCL, which was based
on CTSS command language from project Mac:
- same language for users at terminals & batch jobs;
- job/process forking and reconnection, and suspension waiting for events;
- equivalence of job scripts in files, binary programs and system commands
- recursion within scripts
- device/file independence and shell i/o redirection
- exception traps

It also describes the filestore:
- sequential & random access files
- automatic offlining/backup and recovery (multi-level infinite filestore)
- pipes ('communication files')
- hierarchical directory tree
- relative and absolute paths
- home directories
- symlinks
- 'streams' - virtual files made by concatenating other files
- read, write, execute & append permissions
- separate permissions for owners, other users and groups

I don't think there's a lot missing there from most shells.

Cheers, Dave
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages