[Eug-lug] Computer time

Mike Cherba mike.cherba at caviumnetworks.com
Sat Jan 22 09:35:12 PST 2005


Thanks for the lesson Bob.  It really reminded me how much of software
progress is evolutionary and why adding tons of cfruft to everything
doesn't neccesarily make it better.
			-Mike



On Sat, 2005-01-22 at 09:31, Bob Miller wrote:
> Jim K wrote:
> 
> >      I just did a man ex on a mandrake 10 community system and it 
> > displayed the vim man page. Is ex just an alias for vim?
> 
> Okay, guys.  Time for text editor history class.
> 
> Emacs.  I already alluded to the fact that it was from MIT.  In 1960,
> MIT got one of the first PDP-1 computers made by the startup company,
> Digital Equipment Corporation (DEC).  A group of nerds took it over
> and started developing software for it.  One nerd, Alan Kotok, started
> writing TECo, for Text Editor and Corrector.  (Alan later went to work
> at DEC and was the chief architect of the PDP-10.)  TECo was a line
> oriented editor: you type a command, the computer responds with
> something.  That's because the terminal was a Teletype machine, which
> prints on paper.  TECo was probably the world's first text editor, as
> the idea of interactively using a computer was radical in the early
> 1960s.
> 
> Anyway, TECo grew and evolved, and was ported to other platforms.  In
> the early 1970s, DEC gave the MIT Lab for Computer Science four PDP-10
> computers.  MIT developed its own operating system for them, ITS.
> TECo was ported to ITS.  By this time, TECo had grown into a fairly
> complex and ugly language.  I used to be very fluent in it, but since
> I stopped using it in the early 1980s, I can't remember squat about
> it.  Richard M. Stallman (RMS, yes, that RMS, who later founded the
> Free Software Foundation and the GNU project) took up maintenance of
> TECo on the PDP-10s.  He also developed a set of personal TECo editing
> shortcuts, or macros, which got popular at the lab.  He called them
> EMACS.  It probably was short for "editing macros", though officially,
> EMACS doesn't stand for anything.
> 
> That's why when RMS started the GNU project, the first program he
> wrote for it was GNU emacs, a port of emacs to the C language and Unix
> platform.
> 
> I'll briefly mention some other emacses.
> 
> An engineer at DEC reimplemented TECo for the PDP-11, and gave it a
> small fraction of the original's feature set.  This was the most
> popular TECo, because it ran on thousands of PDP-11s and VAXes, and is
> the version I learned.
> 
> Somebody did an emacs clone for Unix at Bell Labs around 1980.  It was
> written in C and small enough (barely) to run on a PDP-11.  Since it
> wasn't extensible in any way (couldn't even rebind keys) most people
> thought it didn't count as an emacs.
> 
> James Gosling (who later created the Java language), while at CMU,
> wrote an emacs implementation for Unix, usually called Gosling emacs
> or gosmacs.  Later, he made it into a commercial product, Unipress
> Emacs.  I tried to find a copy of gosmacs screen.c which starts with
> the very best comment I've ever seen in a source file, but it seems to
> be lost to antiquity.  Gosling also published a paper in the CACM
> about the algorithms in that file.
> 
> There was a fork of gnu emacs called Lucid Emacs and later xemacs.
> I personally use the unforked version, sometimes called FSF emacs
> to disambiguate.  They used to be horribly incompatible, but
> they've been evolving into greater compatibility lately.
> 
> That's the Emacs family.
> 
> Meanwhile, at Bell Labs, Unix was being born.  In the mid 1970s, the
> way to interact with a Unix system was through a Teletype.
> Accordingly, ed was written.  ed is a fairly powerful and regular
> editor, given the interface.  Not as powerful as TECo, but a lot
> easier to learn.  Bell Labs started giving away Unix licenses to
> universities in the mid 1970s.  (One of the engineers of that era said
> the reason ed never prints a prompt is that the machines were so slow,
> they'd always be several commands behind you and when you finally
> issued a print command (p or l) to see what you'd done you'd wait and
> wait for it to catch up.)  I remember using mini-Unix on a PDP-11/40,
> and can vouch that a context switch took about three seconds on that
> box.  If another process ran during your editing session, the editor
> would be swapped out for a minimum of six seconds.
> 
> Sometime in the late 1970s, an undergraduate at Berkeley, Bill Joy
> (who later became lead programmer in the DARPA-funded project to make
> Unix a suitable computer science research platform, Berkeley Unix (aka
> Berkeley Software Distribution, BSD), then later founded Sun
> Microsystems), started adding features to ed.  He called his "extended
> ed" ex.  Eventually he added "visual mode", or "vi", to display text
> on a CRT terminal while it's being edited.  So ex and vi were the same
> editor, and both derived from ed.
> 
> Since I'm primarily an emacs user, I don't know the history of various
> vi versions and clones.  The dominant vi variant today seems to be
> vim, for "vi improved".  Maybe somebody else would like to fill that
> part in?
> 
> Steven Levy's book, Hackers, is the best published history of this
> era, especially the MIT bit.  The O'Reilly book, Open Sources, has a
> good synopsis history of BSD written by Mike Karels.
> 
> * ITS, the Incompatible Timesharing System, had the weirdest file
>   naming convention I've ever seen.  The machine had a 36 bit word, a
>   character set called 6-Bit was devised to fit six characters per
>   word.  If I remember, it mapped ASCII characters 32 (space) through
>   95 (backslash), so it had the uppercase letters, the digits, and
>   most of the punctuation, including space (which had code \00,
>   suitable for NULL-padding short names.  A filename was two
>   6-character words separated by a space.  A common convention was to
>   use the second word as a version number.  So the TECo Manual,
>   version 51, would have been named "TECORD     51".
-- 
Mike Cherba
Cavium Networks
883 Brookside Dr
Eugene, OR 97405
phone: (541) 684-3820
Cell:  (541) 914-2188
mike.cherba at caviumnetworks.com
www.caviumnetworks.com


More information about the EUGLUG mailing list