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 http://dl.acm.org/citation.cfm?id=363806 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@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org