When you're developing code, you almost always make use of a library — a collection of code modules that you or someone else has already developed (and hopefully debugged). Under Neutrino, we have three different ways of using libraries:
- Static linking
- You can combine your modules with the modules from the library to form a single executable that's entirely self-contained. We call this static linking. The word static implies that it's not going to change — all the required modules are already combined into one executable.
- Dynamic linking
- Rather than build a self-contained executable ahead of time, you can take your modules and link them in such a way that the Process Manager will link them to the library modules before your program runs. We call this dynamic linking. The word dynamic here means that the association between your program and the library modules that it uses is done at load time, not at link time (as was the case with the static version).
- Runtime loading
- There's a variation on the theme of dynamic linking called runtime loading. In this case, the program decides while it's actually running that it wishes to load a particular function from a library.