Для примера — сам линукс-кернел. Кода — очень много. И даже примерно понимать все основные принципы, как они реализованы внутри (и как происходит фильтрование в netfilter и как создается файл в fs) — задачка непростая. Но он делится на однообразные куски. Например, драйвера сетевых карт — сотни карт поддерживаются, все драйвера — очень похожи друг на друга. Прочитал (или даже написал) вдумчиво один драйвер и более-менее понял их всех, и получил общее представление о том, что там работает выше в ядре. Есть даже туториалы по написанию LKM и каких-то реальных и псевдо-драйверов — отличный способ начать. Аналогично с таржетами netfilter, с файловыми системами, queue discipline итд. Начинаете как раз с узкого куска, ищете туториалы (если они есть — не всегда), читаете исходники аналогичных модулей. В итоге сможете сделать один маленький кусок, и получите кое-какое смутное представление о тех частях ядра, которые сопряжены с ним.