Difference between revisions of "UNIX Sixth Edition"

From Computer History Wiki
Jump to: navigation, search
(Running UNIX V6: Add Ritchie/Wellsch distro diffs)
(Move XV6 stuff to new XV6 article)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{Infobox OS  
 
{{Infobox OS  
 
| image = v6unix.png
 
| image = v6unix.png
| caption = Logging into a v6 unix system
+
| caption = Logging into a V6 UNIX system
| name = Unix v6
+
| name = Unix V6
| creator = AT&T/Western Electric
+
| creator = AT&T/[[Western Electric]]
| current version = v6
+
| year introduced = May, 1975
| year introduced = 1975
+
| previous version = [[UNIX Fifth Edition|V5]]
| type = Multitasking, multiuser
+
| current version = V6
| architecture = [[PDP-11]]
+
| next version = [[UNIX Seventh Edition|V7]]
 +
| type = [[Multi-tasking]], [[multi-user]]
 +
| architecture = [[PDP-11 architecture|PDP-11]]
 
}}
 
}}
  
'''UNIX Sixth Edition''' (often referred to as '''UNIX V6''' or '''V6 UNIX''' - 'Unix' was still normally given in all capital letters at this point in time) was one of the most influential early versions of [[UNIX]]. It was the first version which was widely distributed outside Bell Labs, appearing as it did shortly after the influential CACM article on Unix, and it had an ''enormous'' impact.  
+
'''UNIX Sixth Edition''' (often referred to as '''UNIX V6''' or '''V6 UNIX''' - 'Unix' was still normally given in all capital letters at this point in time) was one of the most influential early versions of [[UNIX]]. It was the first version which was widely distributed outside [[Bell Labs]], appearing as it did shortly after the influential CACM article on Unix, and it had an ''enormous'' impact.  
  
It was also the base for many important branches of UNIX, including PWB/Unix and the [[BSD]] Unix family (it was in fact the first version of Unix to have more than one descendant). It was also one of the more popular Research versions from Bell Labs, along with [[Unix Seventh Edition]].
+
It was also the base for many important branches of UNIX, including [[PWB/UNIX]] and the [[BSD]] Unix family (it was in fact the first version of Unix to have more than one descendant). It was also one of the more popular Research versions from Bell Labs, along with [[Unix Seventh Edition]].
  
To many computer scientists enountering it for the first time in its era, it had the feel of a then [[mainframe]] [[operating system]], but on a [[minicomputer]]; it felt totally unlike all the other minicomputer OS's at the time. Many also still consider it to have been the system with the highest ratio of power to size, ever.
+
To many computer scientists encountering it for the first time in its era, it had the feel of a then [[mainframe]] [[operating system]], but on a [[minicomputer]]; it felt totally unlike all the other minicomputer OS's at the time. Many also still consider it to have been the system with the highest ratio of power to size, ever.
  
As distributed from Bell Labs, it ran only on [[PDP-11]]s, although outside Bell Labs it was later ported to several other architectures.
+
As distributed from Bell Labs, it ran only on [[PDP-11]]s, although outside Bell Labs it was later ported to several other architectures (see below).
  
It was very similar to the earlier [[UNIX Fifth Edition]]; the main change was the support of so-called [[PDP-11 Memory Management|split I+D space]], both in the kernel, and for user programs. It also supported the [[PDP-11/70]] with more than 256 Kbytes of [[main memory]], and the resultant [[UNIBUS map]].
+
It was very similar to the earlier [[UNIX Fifth Edition]]; the main change was the support of so-called [[PDP-11 Memory Management|split I+D space]], both in the [[kernel]], and for [[user]] [[process]]es. It also supported the [[PDP-11/70]] with more than 256 Kilobytes of [[main memory]], and the resultant [[UNIBUS map]].
  
UNIX V6 included even more documentation than V5, and also included gems like [[Programming in C - A Tutorial]].
+
UNIX V6 included even more documentation than V5, which included gems like [[Programming in C - A Tutorial]].
  
 
==Other Platforms==
 
==Other Platforms==
  
In addition to the [[PDP-11]], which was the only machine the original Bell Laboratories distribution of V6 ran on, it was later ported to several other architectures.
+
In addition to the PDP-11, which was the only machine the original Bell Laboratories distribution of V6 ran on, it was later ported to several other architectures.
  
=== Interdata 8/32 ===
+
=== Interdata 7/32 and 8/32 ===
  
