Normally I stay out of the technical discussions, but this one hits close to
home, so I will throw in my two cents.
I advocate ELF shared libraries. I see that the Intel Linux seems to be going
in that direction, and from a compiler and debugger viewpoint it would be
easier for the people who develop such things to have ONE shared library
and object code format for all Linux systems.
As to the binary compatibility with Digital UNIX I have several thoughts:
1) I have been uncomfortable for some time about having staticly linked
Digital UNIX binaries running on Linux. From a strictly legal standpoint
this means that you have royalty bearing code running on an unlicensed system.
This has not been an issue for the systems inside Digital, nor for some of
the ones we have sent out to some developers, because they were licensed to
run Digital UNIX. As time goes on, however, there will be more and more
system boards with *no* license associated with them, and the legal
implications are important. Understand that as a Digital Marketing Manager
I do not care one whit if Linux Alpha "usurps" Digital UNIX code. But the
people *we* license *our* code from may indeed care.
2) Statically-linked binaries work because the number of system calls are
few, and easily duplicated. I did a study a short time ago, and between
BSD 4.3 and System V.3, there were 134 system calls, of which 133 were exactly
the same. However, there were 1024 library routines (without X11, NFS, etc.)
and of that only 743 were "the same" (this study was only the syntax and
symantics of the call, not the side-effects). Ergo Linux systems trying
to use dynamically-linked Digital UNIX libraries would be doomed to failure,
unless a LOT more work went in.
3) It would be easier (legally) to create a "Linux Environment" on top of
Digital UNIX, by taking the Linux shared libraries and the Linux loader over
to Digital UNIX than it would to do vice-versa. This has been a "side plan"
of mine all along. Of course for the "Linux Environment" we would ship all the
sources, copyrights, etc. And we would put the entire workings of the
environment out on the net. But as a "proprietary" (I hate that word)
operating system, we can add features like this which treat a particular
market, and allow the ISVs to build their applications for both Linux Alpha
and Digital UNIX on a Linux Alpha box, assuming the facilities they need are
in Linux Alpha. Digital UNIX *does* have some facilities that Linux may
not have for a while (such as SMP, soft realtime) and some things it may
never have (B1 security) due to lack of interest in the development community.
These features have APIs that will probably never appear on Linux.
If we create this "Linux Environment" on Digital UNIX, we would simply change
the loader to accept the ELF shared libraries as well as our current
ECOFF format.
I feel that the "Linux Environment" would give the largest installed base of
Alpha Linux/UNIX systems for the ISVs to target, which would help both
operating systems.
Of course all of this is from a "marketing type" who has not written a real
device driver since the days of the PDP-8, but I welcome comments.
And of course it is *your* operating system, and I am just an onlooker (and
user).
md
===============================================================================
Jon "maddog" Hall Senior Leader
Mailstop ZK03-2/U15 UNIX Software Group
Digital Equipment Corporation Internet: maddog@zk3.dec.com
110 Spit Brook Rd. Voice: 603.881.1341
Nashua, N.H. 03062-2698 Fax: 603.881.6059