[TUHS] Provenance of the documents used to restore 1st Ed Unix

Warren Toomey wkt at tuhs.org
Wed Dec 14 13:50:42 AEST 2011


All, here's a special Christmas present, especially for those who
helped out with the restoration of the 1st Ed Unix system, see
http://code.google.com/p/unix-jun72/

To do the restoration we needed a copy of the 1st Ed Unix kernel
source code, and Al Kossow had found these two documents and
scanned them in:
http://minnie.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v1/Kernel_Subroutine_Descriptions_Mar72.pdf
http://minnie.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v1/PreliminaryUnixImplementationDocument_Jun72.pdf

At the time nobody could work out who had studied the kernel source code,
why they had done it etc. Nor could we work out who Ted Bashkow was and
why he was involved.

After my IEEE Spectrum article I was contacted by Jim DeFelice to say
thanks for the article. I recognised him as one of the people named in
the above documents, and asked him about the kernel study. He has contacted
some of the people involved and sent me the e-mail below, which gives
a full description of the work!

Before I get to it, just an aside. According to Berkley Tague,
Ted Bashkow "was a visiting Professor for the summer some time around
1970 or 1971 and worked with me and others in research on various
topics. I don't believe he contributed much to UNIX at that time, but
was an early user of the early systems." 

Cheers,
	Warren

 [ Jim's story]
    Here is as coherent a story as I can piece together  Let me know if you
    have any more questions.
    Jim.
    The documents that describe the UNIX system as it was implemented on
    the PDP-11/20
    circa 1971 originated as a consequence of a project undertaken within
    the comptrollers
    department of the AT&T General Departments.  The project was titled the 
    Investment and Cost Information System (ICIS).  It was a major new
    accounting system intended to track
    detailed cost information for the operating telephone companies of the
    Bell System.
    ICIS was a major IBM mainframe based system which was being developed
    in COBOL.
    I transferred from Bell Labs in late 1970 to join Chuck Everhart who
    preceded me from the Labs. In 1971 we were joined by Ron Silacci, Cathy
    Judge, and later (early '72?) Jerry Conser all from Bell Labs.  We
    formed the core of what would become
    a much larger Development staff by 1973.   
    In preparation for a major development effort, we wanted to develop a
    system to maintain the spate of expected ICIS specification and design
    documents including graphics such as flowcharts.   We decided on the
    PDP-11/20 with a Tecktronix T4002 graphics terminal as the hardware
    platform for the development of our document maintenance system.
    For obscure reasons, in order to purchase the PDP-11/20, the ICIS team
    needed to get approval from the Bell Labs computer aquisition review
    department headed
    by Berkley Tague.  Berk made the approval for the purchase contingent
    us agreeing to use UNIX as the operating system.First hearing of this
    "UNIX" verbally, my mind was filled with scenes from the Arabian
    Nights.  "Eunuchs" seemed a strange name for an operating system.
    At the time, the only instances of UNIX were to be found in the hands
    of the developers (Ken Thompson & Co.) at Murray Hill, NJ.  We
    naturally asked for all the documentation.  We were told there was
    none.  What we got was a source listing  of the PDP-11 assembly
    language UNIX Kernel.  It was virtually without any commentary or
    external description.  In order to proceed we undertook to reverse
    engineer the listing in order to understand how to
    modify UNIX to support the T4002.  To that end, in late 1971, we set up
    shop at a Labs facility in Piscataway, NJ.   The team got occasional
    hints and pointers from the UNIX developers at Murray Hill, but they
    tended to be focussed on their own work (the C programmimg language,
    troff, etc.).  Initial progress was slow, but as the overall design
    structure emerged and the team became fluent with PDP assembly
    language and the coding style of the UNIX developers things moved
    along.  Early work was
    done with paper and pencil resulting in the document named by you as
    "Kernel Subroutine
    Description...".  Once we took delivery of our PDP-11/20, we were able 
    to make
    use of the UNIX tools "ed" and "roff" to create a more easily edited
    digital document
    "Preliminary UNIX Implementation Document"

    The detailed timing of all this is uncertain. The hand work was done
    from late 1971 through
    March 1972 resulting in the Kernel Subroutine documentation.  Chuck
    Everhart left AT&T
    in late 1971 and I became the group supervisor. A draft of the machine
    based Preliminary
    Implementation document was completed by June 1972 per the date on my
    cover letter for its first distribution.  By June 1972 there was
    evidently a lot of interest in UNIX inside Bell Labs. The computer  
    commitee was pushing UNIX for all PDP based projects inside Bell Labs. 
    The ICIS owned PDP-11/20 was probably received after March 1972. The
    hand written cover letter to Ted Bashkow is dated 4/3/72.  Once we had
    use of the PDP-11 we would have entered our work directly. The
    modifications for the T4002 are not dated in
    your PDF version and do not appear in the original printout that I
    still have.  I don't know why the date on all the printed pages is  
    3/17/72. Also, missing in the PDF version of the Preliminary
    Implementation document that is in the paper version is a subroutine
    cross reference listing that lists which subroutines are called by
    which.
    Regarding the authorship of the documents. Looking at the handwriting
    it seems
    at least four people contributed to the Kernel Subroutine document.  
    Myself and Ron
    have actually reviewed the document and can claim authorship to  
    specific sections.  By sections:
    J. DeFelice
    H0_01, H0_02, H0_03,H0_04,H0_05, H2-11_sysexec call chain,
    H2.4,H2_1.7,H2-8,
    H2-9 H4-3, H5-1, H5-2, H5-3, H5-4, H5-7,
    H7-1, H7-2, H7-4, H7-5,H7-6, H8-01.2, H8-02, H8-03, H8-05, H8-06, 
    H8-07,
    H8-08, h8-09-00, h5-6
    Ron Silacci
    sysclose, syscreate, sysent, sysexit, sysfork, sysmdate, sysgetty,  
    sysmdir,
    error, badsys, sysopen, sysret, sysrele, sysstty, syswait, read, write,
    ani,
    sysstat, sysgetuid, sysintr, syslink, sysseek, syssetuid, sysstat,
    sysstime,
    systime, sysquit, sysunlink, wdir, fclose, isdir, isown, maknod, mkdir,
    getf,
    seektell, sysbreak, syschdir, syschmod, syschown, clear, idle, putlu,  
    swap,  
    tswap, unpack, rswap, wswap, clock, isintr, retisp, sleepo, setisp, 
    tty0,
    wakall, ttyi, wakeup, itrunc, imap, dskr, cpass, readi, canon, cesc,
    ctty,
    ttych, getspl, iclose, iopen, sysmount, sysumount, bread, bwrite,   
     dioreg, drum, preread, rtap, tape, tstdeve, trapt, rw1, intract, otty.
    Unknown 1 (all caps)
    H4_00, H4_01, H4_02, H4_2.1, H6_2.2, H6_3.0, H6_6, H7_0.0.4, H7_3.0,
    H7_3.2
    H7_3.3, H9_00.1, H9_01, H9_02, H9_03
    Unknown 2
    H0_06, H0_07, H2_0.2, H2_3,H2_4, H3_2, H3_4, H5_2.0, H5_2.1,H6_0.9,
    H6_1.0,
    H6_1, H6_2.0, H6_2.2, H6_3, H6_4, H8_09, H8_11
    The two unknowns would be Jerry Conser and Cathy Judge.  I have not 
    been able to track
    them down.
    The comments in the listing were made by the people who authored the
    corresponding man pages. We would comment the listing and as
    understanding dawned write up the man page. I had a major hand in   
    Section F but can't claim sole responsibility.
    The people listed in the recipients list in Ted Bashkow's cover letter
    are the members of the computer aquisition department.  According to
    Joe Maranzano:
    "Ted Bashkow was a professor from Columbia who was on a 6-month
    sabbatical in Berkley Tague's department.
    The other names on the memo are:
    Dan Clayton
    David Copp
    Gwen Hansen
    Jossie Hintz
    Ruth Klein
    Jim Ludwig
    Georgette Petit
    Joe Ritacco
    Berk Tague
    Dan Vogel
    Linda Wright
    This was the composition of the Department in 1972 and most of us were
    working on Computer Acquisition Reviews for
    the Computer Centers. The Unix Support Group was formed in 1973."
    By the time the Tecktronix application was developed, the ICIS
    development project was ramping up.  The developers were using punch
    cards for their Cobol programs.  It occurred to me that we could
    utilize our UNIX system to eliminate punch cards which were difficult  
    to manage and instead enter and edit the Cobol code using "ed". My
    management (rotated in from Bell Operating Companies) was not keen on  
    diverting resources towards
    more tool building but I had enough autonomy to push through the    
    ordering of a PDP-11/45 and a DEC developed Bisync communications
    interface card. This configuration allowed the UNIX system to emulate
    an IBM card reader/printer.
    The PDP11/45 had memory protection, which made committing all the   
    source code for a major project to UNIX thinkable. I did all the
    development work on a bisync driver myself while my group attacked the
    main IBM development. The resulting system worked well and over the 
    course of a few months all the die hard card rearder afficianados had
    converted to the new system. This despite the occasional file system
    crash.  At the time you could go in and edit i-nodes by hand to recover
    lost files and directories. So with frequent tape backups for insurance
    we never lost more that a few hours worth of work.
    The Bell Labs UNIX support department (formed in 1973) eventually took
    over the maintenance of the system and dubbed it the Programmers Work
    Bench.  Other types of workbench were to follow.  I lost track of
    developments in the UNIX world till I transferred back to Bell Labs in
    1982. By then the UNIX support organization was an entire
    Laboratory.  The hardware platform was the DEC VAX system, UNIX was
    rewritten in C, and Berkely UNIX was a major competitor to the AT&T 
    version.  I still have the design and code for the Bisync driver if you
    are interested.



More information about the TUHS mailing list