The Kernel can be found at Sunsite in the kernel directory. This usually isn't necessary though. To compile the kernel you need a C compiler. If you get a distribution one will come with it. This is split from gcc that incorporates newer features faster.
Features propagate back and forth between gcc and egcs.
I have found egcs to be quite stable for my uses. In fact, if you have a Pentium class processor then you will be interested in the Pentium Compiler Group who provided patched for gcc and egcs with special optimizations for the Pentium processor. This is the compiler that I use for almost all of my work. Be aware that using the gcc2.8.x or egcs for compiling 2.0.x kernels will NOT work in most cases. XFree was always free and always will be.