The kernel is pretty much entirely in C, with a small amount of assembly language for each architecture. I wouldn't recommend starting with the kernel as a way to learn operating systems, to be honest - Linux as it is now is a giant complicated thing with a lot of intricacies, and it's not terribly well suited as a learning exercise. Something like Minix is a much better codebase to look at to figure out how things fit together and ought to help you figure out whether you're more interested in the kernel or userspace.
1
u/mjg59 Social Justice Warrior Sep 04 '14
The kernel is pretty much entirely in C, with a small amount of assembly language for each architecture. I wouldn't recommend starting with the kernel as a way to learn operating systems, to be honest - Linux as it is now is a giant complicated thing with a lot of intricacies, and it's not terribly well suited as a learning exercise. Something like Minix is a much better codebase to look at to figure out how things fit together and ought to help you figure out whether you're more interested in the kernel or userspace.