Sounds like you might be looking for the equivalent of a Systems Programming Course. That certainly might give you the "bare bones" understanding of what sort of going on between the High-Level Langue and the actual OS. There are a number so call "Unix Systems Programming" books free online, but I have no idea if any of them are any good, and I don't know any Hard Cover books to recommend either.
On the topics of Books though, The
K&R C book is legendary, but obviously it focuses on C and not C++. There is also the
Thinking In C++ book (free online) which always gets High Marks (the same author also has a
Thinking In Python Book (also Free)
). Finally, there is
cplusplus.com which has a pretty OK language reference. Take all this with a grain of salt though. I never actually read the K&R book or “Thinking in C++” (I did read "Thinking in Python" though), so I don't know if they are that useful.
Ok, now for the Side Debate:
Let me get this out there:
C++ is a BAD language.
There are very few remaining tasks, where, given no language limitations C++ would be the Right Choice to work in.
There are however a nearly endless real world situations where C++ is simply the best tool for the job, and that makes it a good tool. Not because it's the best, the most elegant, or even the most correct, but because it is the most useful.
I have seen important projects go down the drain because someone did not want to work in C++ even though the situation called for it. (I have also seen programmers demand to do a job in C++ even though the situation did not call for it and it would have been much easier to use a different language.)
The thing is, C++ is a complete, mature language with a correspondingly complete and mature Standard Library (which is also inconsistent, poorly documented at best, and generally a pain in the *** to use), and there is so much code out there that either uses C++ or is specifically designed to interface with C++ that discounting C++ just because it is a BAD language is also, BAD.
To quote a friend: "C++ isn't wrong, it's just... Quirky", you just have to learn to see it’s good sides, and know that it’s a very useful tool in your programming toolbelt. Hopefully in time there will be something to replace C and C++, but forgive me if I don’t take any bets on it being C# or D or any of these new languages. They are good languages, no argument, but that’s just not enough to replace C++.
"Well, if I am not drunk, I am mad, but I trust I can behave like a gentleman in either
condition."... G. K. Chesterton
“questions are a burden to others; answers a prison for oneself”