Book recommendation: basic, broad and solid overview for advanced learners I did a PhD in software engineering, now working in financial IT. I had a proper education in algorithms, data structures, operating systems, networks, software etc. and worked as a tutor for Java, OOP, UML during my PhD.

Now a senior board member asks me for a good introduction into all that "computer and architecture stuff".

I tried hard but don't find a suitable book that has it all on a decent level.

Topics I'd like to see are:


a bit of computing history: from Babbage via Turing, OS/360 ("mythical man month"), PCs to embedded systems like Smartphones, TVs and Raspberry Pis
what is a operating system, what is a file system, what is a database, what is an "application server" (abstract, e.g. including systems like CICS).
what is computation (imperative vs functional)
what is data (relational databases, data structures like trees, lists)
why is the notion of "state" important (finite state machines)
communication and networks: protocols, distributed systems
architecture: layers (ISO/OSI), separation of concerns, pipes and filters


All of this in a proper introductory textbook, but one that is not intended for students but people with a degree in another science.

Actually I am thinking of something history oriented, that also explains the "big" ideas (that are still present in current enterprise setting).

Perhaps someone here can recommend the one and only book, that has it all in a compressed form.

Alternatively a small list that addresses specific topics for non-experts are also interesting.
It is a bit hard to capture all of that. Unfortunately*, the best book is probably The Structure and Interpretation of Computer Programs but that assumes the person is willing to do some programming. 

But one can learn a lot on Paul Graham's Essay Page, just by choosing interesting titles to explore. 



*Unfortunately = work involved, not just browsing.