Visual y C# si que son de MS, pero C no.
Para entender el kernel, necesitas 2 cosas
* Saber programar
* Bastante tiempo para "estudiartelo"
Te aconejo que antes de tocar el kernel, te centres en entender bien como funciona linux, cosa que si que puedes ir haciendo.
Para ello busca informacion sobre el sistema de ficheros, permisos, acostumbrate a la consola, mirate un poco de bash, que te servirá para muchas cosas...
Cuando controles eso, y sepas como funciona "lo de encima", habra pasado tiempo suficiente como para que sepas algo de C o C++ con lo que podras empezar a mirar el kernel.
Claro esta que estos son mis consejos, igual otro te puede aconsejar de otra manera