This page is going to be about LinuxKernel development.
There are useful tools for kernel development available such as Ostra and Sparse.
Today most KernelDevelopment is done with Git. See KernelDevelopmentWithGit for more details.
A couple of useful articles for kernel development from IBM:
http://www-128.ibm.com/developerworks/linux/edu/l-dw-linux-kernelhack1-i.html
http://www-128.ibm.com/developerworks/linux/edu/l-dw-linux-kernelhack2-i.html
A useful cross reference of the LinuxKernel source code can be found at http://lxr.linux.no/
In theory you can use DistCC to do KernelDevelopment although it can be problematic.
Here is a script that I use to copy my new kernel to other remote machines:
#! /bin/bash SRC=$HOME/linuxsrc/dccpwork VER=2.6.14-rc1 rm $HOME/tmp/lib/modules/$VER/build rm $HOME/tmp/lib/modules/$VER/source scp $SRC/System.map root@$1:/boot/System.map-$VER scp $SRC/arch/i386/boot/bzImage root@$1:/boot/vmlinuz-$VER scp -r $HOME/tmp/lib root@$1:/