There are several books I would recommend:
1) Database Design and Implementation by Edward Sciore:
http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP00071...
This book teaches RDBMS from conceptual perspective up to implementing your own RDBMS (using Java albeit).
2) OS Design XINU Approach (look for the PC edition)
http://www.amazon.com/Operating-System-Design-XINU-Approach/...
3) Bunch of UNIX/Linux books
- The Design of the UNIX Operating System (M. Bach)
- Design and Implementation of BSD 4.4/FreeBSD 5.2
Unfortunately I don't think jumping to the most recent Linux kernel books would be feasible.
4) Look for any books that teaches both concepts and provide simple implementation of the said concepts.
For example:
http://www.amazon.com/Definitive-Guide-SQLite-Experts-Source...
Find a book that teaches the concept of Graphics Pipeline and try to implement it yourself: http://www.viznet.ac.uk/files/d39pipeline.gif
5) Check out the Java SDK (the actual implementation, not how to use the library) and HotSpot VM guides
- Concurrent, NIO/IO, Networking, Threading
- Garbage Collection, optimization, Class Loading, etc
I think the more you learn, exercise, and understand many system designs out there could help you to build your own "intuition" in the future.
Once you've done that, you'll understand a ton about how to think and how design decisions will affect you later on.
More specific advice depends on what your background is and what you're doing now. (For example, are you a student? A CS student? How much of a CS background to you have? Are you working full-time? If so, does your job involve programming? Do you have time to hack on the side?)
Although we have two courses on System's design and System's engineering, teachers here are not very good, and I feel I didn't learn almost anything from them. That's why I want to read more about it and really improve my skills there.
At my daily job I work on several short-time projects, using MS technologies. Sometimes I code .NET, do some basic design for an application, but nothing really big. I don't stop and think about scalability, performance, etc. Those things usually come unannounced later when the application starts to fail in some environments. So, you can see, I'd benefit from learning more about System's design.