PDP-11 Unix overlays: Difference between revisions
m fmt |
Add 'manual' overlays and "auto-overlay"s in 2.9BSD |
||
| Line 2: | Line 2: | ||
Early versions of [[UNIX]] did not support them, but support for them was added in [[2.9BSD]]: use-of/support-for overlays in [[process]]es, in user mode; and also for overlays in the [[kernel]] (using mechanisms different in detail in the two cases, although they both used the [[PDP-11 Memory Management]] [[hardware]]). This support was then taken up in [[UNIX V7M-11|V7M]]. | Early versions of [[UNIX]] did not support them, but support for them was added in [[2.9BSD]]: use-of/support-for overlays in [[process]]es, in user mode; and also for overlays in the [[kernel]] (using mechanisms different in detail in the two cases, although they both used the [[PDP-11 Memory Management]] [[hardware]]). This support was then taken up in [[UNIX V7M-11|V7M]]. | ||
(2.9BSD actually supported two different kinds of overlay mechanisms for processes; 'manual' overlays, which required the process to explicitly perform an 'exec()' [[system call]] to read in each overlay [each kept in a separate [[file]]], and "auto-overlay"s, where all the overlays are kept in the same file, and the 'current' overlay is automagically switched when a [[subroutine]] call is made from a subroutine in one overlay to a subroutine in another.) | |||
''Running Large Text Processes on Small Unix System'' (below) says: | ''Running Large Text Processes on Small Unix System'' (below) says: | ||
| Line 11: | Line 13: | ||
: "Covld is derived from Bill Joy's covld but several things (such as the format of thunks) have been changed .. The paper in ovpap.n describes the original Berkeley overlayed text scheme which was intended for use in user mode programs. I use overlays only for the kernel itself." | : "Covld is derived from Bill Joy's covld but several things (such as the format of thunks) have been changed .. The paper in ovpap.n describes the original Berkeley overlayed text scheme which was intended for use in user mode programs. I use overlays only for the kernel itself." | ||
This is somewhat incorrect: BSD2.9 | This is somewhat incorrect: first, BSD2.9 did contain overlays in both the kernel, and in processes; and second, V7M seems to have supported use of overlays in processes, also. | ||
==External links== | ==External links== | ||
| Line 24: | Line 26: | ||
* [https://bitsavers.org/pdf/dec/pdp11/ultrix-11/Unix_V7M_Release_2.1_Software_Description_Sep81.pdf Unix/v7m Release 2.1 - Software Description] - notes use of overlays in V7M | * [https://bitsavers.org/pdf/dec/pdp11/ultrix-11/Unix_V7M_Release_2.1_Software_Description_Sep81.pdf Unix/v7m Release 2.1 - Software Description] - notes use of overlays in V7M | ||
[[Category: | [[Category: UNIX]] | ||
Latest revision as of 13:06, 7 September 2026
The small address space of the PDP-11 architecture meant that larger computations, both operating systems and applications, needed to make use of overlays.
Early versions of UNIX did not support them, but support for them was added in 2.9BSD: use-of/support-for overlays in processes, in user mode; and also for overlays in the kernel (using mechanisms different in detail in the two cases, although they both used the PDP-11 Memory Management hardware). This support was then taken up in V7M.
(2.9BSD actually supported two different kinds of overlay mechanisms for processes; 'manual' overlays, which required the process to explicitly perform an 'exec()' system call to read in each overlay [each kept in a separate file], and "auto-overlay"s, where all the overlays are kept in the same file, and the 'current' overlay is automagically switched when a subroutine call is made from a subroutine in one overlay to a subroutine in another.)
Running Large Text Processes on Small Unix System (below) says:
- "We describe a set of simple modifications to the Unix system, which permit larger programs to be run than has previously been possible. In particular, the 'f77' and 'a68' compilers and version 2 of the 'ex' editor, which previously would not run on the non-separate I/D machines such as the 11/23, 11/34 and 11/40, may be run, without source code modification, using this scheme. This scheme will also allow processes larger than 65K bytes of instruction space to run on all 11/ cpu's with segmentation hardware."
V7M contains notes which more or less state that its use-of/support-for overlays in the kernel is based on the prior support for overlays in processes, done at Berkeley; and also that overlays were only used in the kernel:
- "Covld is derived from Bill Joy's covld but several things (such as the format of thunks) have been changed .. The paper in ovpap.n describes the original Berkeley overlayed text scheme which was intended for use in user mode programs. I use overlays only for the kernel itself."
This is somewhat incorrect: first, BSD2.9 did contain overlays in both the kernel, and in processes; and second, V7M seems to have supported use of overlays in processes, also.
External links
- Charles Haley, William Joy, William F. Jolitz, Running Large Text Processes on Small Unix Systems
- Barbara Bekins, Bill Jolitz, How to use the UNIX Automatic Text Overlays: A Tutorial
- Changes in the Kernel in 2.9BSD - includes discussion of the use of overlays in the 2.9BSD kernel
- koverlay.h - "Definitions relating to kernel text overlays."
- a.out (5) - this and the next entry describe the support for overlays in 2.9BSD
- ld (1)
- README - use of overlays in V7M
- Unix/v7m Release 2.1 - Software Description - notes use of overlays in V7M