[net.unix] "tenex", where does the word come from?

wa371@sdcc12.UUCP (Bernd Riechelmann) (10/24/86)

Recently learned about the tcsh shell, and the documentation says that 
it is 'tenex' like.  I can not find tenex in the dictionary.
Where does it come from and/or what does it mean?
Thanks.
Bernd
UUCP: ...!sdcsvax!sdcc12!wa371, Internet: wa371%sdcc12@sdcsvax.ucsd.edu

campbell@maynard.UUCP (Larry Campbell) (10/25/86)

In article <623@sdcc12.UUCP> wa371@sdcc12.UUCP (Bernd Riechelmann) writes:
>Recently learned about the tcsh shell, and the documentation says that 
>it is 'tenex' like.  I can not find tenex in the dictionary.
>Where does it come from and/or what does it mean?

*SIGH* ... how quickly important work in the field is forgotten...

TENEX is an operating system developed in the late 1960s by Bolt, Beranek,
and Newman (BBN).  It was one of the first demand-paged virtual memory
timesharing systems.  It ran on a DEC PDP-10 with a paging box built by BBN.
In 1973 DEC bought the rights to it, redesigned the file system for better
reliability, added lots of features, and called it TOPS-20.  Throughout
the 1970s, most of the major ARPANET sites ran either TENEX or TOPS-20.

If TENEX isn't studied in every introductory operating systems course,
it should be.  Along with Multics, UNIX, and VM, TENEX is one of the
seminal operating systems to have seen commercial use.  In particular,
it has the cleanest and most efficient virtual memory implementation
I've seen.

One of TENEX's most innovative features is its command processor, or EXEC.
I think it's the friendliest user interface I've ever seen that doesn't
get in your way.  (Menus are friendly, but after about an hour you're
ready to put your foot through the screen.)

Now it's my turn to plead ignorance...  I have heard of tcsh but never
seen one.  Is it public domain?  Can I get a copy?  I am a big fan of
TENEX (TOPS-20 actually), and would love to have a similar user interface
for UNIX.
-- 
Larry Campbell       MCI: LCAMPBELL          The Boston Software Works, Inc.
UUCP: {alliant,wjh12}!maynard!campbell      120 Fulton Street, Boston MA 02109
ARPA: campbell%maynard.uucp@harvisr.harvard.edu     (617) 367-6846

rpw3@amdcad.UUCP (Rob Warnock) (10/25/86)

In article <623@sdcc12.UUCP>, wa371@sdcc12.UUCP (Bernd Riechelmann) writes:
> Recently learned about the tcsh shell, and the documentation says that 
> it is 'tenex' like.  I can not find tenex in the dictionary.
> Where does it come from and/or what does it mean?
> Thanks.

In the early 1970's, before DEC had ever built a paging version of the
PDP-10 processor, Bolt Beranek and Newman (BBN) built and sold a thing
called TENEX, for "PDP-10 EXtended", or some such. The TENEX hardware
consisted of an entire additional cabinet to your KA-10 processor (which
was already three boxes), plus around 150 wiring changes to the basic CPU
which connected the CPU to the new box, added some instructions, changed
the way some old instructions worked, etc. The main addition was a paging
unit, which allowed the possibility of demand paging of user programs. The
operating system which supported all of this was also called TENEX (or,
"the TENEX Operating System"), and a very interesting article on it was
published in CACM (I forget when). As I recall, the motivation was to
support some very large research projects being done by ARPAnet members,
for which BBN was (is?) a major contractor.

The command decoder was a major departure from previous DEC command-line
syntax, and had very advanced (for the day) features like command completion
and filename completion (you type a piece of the command or filename and
hit <ESC>, and it would try to finish the word or filename for you), and
various levels of help available at any time.

Also, TENEX was "process oriented" (like Unix), rather than "job oriented",
and had "fork()", essentially as Unix knows it (except that memory was by
default SHARED between parent and child, which made cooperating processes
like "cu" a lot easier to write -- but copy-on-write access was also
available). Programs were demand paged out of their ".EXE" files, etc.

