registry TODO

James Hawkins truiken at
Tue Mar 22 00:06:31 CST 2005


Recently you removed the loading of the Windows registry on startup
and stated that

> Nobody's working on it, so it won't be supported until someone cares
> enough to do it. I encouraged a few people to start working on it but
> nobody did, so taking out the existing support is a way to provide
> more encouragement. If that's not enough then the feature simply won't
> be supported anymore.

What needs to be done concerning this TODO?  Looking through Bugzilla
I found bug #422:

"Currently Wine loads the complete registry into memory at startup. This is
relatively ok when the registry is small such as in fake_windows configurations,
but when importing the registry fro a Windows partition this can result in the
wineserver allocating more than 30MB. This slows down startup times very
significantly and wastes memory even if most of it is going to be swapped out.

One of the reasons why Wine puts all the registry into memory on startup is that
the current registry file format does not lend itself well to random accesses
(especially writes). But there is no fundamental reason why Wine needs to read
all the registry on startup. Hence this proposal to:
 * change the registry file format so that Wine can easily make random accesses.
A 'database' format may be appropriate here, maybe based on the Berkeley
database Library (libdb2/libdb3) or the GNU dbm library (libgbm1, but check
license issues).
 * put in place a mechanism to update these files from the Windows registry
files when appropriate (it seems impractical to access the Windows files
 * modify the registry routines to retrieve only the data required by the
application and cache it in memory"

Is this a valid description of what needs to be done?

James Hawkins

More information about the wine-devel mailing list