printf(3) as a system call - Uck!

utzoo!decvax!yale-com!leichter utzoo!decvax!yale-com!leichter
Thu Apr 7 16:20:58 AEST 1983

Stephen Hemminger proposes to make library routines "available as common
shareable text pages ... [not] inviting the do everything in the kernal
[sic] method so popular with DEC operating systems."

Hate to disabuse you of your prejudices, but most DEC operating systems do
exactly this.  In RSTS, the shared text goes under the names of RunTime System
or Shared Library; on RSX it is one of several kinds of shared library; and
in VMS, where this was built in from the start, essentially all the library
routines get used this way through "global sections".  In this area, at least,
it's Unix that ought to get on the ball and catch up with what everyone else
has known is "the right approach" for years...
							-- Jerry
							leichter at yale
PS  If you are thinking about designing such a system, one nice thing to
design in is the use of a transfer vector to get to the library routines.
If you do this, you can actually run programs that were linked against an
old library using a new library with no changes at all.  VMS does this -
they've actually gotten more sophisticated about it over the years; it used
to be that you would have to re-link when the library grew enough to force
some vectors to move.  This is no longer a problem, because the program start-
up code does some last-minute "relocation" of vector addresses.  The older
PDP-11 OS's didn't, in general, have this, requiring you to re-link with
each new version of a library.  P/OS, on the other hand, is going to such a
scheme...					-- J

More information about the Comp.lang.c mailing list