Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!gatech!hubcap!ncrcae!ncr-sd!crash!ford From: ford@crash.CTS.COM (Michael Ditto) Newsgroups: comp.sys.amiga,comp.sys.atari.st,comp.sys.m6809 Subject: Re: Re: True Multitasking, and shared code Message-ID: <1221@crash.CTS.COM> Date: Sat, 13-Jun-87 00:46:30 EDT Article-I.D.: crash.1221 Posted: Sat Jun 13 00:46:30 1987 Date-Received: Sat, 20-Jun-87 20:10:28 EDT References: <8706040024.AA10895@cogsci.berkeley.edu> <2194@husc6.UUCP> <1206@crash.CTS.COM> <3934@jade.BERKELEY.EDU> Reply-To: ford@crash.CTS.COM (Michael "Ford" Ditto) Organization: Crash TS, El Cajon, CA Lines: 26 Keywords: shared text code libraries UNIX Xref: mnetor comp.sys.amiga:5734 comp.sys.atari.st:4010 comp.sys.m6809:347 In article <3934@jade.BERKELEY.EDU> mwm@eris.BERKELEY.EDU (Mike (My watch has windows) Meyer) writes: >Last time I looked (last year at the Atlanta Usenix), the SysV >libraries required root privs to install (DCL_SYS_ ... oops, sorry; >had a VMS flashback). This was because the memory allocation for >shared memory for a shared library had to be fixed. You do not need to be root to create or install a shared library (unless you want to replace, for example, the "libc" shared library; this would be like wanting to replace /bin/sh 8-). You have to specify at link time the pathname of the shared portion of the library. If you want to be able to change this file, you must put it somewhere such that you can have write permission. I'm not sure what you mean about the memory allocation, but there is a limitation in that area -- a given shared library must have a fixed virtual address, and (obviously) no two shared libraries that are used by the SAME process can overlap. This usually means that when you are creating a new shared library you just look at what areas are available and pick one that you like, on the (safe) assumption that all libraries could possibly be used by one program. If you for some reason run out of vertual address space, you can really stop and figure out which libraries will never both be needed by the same program, and make them share addresses. This is, however, crufty and not easily automated (I hate to think about trying to build a Makefile that would do this to install a program). -=] Ford [=- ford@crash.CTS.COM ford%oz@prep.mit.ai.edu