🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #13420

Re: String Handling and run-time libraries

#13420
From: bjorn
Date: Mon, 06 Apr 1987 00:00
50 lines
2929 bytes
In article <1417@castor.usc.edu>, blarson@castor.usc.edu (Bob Larson) writes:
>In article <287@pembina.alberta.UUCP> bjorn@alberta.UUCP (Bjorn R. Bjornsson) writes:
>>Assuming a
>>vectored entry point interface to the library, you can move your
>This isn't the only, or nessisarily best, way to implement shared
>libraries.  Primos implements shared libraries via faulted links.

Note that I did not specify where the entry vector was to be located.
It can be in the library or in your process.  Having the vector in
your process rather than the library may give you little bit more
flexibility at the cost of space, perhaps a significant amount
(depending on the library size and or the number of routines you need).

>(call by name first time a routine is called, which replaces the
>faulting pointer with one the actual routine.)

I was aware of this method and you can use it in conjunction with
the entry point vector scheme.  You initialize the vector with
distinct values that are guaranteed to cause an access violation.

>  I think this is yet
>another idea they borrowed from Multics.  (The hardware overhead is a
>fault bit on pointers, but you could implement it on a vax by
>reserving half of your address space.

As I alluded to above all that is needed is that such pointers
are guaranteed to fault and that they be distinguishable from each
other.  There is no requirement to reserve half the address space.

I'm getting a little rusty in some of the small details of VMS but
if memory still serves me the VMS run time library lives in system
space (this makes a lot of sense by the way).

> (Hmmm... does a user process
>ever need to reference the kernal area of memory?))

Certainly there have been a lot of lot of service programs written
by non-DEC folks that execute partially in kernel mode to obtain
whatever info they need from VMS.  This is not for the faint of
heart though and you do need CMKRNL (change mode to kernel) privileges.
Now whether you call such programs "user programs" or not is entirely
up to you.

>  Of course, VMS
>uses entry vectors, and we all know VMS does everything right. :-)

It costs enough so it had better do everything right B-).

			Bjorn R. Bjornsson
			alberta!bjorn
Technical Details
Message-ID: <294@pembina.alberta.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!rutgers!mit-eddie!uw-beaver!ubc-vision!alberta!bjorn
References: <15292@amdcad.UUCP> <978@ames.UUCP> <15694@sun.uucp> <6042@mimsy.UUCP> <1417@castor.usc.edu>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!rutgers!mit-eddie!uw-beaver!ubc-vision!alberta!bjorn
From: bjorn@alberta.UUCP
Newsgroups: comp.arch,comp.lang.c
Subject: Re: String Handling and run-time libraries
Message-ID: <294@pembina.alberta.UUCP>
Date: Sun, 5-Apr-87 19:00:17 EST
Article-I.D.: pembina.294
Posted: Sun Apr  5 19:00:17 1987
Date-Received: Thu, 9-Apr-87 03:08:33 EST
References: <15292@amdcad.UUCP> <978@ames.UUCP> <15694@sun.uucp> <6042@mimsy.UUCP> <1417@castor.usc.edu>
Organization: U. of Alberta, Edmonton, AB
Lines: 50
Summary: Still on shared resident libraries