tody@noao.edu (Doug Tody X217) (03/23/90)
From article <7360@goofy.Apple.COM>, by dwb@sticks.apple.com (David Berry): > > The A/UX Shared Library facility allows you to create dynamically > loaded, but statically linked, shared libraries. The libraries are bound > at a fixed address and a jump table is bound into the caller. At load time > the appropriate libraries are matched up with the binary and loaded via the > normal demand page scheme. Sounds like a good approach. Static linking avoids the need to have compilers that can generate position independent code, and avoids the inefficiencies associated with executing position independent code, performing dynamic linking, and modifying global data addresses in the text segment which prevents sharing the affecting pages. The only thing I am not clear on is what you do with initialized global data (bss). Is this shared if not modified? Are the pages initially shared and then copied on modify? Are the facilities for mapping the shared text and shared/copy-on-modify data pages internal to the exec system call, or are there new system calls to map files into memory? (This last would be very powerful if it has been make available as a general facility!). Regardless, thanks very much for providing a shared library facility. What you describe should work well and will benefit large applications enormously. -- Doug Tody, National Optical Astronomy Observatories, Tucson AZ, 602-325-9217 UUCP: {arizona,decvax,ncar}!noao!tody or uunet!noao.edu!tody Internet: tody@noao.edu SPAN/HEPNET: NOAO::TODY (NOAO=5355)