The first port of Unix to another architecture was performed outside of Bell Laboratories; V6 was ported to an [[Interdata 7/32]] at the University of Wollongong. This was also the first port to a 32 bit platform, although Bell completed their own port to the very similar [[Interdata 8/32]] shortly thereafter (that port became [[Unix Seventh Edition]]).
+
The first port of Unix to another architecture was performed outside of Bell Laboratories; V6 was ported to an [[Interdata 7/32]] at the University of Wollongong. This was also the first port to a 32 bit platform, although Bell completed their own port to the very similar [[Interdata 8/32]] shortly thereafter (that port later became Unix Seventh Edition).
  
 
=== Intel 80286 ===
 
=== Intel 80286 ===
  
There is a port by Szigeti Szabolcs to the [[i286|Intel 80286]] CPU, available in [http://www.tuhs.org/archive_sites.html the Unix Archive] under Other/V6on286. Requires a copy of [[MS-DOS]] to run.
+
There is a port by Szigeti Szabolcs to the [[i286|Intel 80286]] CPU, available in [http://www.tuhs.org/archive_sites.html the Unix Archive] under Other/V6on286. It requires a copy of [[MS-DOS]] to run.
  
 
=== i386 ===
 
=== i386 ===
  
There is a 32bit port to the [[Intel 80386|x86 cpu]], an intructional operating system called 'XV6', used at MIT for an operating systems [http://pdos.csail.mit.edu/6.828/2006/index.html class].    You can download the [http://pdos.csail.mit.edu/6.828/2006/src/xv6-rev0.tar.gz source].
+
There is a 32-bit re-write to the [[Intel 80386|x86 cpu]], an instructional operating system called '[[xv6]]', used at [[Massachusetts Institute of Technology|MIT]] for an operating systems course.
  
 
== Folk Lore ==
 
== Folk Lore ==
Line 42: Line 44:
 
[[Image:Lions UNIX book cover.jpg|thumb|150px|right|The Lions Book]]
 
[[Image:Lions UNIX book cover.jpg|thumb|150px|right|The Lions Book]]
  
V6 Unix is also famous because of the "[[Lions book]]". [[John Lions]] at the University of New South Wales wrote up an excellent dissection of the Unix [[kernel]], and taught it in his OS classes.
+
V6 Unix is also famous because of the "[[Lions book]]". [[John Lions]] at the University of New South Wales wrote up an excellent dissection of the UNIX kernel, and taught it in his OS classes.
  
Unfortunately, the book ran into intellectual property issues with Bell, so its formal distribution was halted; however, it became ''the'' guide to Unix internals as it was photo-copied over and over, in a Western equivalent to the ''samizdat'' of the old USSR.
+
Unfortunately, the book ran into intellectual property issues with Bell, so its formal distribution was halted; however, it became ''the'' guide to UNIX internals as it was photo-copied over and over, in a Western equivalent to the ''samizdat'' of the old USSR.
  
Recently, with the open release of older versions of Unix, the intellectual property issues were cleared, and the Lions book is now finally publicly available.
+
Recently, with the open release of older versions of UNIX, the intellectual property issues were cleared, and the Lions book is now finally publicly available.
  
 
== Games ==
 
== Games ==
Line 62: Line 64:
 
==Running UNIX V6==
 
==Running UNIX V6==
  
To install and run Unix V6, one needs a distribution (either an image of a distribution tape, or images of [[disk]]s), and either an emulator, or an actual PDP-11 or Interdata.
+
To install and run UNIX V6, one needs a distribution (either an image of a distribution tape, or images of [[disk]]s), and either an [[emulator]], or an actual PDP-11 or Interdata.
  
V6 ''can'' be run on a [[PDP-11/23]], but it takes a few [[Running UNIX V6 on an -11/23|minor mods]] to do so.
+
V6 ''can'' be run on a real [[PDP-11/23]], but it takes a few [[Running UNIX V6 on an -11/23|minor mods]] to do so.
  
==Distros==
+
===Distros===
  
There are two different distribution sets for V6 in the [[TUHS]] archive: 'Dennis_v6' and 'Ken_Wellsch_v6' (below). The contents page says:
+
There are two different distribution sets (as disk images) for V6 in the [[The Unix Heritage Society|TUHS]] archive: 'Dennis_v6' and 'Ken_Wellsch_v6' (below). The contents page says:
  
 
<pre>
 
<pre>
Line 81: Line 83:
 
   in by Ken Wellsch.</pre>
 
   in by Ken Wellsch.</pre>
  
It notes that there are differences between the two, but hadn't investigated. Here are some details: the source files for the kernel are identical, except for sys/ken/main.c, which has the following added in the Wellsch version:
+
It notes that there are differences between the two, but hadn't investigated what they are. Here are some details: the source files for the kernel are identical, except for sys/ken/main.c, which has the following added in the Wellsch version:
  
 
<pre> printf("RESTRICTED RIGHTS\n\n");
 
<pre> printf("RESTRICTED RIGHTS\n\n");
Line 88: Line 90:
 
  printf("Electric Company, Inc.\n");</pre>
 
  printf("Electric Company, Inc.\n");</pre>
  
(What clearly happened is that after they'd done some distribution,
+
(What clearly happened is that after they'd done some distribution, the AT+T lawyers made them add that.) Anyway, as a result, the binary system images 'rkunix', etc are slightly different between the two.
the AT+T lawyers made them add that.) Anyway, as a result, the binary system images 'rkunix', etc are slightly different between the two.
 
  
Everything else seems to be identical: /bin, /etc, /lib, /usr/bin and /usr/lib are all identical.
+
Everything else seems to be identical: everything in /bin, /etc, /lib, /usr/bin and /usr/lib are all identical.
  
 
===SIMH===
 
===SIMH===
Line 97: Line 98:
 
One possibility for an emulator is to use [[SIMH]]; you can get V6 by looking for uv6swre.zip and iu6swre.zip, PDP-11 and Interdata versions respectively.
 
One possibility for an emulator is to use [[SIMH]]; you can get V6 by looking for uv6swre.zip and iu6swre.zip, PDP-11 and Interdata versions respectively.
  
*http://simh.trailing-edge.com/kits/uv6swre.zip
+
* [http://simh.trailing-edge.com/kits/uv6swre.zip uv6swre.zip]
*http://simh.trailing-edge.com/kits/iu6swre.zip
+
* [http://simh.trailing-edge.com/kits/iu6swre.zip iu6swre.zip]
  
There is also a great lecture series involving SIMH and v6 which can be found here:
+
There is also a great lecture series involving SIMH and v6 which can be found
*[http://wwwlehre.dhbw-stuttgart.de/~helbig/os/index.html http://wwwlehre.dhbw-stuttgart.de/~helbig/os/index.html]
+
[http://wwwlehre.dhbw-stuttgart.de/~helbig/os/index.html here].
*[[xv6 homework 4]]
 
*[[xv6 homework 5]]
 
*[[xv6 homework 6]]
 
*[[xv6 homework 7]]
 
*[[xv6 homework 8]]
 
  
 
===Ersatz-11===
 
===Ersatz-11===
Line 114: Line 110:
 
==See also==
 
==See also==
  
* [[Unix V6 internals]]
+
* [[UNIX file system]]
** [[Unix V6 kernel memory layout]]
+
* [[UNIX V6 internals]]
 +
* [[UNIX V6 kernel memory layout]]
 +
** [[UNIX V6 dump analysis]]
 
* [[Installing UNIX Sixth Edition]]
 
* [[Installing UNIX Sixth Edition]]
 
** [[Setting up UNIX Sixth Edition]]
 
** [[Setting up UNIX Sixth Edition]]
* [[Upgrading UNIX Sixth Edition]]
+
** [[Upgrading UNIX Sixth Edition]]
** [[Unix V6 dump analysis]]
+
** [[Running UNIX V6 on an -11/23]]
* [[Running UNIX V6 on an -11/23]]
+
* [[Installing UNIX v6 (PDP-11) on SIMH]]
* [[Installing Unix v6 (PDP-11) on SIMH]]
+
** [[Running UNIX v6 in SIMH]]
** [[Running Unix v6 in SIMH]]
 
 
* [[Installing UNIX Sixth Edition on Ersatz-11]]
 
* [[Installing UNIX Sixth Edition on Ersatz-11]]
 +
 +
==External links==
 +
 +
* [https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6 V6] - V6 distro at TUHS, as individual files
 +
** [https://www.tuhs.org/Archive/Distributions/Research/Dennis_v6/ Ritchie distro]
 +
** [https://www.tuhs.org/Archive/Distributions/Research/Ken_Wellsch_v6/ Wellsch distro]
 +
* [https://people.eecs.berkeley.edu/~brewer/cs262/unix.pdf The UNIX Time-Sharing System] - the famous [[CACM]] paper
 +
* [https://www.bell-labs.com/usr/dmr/www/odd.html Odd Comments and Strange Doings in Unix] - "a small, shared treasure" from DMR
 +
* [http://squoze.net/UNIX/v6man/ UNIX Programmer's manual: Sixth Edition]
 +
* [https://www.tuhs.org/Archive/Distributions/USDL/unix_program_description_jan_1976.pdf UNIX Program Description] - V6 version, prepared by the [[UNIX Support Group]]; detailed description of the kernel
  
 
{{Nav Unix}}
 
{{Nav Unix}}

Latest revision as of 17:57, 29 February 2024


Unix V6
V6unix.png
Logging into a V6 UNIX system
Type: Multi-tasking, multi-user
Creator: AT&T/Western Electric
Architecture: PDP-11
Previous Version: V5
This Version: V6
Next Version: V7
Date Released: May, 1975


UNIX Sixth Edition (often referred to as UNIX V6 or V6 UNIX - 'Unix' was still normally given in all capital letters at this point in time) was one of the most influential early versions of UNIX. It was the first version which was widely distributed outside Bell Labs, appearing as it did shortly after the influential CACM article on Unix, and it had an enormous impact.

It was also the base for many important branches of UNIX, including PWB/UNIX and the BSD Unix family (it was in fact the first version of Unix to have more than one descendant). It was also one of the more popular Research versions from Bell Labs, along with Unix Seventh Edition.

To many computer scientists encountering it for the first time in its era, it had the feel of a then mainframe operating system, but on a minicomputer; it felt totally unlike all the other minicomputer OS's at the time. Many also still consider it to have been the system with the highest ratio of power to size, ever.

As distributed from Bell Labs, it ran only on PDP-11s, although outside Bell Labs it was later ported to several other architectures (see below).

It was very similar to the earlier UNIX Fifth Edition; the main change was the support of so-called split I+D space, both in the kernel, and for user processes. It also supported the PDP-11/70 with more than 256 Kilobytes of main memory, and the resultant UNIBUS map.

UNIX V6 included even more documentation than V5, which included gems like Programming in C - A Tutorial.

Other Platforms

In addition to the PDP-11, which was the only machine the original Bell Laboratories distribution of V6 ran on, it was later ported to several other architectures.

Interdata 7/32 and 8/32

The first port of Unix to another architecture was performed outside of Bell Laboratories; V6 was ported to an Interdata 7/32 at the University of Wollongong. This was also the first port to a 32 bit platform, although Bell completed their own port to the very similar Interdata 8/32 shortly thereafter (that port later became Unix Seventh Edition).

Intel 80286

There is a port by Szigeti Szabolcs to the Intel 80286 CPU, available in the Unix Archive under Other/V6on286. It requires a copy of MS-DOS to run.

i386

There is a 32-bit re-write to the x86 cpu, an instructional operating system called 'xv6', used at MIT for an operating systems course.

Folk Lore

The Lions Book

V6 Unix is also famous because of the "Lions book". John Lions at the University of New South Wales wrote up an excellent dissection of the UNIX kernel, and taught it in his OS classes.

Unfortunately, the book ran into intellectual property issues with Bell, so its formal distribution was halted; however, it became the guide to UNIX internals as it was photo-copied over and over, in a Western equivalent to the samizdat of the old USSR.

Recently, with the open release of older versions of UNIX, the intellectual property issues were cleared, and the Lions book is now finally publicly available.

Games

The game situation didn't improve that much from V5 to V6.

bj
chess
cubic
moo
ttt
wump

Running UNIX V6

To install and run UNIX V6, one needs a distribution (either an image of a distribution tape, or images of disks), and either an emulator, or an actual PDP-11 or Interdata.

V6 can be run on a real PDP-11/23, but it takes a few minor mods to do so.

Distros

There are two different distribution sets (as disk images) for V6 in the TUHS archive: 'Dennis_v6' and 'Ken_Wellsch_v6' (below). The contents page says:

  Dennis_v6
  ---------
  v6root.gz, v6src.gz and v6doc.gz are a set of three RK05 images of Sixth
  Edition with root, /usr and documentation, from Dennis Ritchie.

  Ken_Wellsch_v6
  --------------
  v6.tape.gz is a copy of the Sixth Edition distribution tape which was sent
  in by Ken Wellsch.

It notes that there are differences between the two, but hadn't investigated what they are. Here are some details: the source files for the kernel are identical, except for sys/ken/main.c, which has the following added in the Wellsch version:

 printf("RESTRICTED RIGHTS\n\n");
 printf("Use, duplication or disclosure is subject to\n");
 printf("restrictions stated in Contract with Western\n");
 printf("Electric Company, Inc.\n");

(What clearly happened is that after they'd done some distribution, the AT+T lawyers made them add that.) Anyway, as a result, the binary system images 'rkunix', etc are slightly different between the two.

Everything else seems to be identical: everything in /bin, /etc, /lib, /usr/bin and /usr/lib are all identical.

SIMH

One possibility for an emulator is to use SIMH; you can get V6 by looking for uv6swre.zip and iu6swre.zip, PDP-11 and Interdata versions respectively.

There is also a great lecture series involving SIMH and v6 which can be found here.

Ersatz-11

Another choice for an emulator is Ersatz-11; complete instructions for how to bring up V6 under Ersatz-11 are available, as well as instructions for how to make a more usable V6 under Ersatz-11: see the link below.

See also

External links