The chief differences between inboard, outboard, and runtime-loadable modules lies in the following features:
Module description files are discussed in 11.1 , "Module Description Files". The other two features are discussed in the three sections following this brief summary.
inboard modules | Are compiled into Data Explorer. That is, the version of dxexec found (usually) in /usr/local/dx/bin_architecture is replaced with your own copy (i.e., a copy incorporating your module). |
outboard modules | Run as separate processes. Linking an outboard module is quick, since it does not involve creating an entire new version of dxexec (as the compilation of inboard modules does). Thus an outboard module is also easier to debug because it can be relinked more quickly. However, outboard modules are typically less efficient than other modules, especially if significant amounts of data must be transferred: data objects are transferred to and from an outboard module via sockets rather than as the pointers to shared memory that inboard and runtime-loadable modules use. |
runtime-loadable modules | Can be loaded when Data Explorer is started or at any time after, and they do not require a separate copy of dxexec, as inboard modules do. Thus these modules have the advantage of portability without the disadvantage of the data-transfer overhead associated with outboard modules. A single executable can contain multiple modules that can be used like a library. |