There are certain advantages with using kernel modules as opposed to having the drivers compiled into the kernel. They can be unloaded (rmmod) and reloaded (modprobe, insmod) at any time, allowing you to pass different parameters to them rather than specify them once on bootup as kernel parameters or update them without rebooting. The fewer drivers you need, the fewer modules you need to load and the less memory Linux needs to operate. Also, to upgrade a modularized driver you just need to recompile the module, whereas if the driver is part of the kernel then you have to recompile the kernel. For hotpluggable buses like USB, the modules can be loaded on demand rather than all at once.
You can see what modules are already loaded into the kernel by running lsmod, which gets its information by reading the file /proc/modules
Many time it happens that there are lots of module gets loaded into memory and which are not required and hence its better if we disable loading of such module to enhance the performance of the system.
How to disable loading of unnecessary kernel modules
* Open the shell and type command lsmod to see what are the modules that are loaded.
* Check the value in section "used by", if the value is "0" it means that the this kernel module is not been used by any of the application/process and it's unnecessary occupying the space in the memory, the best way to know about such module to use google/bing search engine and if you feel that this module is not required you can simply unload it, for example if you don;t have the floppy drive then why to load floppy module :)
* Ok, so you have figure out what all module you want to blocking loading at the time of booting, go to console and open file /etc/modprobe.d/blacklist and add the kernel module that you want to disable loading, example shown below where I am disabling the loading of floppy & ipv6 kernel module.
This tip can also use it to disable ipv6 on linux unless you wanted to just add the line