Code:
printk("hello world\n");
Printk as printf is buffered. It waits for end of line to really flush and display the string so always finish printk with \n.
And your module doesn't provide any function to the outside world so why would it be used?
in general another module or the kernel requiring your module will call insmod, or when looking at /lib/modules/`uname -r`/modules.dep will automatically load the modules on which it depends.
so in general after creating and putting a module in /lib/modules/..
oyu have to run depmod -a so that dependencies are recreated.
These two actions are made by make modules_install in the kernel tree
I highly suggest that you read this online book:
http://lwn.net/Kernel/LDD3/
You will understand a lot!
http://www.xml.com/ldd/chapter/book/ for older kernels