Нет ничего особенного в том, чтобы просто перекомпилировать ядро. Вы вызываете какой-то скрипт, происходит волшебство, компилируете выходные данные по экрану, и * ding *, у вас есть ядро.
В частности, в случае ядра Linux, что-то вроде этого:
make menuconfig # shows a menu where you can configure thousands of kernel options
make # do the compiling
Это не очень интересно, но это место для начала. Поиграв с настройками ядра, и фактически загрузившись в ваше собственное, уникальное, самодельное ядро, вот где начинается настоящее веселье.
Если вы хотите узнать больше о самом процессе компиляции, изучите предоставленный Makefile. Знание синтаксиса GNU make будет полезно.
На другом конце спектра все делается вручную: вызывая gcc для каждого исходного файла, передавая нужные параметры компилятора. Вы бы просто повторили шаги, которые Makefile делает для вас. Это кошмар, и не очень образовательный.