Why not start with
The C Programming Language Book. Great book, but don't expect to learn everything in one night. Start with a smaller project, and work your way up. As for Linux and FreeBSD, maybe you should stick with Windows, and get a open source C compiler, since I've seen your issues with Linux and FreeBSD. That's not something you need to deal with while trying to learn a language.
Seriously, start small. Probably smaller than a driver.