Рекомендую определиться под какую конкретно систему собираетесь писать.
Кроме того, неплохо было бы понять какая тема Вас интересует, т.к. понятие "прогать именно в ядре" очень обширное и, в общем-то, ни о чем не говорит, с первого взгляда.
Системное программирование подразумевает хорошее знакомство с "железом": архитектура процессора, шины данных, архитектура памяти, режимы работы процессора, а также знание программных интерфейсов конкретных устройств, например если пишете драйвер для какого-то устройства, и т.д.
Надо понимать как работает само ядро ОС. К примеру Linux и Windows принципиально одинаковые в подходах, но разные в реализации.
Далее, если хотите сконцентрироваться именно на ядре операционной системы, то это вообще отдельная тема в рамках Computer Science. Тут помимо знания железа потребуется знание теории. Например виды многозадачности: вытесняющая, кооперативная и т.д., способы управления памятью, способы организации кэша наиболее часто используемых страниц памяти и т.д.
Важно понимать что в данном случае написание драйверов и написание ядра ОС здесь расходятся, т.к. драйверы это уже более прикладной уровень, хотя и осязаемой пользы от них больше.
Если интересна именно тема ядра, можете начать со статьи в википедии:
https://ru.wikipedia.org/wiki/%D0%AF%D0%B4%D1%80%D... и далее продолжить чтением Таненбаума:
https://media.pearsoncmg.com/bc/abp/cs-resources/p...
По теме ядра Windows хорошо помогут книги Джефри Рихтера. ReactOS Вам уже посоветовали. Также по сети бродят слитые исходники Windows 2K, Windows XP и т.д. Их можно тоже скачать, но это нелегально =)
Главный минус в том, что все это сразу в голову не запихнешь, в связи с этим рекомендую начать с постановки какой-то конкретной и осязаемой практической задачи.
Например можно попробовать начать с такой темы как написание руткита/трояна: написать руткит, который будет загружаться на уровне ядра, перехватывать данные с клавиатуры и мыши, и отправлять данные куда-то по сети.
Кому-то может показаться странной такая тема, но ирония в том что как раз по ней очень много хороших материалов и книг в сети. В процессе реализации Вы затронете несколько различных тем ядра - организация сети, организация работы периферийных устройств, а также саму архитектуру ядра.
Например:
https://www.amazon.com/Rootkits-Subverting-Windows...
Раньше был сайт wasm.ru, там было много статей. Сейчас от него остался вроде бы только
форум, но можно попробовать найти копию в сети.
Такая задача достаточно "живая" и интересная, к тому же позволит Вам лучше разобраться в архитектуре систем.
А далее, после ознакомления, идти "вглубь" по тем темам, которые интересуют больше всего, будь то драйверы или архитектура ОС.