Shared libraries are not necessary

Masataka Ohta mohta at necom830.cc.titech.ac.jp
Wed May 22 22:04:30 AEST 1991


In article <1991May21.055103.25680 at Think.COM> barmar at think.com writes:

>If the structure to be filled in were an in-out parameter, as we generally
>did in Multics, then the version number could be put there.  For library
>routines that allocate their output structure we would pass the expected
>version as a separate parameter.  The Multics calling sequence also
>includes the number of arguments, and often includes the argument types
>(whenever the function is "varargs" or any of the arguments has variable
>length), so a function could look at the number and types of arguments and
>infer the version of the caller.

That's overly complex. Such interface will increase code size considerably.

If you think you need shared libraries because your code size is important,
well, ...

>No, it's not easy to retrofit these calling conventions onto an established
>system. These problems are, in my opinion, a legacy of Unix's simplistic
>original design.

You reversed order in time.

Because it's not easy to retrofit simple calling conventions onto an
established system: Multics, UNIX was born (there are many other reasons
of course).

BTW, I don't mind what multics did. Many OS has done many wrong things or
right things in a wrong manner.

This is comp.unix.internals and what I have been saying is don't put
shared libraries into Unix.

						Masataka Ohta



More information about the Comp.unix.internals mailing list