the kernel is c and assembler.( it looks like its more assembler than c but it is c i read linus thorvalds say once) kde desktop is c++ gnome is c fluxbox is c and along the way there are other scripting languages involved as well. many files in linux are just . txt , .conf sh files and scripts which can be bash perl python xml and so on.
my books as i find useful and some expensive but still worth it : begging linux programming 4 edition all of kerninghans books the c programming language the awk programming language the unix programming enviroment. classic shellscripting (o reilly) its good since a good deal of linux uses shellscripts so even that even it is not really a kernel hackers book you still need to use a good deal of shellscripting in this context ( at least i think so , i am thankfully not a kernel hacker :))