Для взаимодействия используются разные подходы. ABI когда на прямую используется функционал библиотек, API когда используется интерфейс на уроане програмного кода, CLI когда взаимодействие происходит через консоль, DBus как стандарт взаимодействия на уровне ос, сетевых протоколов уйма, а поверх них еще протоколы конечных приложений, иногда взаимодействие происходит вообще через файлы и т.д.
Вариантов уйма, все зависит от задачи.