[coyotos-dev] DLL's
Christopher Nelson
nadiasvertex at gmail.com
Wed May 23 14:18:18 EDT 2007
On 5/23/07, Jonathan S. Shapiro <shap at eros-os.com> wrote:
>
> On Wed, 2007-05-23 at 11:51 -0400, Christopher Nelson wrote:
>
> > This opens up a lot more questions in my mind regarding the how of
> > many things (like DLLs, and executable object mapping)...
>
> It is, of course, possible to emulate these if the goal is to emulate
> Linux. I assume your question concerns the "native" behavior.
Yes, native behavior is what I'm interested in.
> So in the end, this all folds in to a general "object upgrade" problem
> that is one of the really nasty sleeping dragons in the entire
> object-based system story.
>
>
Hmm. My take on DLLs is that they fall into two niches.
(1) Remote API - the DLL lets you communicate with something, usually a
server or a device by way of a driver.
(2) algorithms, like the c++ standard library, that are pretty integral to
your code, and are also generally performance sensitive.
It seems like (1) abstracts pretty well into small objects, and you are
provided with an interface specification that allows you to talk to them.
Since you generally have context switches in these cases anyway, using IPC
isn't really a big deal, IMHO.
The second case is much more interesting. Mostly because I wondered how
much use you are planning to make of the fact that multiple Processes can
share the same address space.
For example, say I have a media player. It uses a particular algorithm
library that includes memory allocation. I also want to allow plugins. I
am concerned about performance, so my thought is that I should be able to
instantiate a plugin's code as a Process in my current address space. Then
I don't have to copy data to other address spaces, and I don't have to incur
context switches.
Granted, each plugin could use their own memory allocation routines, but my
media player has a highly optimized allocation routine specifically designed
for the access patterns I know playing media will evince.
I can see that this is probably not a big challenge in many ways, but I
wonder about the feasability of having common objects, like plugins, that
you import as whole executable objects into your address space. Is this a
paradigm that you plan on supporting in general? ie. Out of the Box?
-={C}=-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.coyotos.org/pipermail/coyotos-dev/attachments/20070523/f9709415/attachment.html
More information about the coyotos-dev
mailing list