Here’s a review of Curt Schimmel’s UNIX(TM) Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers that I originally wrote for Amazon. Unfortunately, my review got eaten. Whatever Amazon might claim, I’ve noticed that the probability of my reviews being “lost” is directly related to how positive or negative they are. You can guess what I think of that, but I’ll let you draw your own conclusions. In any case, I’ll continue resubmitting the same review once a week until it gets posted or I hear a good reason why it won’t be. Until then, here’s the HTML form.

In many ways this is a great book. The subject is one that is known to induce headaches, and the author covers it with truly admirable clarity. It’s worth buying the book for the chapter on cache consistency alone; like many others, I had to spend years piecing the same information together from varied sources, and it would be hard to overstate the value of having it all in one place.

So why only three stars? The problem is that the book is incomplete. Cache systems and virtual-memory systems interact in myriad ways, but you wouldn’t know that from reading this book. Similarly, storage and networking subsystems are often the bloodiest battlegrounds with respect to multiprocessor synchronization, and yet special considerations in those areas are not covered. Many old architectures (e.g. Apollo, ELXSI) are mentioned, and yet NUMA never even gets a nod. I know that covering all of these topics in any kind of depth would be impossible in a single book of any reasonable length, but their total omission is something I consider unacceptable.

This is a book I would recommend without hesitation to any number of people. Unfortunately, that recommendation would always have to be accompanied by recommendations for other books that pick up where this one inexplicably leaves off.