THE ADVANCED COMPUTING SYSTEMS ASSOCIATION The following paper was originally published in the Proceedings of the 1999 USENIX Annual Technical Conference Monterey, California, USA, June 6–11, 1999 Linking Programs in a Single Address Space Luke Deller and Gernot Heiser University of New South Wales © 1999 by The USENIX Association All Rights Reserved Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email:
[email protected] WWW: http://www.usenix.org Linking Programs in a Single Address Space Luke Deller, Gernot Heiser School of Computer Science & Engineering University of New South Wales Sydney 2052, Australia g fluked,gernot @cse.unsw.edu.au, http://www.cse.unsw.edu.au/˜disy Abstract As persistent data, i.e., data whose lifetime is indepen- dent of that of the creating process, is always mapped into the virtual address space (at an immutable address), Linking and loading are the final steps in preparing a SASOS do not need a file system. For compatibility with program for execution. This paper assesses issues con- other systems, a file system interface can be provided, cerning dynamic and static linking in traditional as well of course, but it represents nothing more than a different as single-address-space operating systems (SASOS). way to access virtual memory. All disk I/O is done by Related loading issues are also addressed.