Ich versuch's mal laienhaft:
Um eine Systemfunktion in Linux zu integrieren gibt es mehrere Möglichkeiten:
1. Man integriert sie direkt in den Kernel, sie wird einfach mit übersetzt und ist dann Bestandteil des Kerns. Sie steht immer zur Verfügung
2. Man realisiert sie als nachladbares Modul (ladbar mit modprobe & Co), und lädt sie bei Bedarf nach - hällt den Kernel schlank im Speicher.
3. Man implementiert sie als dynamische Bibliothek (ähnlich der dll's bei Windows)
4. Man realisiert sie als Userspace Programm, das mit niedrigeren Privilegien auskommt
Das Problem bei dem Ganzen ist aber, dass diese Funktion ja von anderen Programmen und Modulen addressiert werden muss, und der Linker
(Das Programm, das das Ganze zusammenbindet - entweder nach dem Kompilieren oder zur Laufzeit) braucht Informationen, wie diese
Funktion aufzurufen ist (Aufruf-Parameter, Rückgabewerte, Zugriff auf externe Variable und andere Funktionen). Hier kommen die Symbole
ins Spiel, es sind so zu sagen, die Beschreibungen der Schnittstellen ohne der Implementierung der Funktion selbst. Ohne diese Symbole
kann der Linker das System nicht fehlerfrei aus seinen Bestandteilen zusammenfügen.
Auch brauchen Installationsmanager (wie z.B. der apt bei Ubuntu) Informationen über die installierten Versionen und der Verträglichkeit
der zu installierenden Pakete, damit das System bei der Installation eines neuen Programmes nicht instabil wird oder z.B. ein für 64 Bit
kompiliertes Programm nicht auf einen 32 Bit OS gestartet wird etc.
Ach ja, iptables.
Eigentlich reden wir hier von den im Linux Kernel integrierten Netzwerkfunktionen und der netfilter firewall, die durch Module entweder im Kernel
oder nachladbar auf diese sehr tiefen Kommunikationsschichten zugreift. iptables ist einfach "nur" eine Kommandozeilen Tool, mit dem man
über eine Linux shell ebendiese netfilter Funktionen konfigurieren kann.
Da der Kernel von AVM kommt und die passenden Symbole darin fehlen, ist es wohl schwierig, die Module zu bauen und anzubinden....