design choices for a loadable module interface
Zhanna Tsitkova
tsitkova at MIT.EDU
Wed May 26 11:17:09 EDT 2010
dynamic plugins - two cases:
1. plugin itself is built-in, but loads a shared library. Example
here would be say, "audit plugin" that dynamically loads some
"libaudit_bogus.so". For this case I suggested to have "separate
symbol for each interface function". (yesterday I meant this case
when I was talking about the dynamic libs). The benefit of this kind
of plugin is the pain-free shared library. i.e. libaudit_bogus.so,
updates.
2. plugin itself is a dynamic lib: This one should be very similar to
what we have for static plugins in the new plugin architecture. Plugin
impl would be
a shared lib. Here one has two options. One is to build just a very
small library say, "plugin_XXX.so" that knows everything about
underlying
functionality of, say, "libaudit_bogus.so". Alternatively, we can
statically link plugin_XXX with libaudit_bogus.so and treat it as a
new
dynamically loadable plugin. Obviously, the only interface this plugin
would have is plugin_XXX_create. Trick here is to pass the ref info
to plugin_manager.
Thanks,
Zhanna
On May 26, 2010, at 10:45 AM, Tom Yu wrote:
> Nicolas Williams <Nicolas.Williams at oracle.com> writes:
>
>> On Wed, May 26, 2010 at 10:00:24AM -0400, Greg Hudson wrote:
>
>>> If by the above statement you mean "dynamically load every plugin
>>> implementation, with no builtins," that's a possibility, I
>>> suppose. It
>>
>> I didn't. What's a builtin?
>
> By built-in, I mean that the plugin module is part of the library
> shared object or program executable that calls the module. I'll
> update the wiki page.
> _______________________________________________
> krbdev mailing list krbdev at mit.edu
> https://mailman.mit.edu/mailman/listinfo/krbdev
Zhanna Tsitkova
tsitkova at mit.edu
More information about the krbdev
mailing list