chs addresses were exposed, instead of simple linear addresses (going from 0 to the total block count on disk - 1), because early hard drives didn't come with an embedded disk controller, that would hide the physical layout. a separate "generic" controller card was used, so that the operating system had to know the exact physical "geometry" of the "specific" drive attached to the controller, to correctly address data blocks.