Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!harpo!seismo!hao!hplabs!sri-unix!BRUCE@umdb From: BRUCE@umdb@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: Re: Shared libraries (IBM) Message-ID: <3596@sri-arpa.UUCP> Date: Fri, 29-Jul-83 09:10:00 EDT Article-I.D.: sri-arpa.3596 Posted: Fri Jul 29 09:10:00 1983 Date-Received: Mon, 1-Aug-83 08:41:47 EDT Lines: 29 From: Bruce CrabillThere was nothing intrinsic to IBM's 360 architecture that made dynamic linking possible. It was all done with software and should be do-able on almost any machine. Univac does however have hardware features that make shared libraries very efficient to use. They have a memory mapping concept that allows upto 4 address spaces ("banks") to be visible at any given time. They have an instruction that says to make a given bank visible and to jump to it. If the bank is not currently in memory at the time, the operating system is given an interrupt and it swaps it in. Entry points to these "common banks" (as Univac calls these pieces of shared code) are usually handled by having a jump vector at the beginning of the common bank. Thus, the entry points always have a fixed address and changes to the common bank will not require modifications to existing programs. Back to IBMs, VM/370 has a feature of shared code much like Univac's common banks except that it is implemented via software. In VM, a program must issue a DIAGNOSE (a operating system call) to cause a given piece shared code to be mapped into a user's address space. This requires much more work on the part of the operating system than Univac's approach since it always requires OS intervention rather than only when the shared code is not in memory, which, for commonly used routines, it probably is. IBM has a feature called DAS ("Dual Address Space") that appears to do this all in hardware the same as Univac. It is only available on the 308x as a standard feature and on the 3031, 3033 and 4341 as optional features. It appears to have been designed for MVS. Bruce Arpanet: BRUCE%UMDB.BITNET@BERKELEY Bitnet: BRUCE@UMDB