on modules and user-space programs
i have a few questions about how things work on linux. all ideas welcome.
first is the way the kernel works with modules. i have my kernel image sitting in /boot. i have my modules in the right places after compiling and installing them. i have the kernel source tree sitting someplace in my home dir. now, when we build the new kernel, all the object files are created, and im guessing that those are what are being used by the kernel to load the modules. i wouldnt think that the source tree is of any use once the kernel modules have been built. but ... when i go make a modification in one of the kernel files (i made changes to the sis900.c file under /net), i see the changes immediately when i reboot the kernel. i didnt compile or build or do anything with the sis900.c file to affect the sis900. o file. how is this possible that it does this? is it actually, compiling, building and then loading the obj file everytime its brought up?
then, i made some changes to an user-space application (iwconfig, in my case), and added a simple 'printf()' stmt in it. again, i didnt compile it or do anything to affect the .o files, but it somehow reflects the changes. but ... in this case, i get a nice kernel panic.
how is it that changes i make in the source are reflected without me doing any compile/linking of these files? and why is it that one works fine with a change in a loop count, while another gives a kernel panic with a printf();?