Wie ein normaler Linker verbindet insmod die undefinierten Symbole des Moduls mit den exportierten Symbolen des laufenden Kernels (ksyms). Wenn alle Referenzen aufgelöst werden konnten, wird die Initialisierungsfunktion des Moduls ausgeführt. Danach sind die Funktionen des Moduls wie die fest in den Kernel gelinkten Routinen ausführbar.
Weil durch die fortschreitende Kernelentwicklung auch die exportierten Kernelsymbole und damit die Modulschnittstelle verändert werden können, muß sichergestellt werden, daß Modul und Kernel exakt zueinander passen. Dazu ist in allen Modulen die Versionsnummer des zur Übersetzungszeit des Moduls installierten Kernels verzeichtnet. insmod lädt grundsätzlich nur solche Module, deren interne Versionsnummer mit der des laufenden Kernels übereinstimmt.
Wenn der Kernel und das Modul mit Unterstützung für Modulversionen übersetzt wurdeni (CONFIG_MODVERSIONS), kann insmod anhand der in den Symbolnamen codierten Prüfsummen sicherstellen, daß das Modul zum laufenden Kernel paßt. In diesem Fall werden auch Module zu Kernelversionen hinzugelinkt, für die sie nicht ursprünglich erzeugt wurden.
Zusätzlich zu den exportierten Kernelsymbolen kann insmod ein Modul auch mit exportierten Symbolen anderer Module verbinden. Damit ist die Benutzung eines bereits geladenen Moduls durch weitere Module möglich (Modulstack).
Der Export von Symbolen aus einem Modul kann unterdrückt werden um den Namensraum vor unbeabsichtigten Überschneidungen zu schützen.