Aug. 16, 2012
9:45 a.m.
To be more precise, all the content of the .init section will be freed at the end of the boot. (see vmlinux.lds.S) This is done by the function "free_initmem()" which is an architecture specific function defined in linux-*/arch/<arch>/mm/init.c. This function frees the memory between the symbols __init_begin and __init_end (which need to be page-aligned). During compilation, all symbols defined with __init macro are put in the .init section. As explained before, these a