Recently, discussions resumed on that subject at the forum and during the DSLR chat. About a year ago I did prepare some data for the tutorial but didn't finish ! Sorry about that.
The curves for a Canon 450D are attached ( DSLR_Linearity.png ) This is the response of the raw output of the RGGB CFA channels of the imager as delivered by DCRAW.EXE in pure raw mode ( options -D -4 ) Then the data have been analysed through my own software under Dyalog APL.
The illumination of the imager has been characterized with a very linear photometer, the light source is a white LED (but having a strong blue) The illumination adjustment has been made through the LED distance to a diffuser in front of the imager.
At ISO 100 the saturation is such of the imager. The curve of that CMOS is very linear up to near the saturation point.
At ISO 200 the gain of the amplifiers delivering the analog signal to the analog-to-digital-converter(s) (ADC) is increased by a factor 2 The result is that the signal is then limited by the range of the ADC and no more by the saturation of the imager. Only the half bottom part of the imager range is then used. The ADC itself is very linear up to the last level.
Same logic applies at further ISO.
We should also note the 450D has a "system offset" at 1024 ADUs.