Anyway, when DEC finally got around to adding paging to the PDP-10 line --
oops, by then the DECsystem-10 and DECsystem-20 line -- demand from users of
TENEX (mostly ARPAnet sites?) helped cause DEC to make the operating system
for the DECsystem-20 (TOPS-20) be more or less similar/equal to TENEX
[and that's ANOTHER long story!], hence the origin of another word you
may never see in a dictionary: "Twenex" (refers interchangably to TOPS-20
or TENEX).

It is primarily the user-visible command-decoder syntax of Twenex which is
being discussed when people are talking about "tcsh" or "ncsh", particularly
the command- and filename-completion features.


Rob Warnock
Systems Architecture Consultant

UUCP:	{amdcad,fortune,sun}!redwood!rpw3
DDD:	(415)572-2607
USPS:	627 26th Ave, San Mateo, CA  94403

cwruacm@cwruecmp.UUCP (Kronen Insultants) (10/25/86)

In article <623@sdcc12.UUCP> wa371@sdcc12.UUCP (Bernd Riechelmann) writes:
>Recently learned about the tcsh shell, and the documentation says that 
>it is 'tenex' like.  I can not find tenex in the dictionary.
>Where does it come from and/or what does it mean?

>Bernd

"TENEX" was an operating system designed and implemented by Daniel
Murphy and others at BBN (Bolt, Baranek, and Newman) in the early
1970's based on TOPS-10.  It ran on a DECsystem-10 with special paging
hardware added by BBN.  DEC, as the story goes, bought the rights to
TENEX and used it as a base for TOPS-20 ("Twenex").  

A shell that is "tenex-like" would probably include some of the following
characteristics:  
	1.  <ESC> completion of filenames and commands
	2.  <ESC> to find out more information about a command (defaults, etc.)
	3.  Typing a question mark at any time will cause the EXEC to list the
	    options at that point (e.g. typing "CO?" at the EXEC prompt will 
	    cause the exec to list all the commands that begin with "CO")
    	4.  Typing a question mark after a command will cause the EXEC to
	    list the available options and/or what type of argument is expected

TENEX was written entirely in assembly language (the norm for that time, but
still terrible to contemplate -- if you hadn't guessed, I only use assembler
when absolutely necessary :-)).

An article describing TENEX appears in "Communications of the ACM" in one of
the 1972 issues.  The article is by Murphy and the other implementors.


						Chet Ramey


Trademark is a Disclaimer of Bell Labs

ARPANET:  cwruacm%case@csnet-relay.arpa
		or
	  ramey%cwru-20%case@csnet-relay.arpa
CSNET:    cwruacm@case  or  ramey%cwru-20@case
UUCP:     {...}!decvax!cwruecmp!cwruacm
		or
	  {...}!decvax!cwruecmp!ramey@cwru-20
BITNET:   ramey%cwru20@cu20b

	"But we decide which is real
	 and which is an illusion..."
				The Moody Blues

budd@bu-cs.BU.EDU (Philip Budne) (10/27/86)

TENEX stands for TEN EXecutive, an operating system developed for the
PDP-10 in the early 1970's at BBN.  A major goal was the production of
a user friendly, user mode command interpreter (the EXEC) that had
command completion and "incremental help"; at any time, in any command
a user could type <ESC> to "complete" the keyword or filename being
typed, or type "?" and see an explanation of valid options at this
point in the command parse. The "Load Average" in BSD is a legacy of
TENEX.

TENEX (and TOPS-20 "Twenex"), share with Un*x the idea of a user mode
command interpreter with user programs executing in 'forks'.  Another
similar point was the design decision that "no operating system
maintained structures should exist in the user's adress space".

However the T(w)ENEX monitor performs many operations in the supervior
such as username translation and 'globbing' performed by libraries or
the shell in Un*x. TENEX also has a rich set of terminal, virtual
memory, and fork management primatives.  An interesting abstraction is
the equivalence of disk and memory pages; useful for databases and
shared libraries.

Ken Thompson acknowledged in his Turing award speech that if Dennis
Bobrow's AI group had been poorer and had had to settle for a PDP-11,
that Bobrow might be standing there instead of him.

jon@nsc.UUCP (Jon Ryshpan) (10/31/86)

Anyone who wants to get a small idea of what a "tenex like" interface
looks like can run C Kermit, which has a user interface based on tenex.
-- 

  Jonathan Ryshpan   MS D3645		USENET: ...hplabs!nsc!blit!jon
  National Semiconductor		ARPA:   decwrl!nsc!blit!jon@ucbvax.arpa
  Sunnyvale, CA  95052-8090		DOMAIN: jon@blit.sc.nsc.com