next up previous
Next: Machdb Up: What is Gutinteg Previous: How It Works

Packages

A package is a directory structure consisting of the files needed by a certain piece of software, along with the registry entries needed to utilize that software. The directory structure is built relative to C:$\backslash$ on the installed machine. For example; a package for a certain ethernet card would contain installation files in C:$\backslash$Windows$\backslash$Inf, drivers in C:$\backslash$Windows$\backslash$System, and a registry file in C:$\backslash$Tmp for folding into the system registry after installation.

There are two programs used to create a Windows package. RegView is a Registry editing and System restoring utility[1] much like Windows regedit, but it can also track changes in the filesystem and INI files. RegView is used to save the registry, INI file, and filesystem information, then once the software package is installed, RegView is run again to record the differences in the registry, INI files and filesystem made by the software install procedure. However, RegView outputs a difference file instead of a normal registry file. Because of this, a program called Wholewheat has been developed at the TCC. Wholewheat is a Python script that converts RegView output into a registry file that Windows regedit can import. This registry file is then put in a Tmp directory in the package so that Windows can import it using regedit when it first boots.

Packages are also made for the operating system and the architecture. Windows95 is itself a package, installed with the minimal amount of options and additional software so that it can be used on many different architectures. There is also a registry file created for each architecture (486, 586, 686, etc.). The registry for a particular architecture, once created, is maintained by hand with additions for new machines of the same class. For example, most of the computers at the TCC are Pentium class machines, but there are several different types of motherboard and processors in that class. Each new type of machine usually has a few differences that need to be folded into the architecture class registry. These usually consist of different address schemes for the PCI bus or different entries for serial ports. Since Windows only checks detected hardware against what is in the registry, it is not a problem to have multiple entries for similar devices. Windows will simply use the entry for the device it detected.


next up previous
Next: Machdb Up: What is Gutinteg Previous: How It Works
K. Scott Rowe
11/3/1999