While those are necessary, I'm of the opinion that you don't really learn unless you do. For systems programming, there are many good projects out there for you to poke at. I'd suggest getting a hold of the source code for Linux, FreeBSD, and OpenBSD. Learn how to build each of them, and install/run what you built to a VM. Then making a simple device driver for a serial or USB device would be a good introductory project. Even better, get an Arduino or something similar, and make/program both ends. Maybe a little button/light box that blinks if the CPU thermal throttles and can instruct the computer to launch an application when buttons are pressed for example.
At the end of the day, you're just going to have to find something you're interested in actually doing/finishing so you can stay motivated enough to push your self up the learning curve, just like learning anything else really. The fact that you'll be reading/writing/learning C is nearly irrelevant.