kenworld
UNIX Systems for Modern Architectures


UNIX Systems for Modern Architectures
By: Curt Schimmel
Published: 1994
Reviewed: 02/20/2022



I acquired UNIX Systems for Modern Architectures about 10 years ago when I was doing my first embedded Linux development.  I think it came in the door with GNU/Linux Application Programming (excellent) and Unix Networking Programming (OK).  Bought the collection to have resources on hand.  (Random replies on stackoverflow.com don’t cut it for serious understanding).  Used it as a reference a few times, but the book was generally under-utilized.

 

Then a coworker started asking me questions about how mutex locks [“Critical Areas” in windows-speak] are actually implemented.  I didn’t have a good answer so I started reading this book in my spare time.  Eventually locks were covered.  Basically you have specialized instructions, called from common macros (at least with gcc) that block other accesses until they are complete and prevent other threads/cores from reading the same location with different results.  The book focusses on caches, spin locks [a big thing in kernel development], and blocking locks.

 

Being a 30 year old book, it spent a lot of time covering single-core computers, or multi-core master/slave systems which just aren’t a thing these days.  But it addresses multiple-core systems with independent caches that we still use today.  So on some topics I would read the first part to get a handle on the underlying issues, skim the middle, and read the last for relevance.