Also called a "setup program" or "installer," it is software that prepares an application (software package) to run in the computer. Unless the application is a single function utility program, it is made up of many individual files that are often stored in several levels of folders in the user's computer. In some cases, hundreds and even thousands of files are part of an application. To save space, the application files are compressed into one or more "archived" files. If the installation comes on a CD or DVD, there is room on the disc for multiple files. When coming from the Web, the install program creation system compresses the files and packages them into a single executable program so that there is only one file to download. Another approach on the Web for very large applications is to download a program that subsequently downloads multiple files, all of which happens automatically. Whether from the Web or a physical medium, users run the install program to decompress the files and save them in a specific folder hierarchy on their hard disks. In the Windows environment, the install program often makes entries into the Windows Registry, which is a database of configuration data (see Registry). Like a Self-Extracting Archive A single-file install program is similar to a self-extracting archive, which is a collection of compressed files packaged as an executable program. When a self-extracting archive is run, it decompresses the files and creates the folders; however, an install program does that and more. For example, it can check the computer's configuration and, based on the results, install different files or create folders in different locations. It can also offer the user customization options. In addition, it is customary for the install program to include an uninstall program in the application folder so that the entire application can be easily removed (see uninstall). Installation Packaging Systems The developer has several choices in installation methods. There are free and paid installation packaging systems that perform the compression and creation of the install program that the user runs. They offer the developer either a selection of configuration dialogs, or a scripting language that requires actions to be programmed using an "installer source code," or both methods may be available in the same package. In the Linux world, packaging systems differ greatly from the Mac and windows world (see package manager). Also for Hardware Install programs are also used to attach a new peripheral device to the computer. The install program adds the device's software driver to the operating system. If a controller card was plugged into the computer, the install program may set parameters in an updatable memory (flash memory, EEPROM, etc.) on the board itself. See silent install, unattended install, uninstall, how to install a program and BIOS setup.