Difference between revisions of "PWB/UNIX"

From Computer History Wiki
Jump to: navigation, search
(A start; more to come)
 
(More overview, and 1.0 kernel change details)
Line 1: Line 1:
'''PWB/UNIX''' (usually called just ''''PWB'''; the acronym is from its formal name, the 'Programmer's Workbench')) was a variant of [[UNIX Sixth Edition|V6 Unix]] inside Bell, with minor changes to make it more suitable for use in a production environment. The effort started in mid-1973 after a suggestion by M. L. Ivie, with its first [[PDP-11/45]] later that year.
+
'''PWB/UNIX''' (usually called just ''''PWB'''; the acronym is from its formal name, the 'Programmer's Workbench')) was a variant of early [[UNIX]] (initially [[UNIX Sixth Edition|V6 Unix]]) inside Bell Labs, with minor changes to the [[kernel]] make it more suitable for use in a production environment (e.g. better response to resource shortages). Of more consequence were those found in the [[application]]s: both major new ones such as 'make' and the [[Source Code Control System]], and also changes to the [[command processor|shell]] (both functionality improvement for use in [[shell programming]], and also increased efficiency - the PWB machines had large user communities, and were heavily loaded; extensive use was made of shell programs).
 +
 
 +
The effort started in mid-1973 after a suggestion by M. L. Ivie, with its first [[PDP-11/45]] later that year. The intent was to provide a good environment for large programming projects, which were producing software for other, larger computers. Those machines were usually [[batch|batch processing]] systems, so extensive [[remote job entry]] sub-systems were developed to interact with them (including handling the output). The PWB machines themselves provided tools for the programmers of each project to manage their [[source code]], and collaborate with other individuals in the project.
  
 
By October, 1977 it ran on a group of seven PDP-11/45's and [[PDP-11/70]]'s in a computing center of the Business Information Systems Program (BISP) group at Bell. It rapidly spread inside Bell, so by that point there were about 10 other PWB sites (some with more than one system) at Bell Labs, and a half-dozen more inside Bell System; others outside (including [[MIT]]) also ran it.
 
By October, 1977 it ran on a group of seven PDP-11/45's and [[PDP-11/70]]'s in a computing center of the Business Information Systems Program (BISP) group at Bell. It rapidly spread inside Bell, so by that point there were about 10 other PWB sites (some with more than one system) at Bell Labs, and a half-dozen more inside Bell System; others outside (including [[MIT]]) also ran it.
  
Most V6 [[application]]s will run without [[object code]] modification on PWB.
+
==PWB 1.0==
 +
 
 +
The first major version of PWB, 'PWB 1.0', was, as indicated above, a V6 variant. The [[operating system]] itself had only minor modifications:
 +
 
 +
* the exec() [[system call]] was changed to temporarily hold its arguments in [[swapping|swap]] space, rather than doing so in [[disk]] [[buffer]]s; this allowed use of much larger argument lists to exec() (V6 had limited the number of [[process]]es allowed to be in an exec() call simultaneously, to prevent [[deadlock]]s)
 +
* improved support for '[[UNIX V6 internals#exec() and pure-text images|pure texts]]' (shared copies of read-only [[object code|executable binaries]])
 +
* a new system call, ustat() (one of 4 functions which shared the new pwbsys() system call), which allowed the amount of free space in a given [[file system]] to be discovered (to prevent un-noticed file truncation when a file system was full)
 +
* another new system call, udata (also in pwbsys(), along with calls to retrieve the system's name, and modify file times), which was used to hold the user's name and home [[directory]] in the process' '[[UNIX V6 internals#rsav, qsav and ssav|user segment]]'
 +
* the access(), tell(), and setpgrp() system calls
  
 
===User-visible compatability===
 
===User-visible compatability===
  
PWB supports all the standard V6 system calls.<!--, with the excepion of:  
+
PWB supports all the standard V6 system calls. Most V6 applications will run without [[object code]] modification on PWB 1.0. <!--, with the excepion of:  
  
 
===Modified commands===
 
===Modified commands===
  
 
A few other commands have minor changes, but they are not of any great consequence. (See Section 4 of the "The MINI-UNIX System" memorandum for details.) Some have been slightly modified to fit into the 32KB available for user processes.-->
 
A few other commands have minor changes, but they are not of any great consequence. (See Section 4 of the "The MINI-UNIX System" memorandum for details.) Some have been slightly modified to fit into the 32KB available for user processes.-->
 +
 +
==PWB 2.0==
 +
 +
The next major version of PWB, 'PWB 2.0', was a [[Unix Seventh Edition]] variant. This version is apparently no longer extant, and nothing is known of it.
  
 
==Further reading==
 
==Further reading==
Line 21: Line 35:
 
* [https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1 PWB1] - Complete source and binary
 
* [https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1 PWB1] - Complete source and binary
 
* [https://www.hamartun.priv.no/pwb.html PWB/UNIX 1.0 on the 11/23+]
 
* [https://www.hamartun.priv.no/pwb.html PWB/UNIX 1.0 on the 11/23+]
 +
 +
{{Nav Unix}}
  
 
[[Category: Unix OS's]]
 
[[Category: Unix OS's]]

Revision as of 18:56, 10 March 2021

PWB/UNIX (usually called just 'PWB; the acronym is from its formal name, the 'Programmer's Workbench')) was a variant of early UNIX (initially V6 Unix) inside Bell Labs, with minor changes to the kernel make it more suitable for use in a production environment (e.g. better response to resource shortages). Of more consequence were those found in the applications: both major new ones such as 'make' and the Source Code Control System, and also changes to the shell (both functionality improvement for use in shell programming, and also increased efficiency - the PWB machines had large user communities, and were heavily loaded; extensive use was made of shell programs).

The effort started in mid-1973 after a suggestion by M. L. Ivie, with its first PDP-11/45 later that year. The intent was to provide a good environment for large programming projects, which were producing software for other, larger computers. Those machines were usually batch processing systems, so extensive remote job entry sub-systems were developed to interact with them (including handling the output). The PWB machines themselves provided tools for the programmers of each project to manage their source code, and collaborate with other individuals in the project.

By October, 1977 it ran on a group of seven PDP-11/45's and PDP-11/70's in a computing center of the Business Information Systems Program (BISP) group at Bell. It rapidly spread inside Bell, so by that point there were about 10 other PWB sites (some with more than one system) at Bell Labs, and a half-dozen more inside Bell System; others outside (including MIT) also ran it.

PWB 1.0

The first major version of PWB, 'PWB 1.0', was, as indicated above, a V6 variant. The operating system itself had only minor modifications:

  • the exec() system call was changed to temporarily hold its arguments in swap space, rather than doing so in disk buffers; this allowed use of much larger argument lists to exec() (V6 had limited the number of processes allowed to be in an exec() call simultaneously, to prevent deadlocks)
  • improved support for 'pure texts' (shared copies of read-only executable binaries)
  • a new system call, ustat() (one of 4 functions which shared the new pwbsys() system call), which allowed the amount of free space in a given file system to be discovered (to prevent un-noticed file truncation when a file system was full)
  • another new system call, udata (also in pwbsys(), along with calls to retrieve the system's name, and modify file times), which was used to hold the user's name and home directory in the process' 'user segment'
  • the access(), tell(), and setpgrp() system calls

User-visible compatability

PWB supports all the standard V6 system calls. Most V6 applications will run without object code modification on PWB 1.0.

PWB 2.0

The next major version of PWB, 'PWB 2.0', was a Unix Seventh Edition variant. This version is apparently no longer extant, and nothing is known of it.

Further reading

  • T. A. Dolotta, R.C. Haight, J. R. Mashey, The Programmer's Workbench, Bell System Technical Journal, Vol. 57, No. 6, July-August 1978

External links