Naja, vermutlich sollen die Module auch Funktionen vom Kernel aufrufen können und wahrscheinlich sollen auch mehrere Module im selben Adressraum liegen dürfen, insofern ist das schon nochmal was anderes als ein einfaches Programm.
Normal nimmt man da wohl Objektdateien her (also nichts fertig gelinktes) und reloziert die zur Laufzeit.