Originally Posted by LemensTS
I can not find a good guide/explanation on google...
Really!! This looks like a lot of information:
A header file is used in SW development to define variables and perform other overhead functions--to keep the code from becoming cluttered. "Linux headers" almost always means "kernel headers". These files are needed to compile various kinds of SW---so that the new SW will have the same interface and assumptions as the kernel.