I wanted to get into systems programming for linux and wanted to know how to approach that and where to begin. I come from a web development background (Python, PHP) but I also know some C and C++.
Essentially, I would like to know:
- Which language(s) to learn and pursue (I think mainly C and C++)?
- How/Where to learn those languages specific to Systems Programming? Books, websites, blogs, tutorials etc.
- Any other good places where I can start this from basics?
- Any good libraries to begin with?
- What environment setup (or approx.) do I need? Assuming linux has to be there but I have a linux box which I rarely log into using GUI (always use SSH). Is GUI a lot more helpful or VI editor is enough? (Please let me know if this part of the question should go to serverfault.com)
PS: Just to clarify, by systems programming I mean things like writing device drivers, System tools, write native applications which are not present on Linux platform but are on others, play with linux kernel etc.