aber warum muss man dann Module, welche sich außerhalb des
Kernels befinden in die module.conf eintragen?
Weil der kernel irgendwie eine Zuordnung device -> module name hinkriegen muss. Der Kernel laedt dann diese Datei und ruft init_module() (bzw. eine mit dem module_init()-Makro festgelegte Funktion) daraus auf. Diese Funktion registriert dann das device. Ist der Treiber fest im kernel entfaellt die Zuordnung ueber den Dateinamen und das device wird sofort mit dem Laden des kernels registriert.
aber warum muss man dann Module, welche sich außerhalb des
Kernels befinden in die module.conf eintragen?
Das muss man gar nicht. Du kannst bei Bedarf auch die Module von Hand (per modprobe) einbinden. Viele Menschen empfinden es aber als angenehm, wenn das automatisch geschieht.