The Registry first appeared in Windows 3.1, in a file called Reg.dat, and was used mainly to store OLE object information. At that time, several files—namely, Win.ini, System.ini, and other INI files that were application-specific—carried out the bulk of what is handled by today's Registry.
System.ini maintained information and settings for the hardware (disk drives, memory, mice, and so on). Win.ini controlled the desktop and the applications that were installed. Changes to device drivers, fonts, system settings, and user preferences would all be recorded in the INI files, and new applications added their information to the INI files, too.
This all worked pretty well until the number of applications grew and their complexity increased because each installed application added a raft of information to the Registry to the point that it was obvious its 64KB file size limit would be reached. Additionally, everyone made additions to the INI files, but no one ever deleted anything, even if an application was upgraded or uninstalled. So System.ini and Win.ini grew and grew, and as they grew, performance degraded.
To counter this problem, software vendors started supplying INI files of their own, and instead of the Windows .INI files containing application-specific information and settings, they contained only pointers to the custom INI files. This seemed like a good idea at the time; however, good ideas sometimes create problems of their own. In this case, it ...