I have never understood what system programming meant. The usual definition given is "...doing something close to the Os or extending Os features...".
Does using Windows API directly rather than some libraries to say do file i/o make it system programming? Was writing Android OS system programming? If I write something that would expose linux kernel through a console like app on Android am I doing system programming? If I am writing software to control a washing machine am I writing system programming?
I am a beginner in programming and this is confusing me to no end. Please explain contrasting it with "application programming".