That wasn't the brightest question ever asked, and I doubt (judging by your lack of research to date) that you have the patience to grok source code for any length of time. That said, let me try.
The Hardware Platform Specific (PC, Sun, Apple etc.) bits are mainly in the libc and not the kernel at all. Then in the kernel the code specific to All Protocols, m/b & peripherals are in the various kernel modules, in neatly nested directories.
Journaling is in journaling filesystems - e.g ext3, ext4, but not ext2.
More informative might be the development mailing list archives and bugzillas where you learn WHY the code is the way it is.
Why not join the linux kernel mailing list where all these things are thrashed out. Plenty of topics, if you have the passion to inform yourself.Don't post unless you know what you're talking about.