You may wonder why you have two DLL's for each modular component - the answer is simple. All the DLL's ending with 32 (i.e. KERNEL32.DLL) are the newer 32-bit Windows DLL's, and the ones not ending in 32 (i.e. KERNEL.DLL) are the older Windows 3.11 DLL's that make up the 16-bit virtual sand-box in all the 32-bit Windows environments.

The modular approach is virtually unchanged since Windows 3.0 (or 3.1, correct me if I'm wrong).