I’ve just finished re-reading Shared Source CLI Essentials
This is a great book that covers the Rotor release of the .NET 1.1 framework. This release runs on both Linux and Windows and contains source and assembler for many parts of the CLR. The book can’t cover the material in detail because of the sheer size of the release but dives into interesting parts of the framework for a look around. I found the coverage of the PAL (the platform adaptation level) very interesting. This is the framework that implements a consistent view of a subset of windows and linux with which the CLR needs to interact; things like threading and exception handling, with coverage given to a portable implementation of structured exception handling.
I was going to blog about how clever the CLR is in optimising the layout of interface tables, only to find that the implementation of calling via an interface has now been optimised to use polymorphic inline caching in the 2.0 release of the CLR.