This tutorial covers some aspects about compiling your own Linux kernel for your ARM device. Most Linux distributions for the PC/x86 platform maintain a Linux kernel which supports a broad range of hardware devices, so it has become very unlikely to compile your own kernel from source. For the ARM platform the Linux kernel is provided by the board or system on chip (SoC) manufacturer. In some cases these kernels include a minimal set of features and device drivers only.
Beside of this you may want to include a specific feature set which is provided as a patch set to the kernel sources only, like enhanced security or real-time capabilities.
Some use cases impose special requirements, e.g. you prefer to switch off loadable kernel modules support in security relevant environments and build a monolithic kernel instead. Or you have to cope with restricted resources and need to build a very tiny kernel image.