Subject: Re: Nsys kernel: can I get the original tape image?

From: [email-masked]
Date: Wed, 12 Jan 2000 16:25:55 -0500

They're now in incoming.  BTW I'm about to delete the other
things.

	Dennis

Subject: Nsys kernel: can I get the original tape image?
From: Warren Toomey <[email-masked]>
To: [email-masked]
Cc: [email-masked] (Warren Toomey)
Date: Thu, 13 Jan 2000 08:23:46 +1100 (EST)

Hi Dennis,
	Could I ask for a copy of the original tape image of the nsys kernel?
I've been thinking over that list of early UNIX dates, and the placement of
the nsys kernel seems a bit early. Here's my reasoning.

 From the list of early dates:

June '72: 2nd Edition manuals released.
June-July '72: The last1120c compiler and associated binaries from s2-bits.
December '72: The prestruct-c compiler.

By the prestruct-c compiler, the kernel had some form of memory management.
However, the compiler didn't support structures, nor the char * syntax.

February '73: 3rd Edition manuals released. According to Norman Wilson's
	web page on file system formats, ``The file system format has not
	changed, but times are now sixtieths of a second since 00:00
	1 January 1972''.
	[ http://www.cita.utoronto.ca/~norman/old-unix/old-fs.html ]

September '73: The C version of the kernel is adopted.
November '73: The 4th Edition manuals were published. According to Norman,
	``The file system structure has changed quite a bit, probably at
	the same time the operating system was rewritten in C. The new
	format is the almost that of the more familiar Sixth Edition system.''

Looking at the source code to cp.c on the s1-bits tape, we see:

char *p1, *p2, *bp;
	. . .
        fstat(fold,buf);		/* Get details of source file */
        mode = buf[2] & 037;		/* Extract original file permissions */
        if((fnew = creat(argv[2],mode)) < 0){
                stat(argv[2], buf);
                if((buf[3] & 0100) != 0){	/* If new file's inode exists */

This version of cp(1) extracts the `xrwrw' file permissions, so it is
using the filesystem from 1st-3rd Edition. However, it uses `char *' syntax.
This dates the file after prestruct-c but before 4th Edition.

Moving on to the `nsys' kernel, most of the files are dated around
January 22-23, 1973. This source uses C structures and the `char *' syntax.
It also has a 4th Edition filesystem layout, and not a 3rd Edition layout.

To me, the date of late January 1973 for `nsys' is too early. Only a month
earler, the prestruct-c compiler didn't support structures nor `char *',
and two months later the 3rd Edition assembly kernel was still using the
original filesystem.

I'd probably place the `nsys' kernel between Feb and Sept 1973. This would
give enough time for the C compiler to gain structs and `char *', and for
the switch over to the new filesystem format.

Cheers again,
	Warren