We have a system that requires software to program a fairly complex frequency synthesizer IC. Given the desired frequency, software executes an algorithm to calculate the values needed to be programmed into the physical device. We would like to have this algorithm contained in an independent file so that any change to the algorithm only requires replacing this file without requiring the application to be recompiled. I understand that the input/output interface must not change. I believe this is what DLLs do in Windows. What would the equivalent way to do this in Linux?