Configuration File

Configuration files are used to configure the initial settings for some computer programs. They are used for user applications, server processes and operating system settings. The files are often written in ASCII (rarely UTF-8) and line-oriented, with lines terminated by a newline or carriage return/line feed pair, depending on the operating system. They may be considered a simple database. Some files are created and modified using an ASCII editor. Others are created and modified as a side-effect of changing settings in a GUI program. The formats of configuration files are often poorly documented. Some applications provide tools to create, modify, and verify the syntax of their configuration files. For server processes and operating system settings, the only documentation may be the source code. Some configuration files are partially described by man or help pages. Some computer programs only read the configuration files at startup. Others periodically check the configuration files for changes. Some can be told to re-read the configuration files and apply the changes to the current process. There are no standards or strong conventions.

UNIX

Among the Unix variants, there are hundreds of configuration file formats. Each application or service may have a unique format. Historically, Unix operating system settings were often modified only by editing configuration files. Since the formats were poorly documented and there were no syntax checking tools for the configuration files, it was easy to misconfigure the operating system or service. Some configuration files have sample entries that can be used as templates. However, the examples may be out-of-date or incorrect. Some formats allow entries to be disabled by prepending a special comment character. Unix user applications often create a file or directory in the home directory of the user upon startup. To hide the file or directory from casual listing of the contents of the home directory, the name of the file or directory is prepended with a period. Server processes often use configuration files stored in /etc, but they may also use their installation directory, the root directory, or a system-administrator-defined location.

Microsoft Windows

Within the Microsoft Windows family of operating systems and their attendant applications, the situation is similar. Windows 3.0 had an API for INI files (from "initialization"), but that format is deprecated and modern Windows programs forgo configuration files to use only the Windows Registry to store information. IBM's AIX uses an Object Data Manager (ODM) database to store some system settings. IBM's OS/2 uses a binary format also named INI but it is different from the Windows versions. Recently, XML and YAML have become popular as configuration file formats. They have the advantages of having well-defined syntaxes, and tools to validate and verify the syntax of the files that are created in those formats.

Implementation Shortcomings

Some of the common problems with configuration file implementations:
  • No defined behavior if the configuration file is missing, truncated, unreadable, unwritable, or has inappropriate ownership
  • No defined minimum or maximum file size
  • No defined minimum or maximum entry size
  • No revision control
  • No defined precedence, i.e. if there are two identical entries, does the program use the value of the first, the second, or both?
  • No formal syntax definition
    • No defined character set
    • No defined line-continuation syntax
    • Poorly defined comment syntax
    • undefined or idiosyncratic treatment of whitespace

 

<< PreviousWord BrowserNext >>
ninomiya, tochigi
impromptu (1991)
benjamin bloom
impromptu
ambrussum
hats (party)
bill nighy
pete burns
xidian university
emile boutroux
shortbread
conpoy
caspar bartholin the younger
joann wilson
fredonia (texas)
timeline of french history
tsmc
artist's book
gamble house
dior (middle earth)
ren prosper blondlot
briskeby
yttrium barium copper oxide
roger wilco
jon speelman
battle of blood river
raf balkan air force
lantern festival
poisoned candy scare
1421 theory
list of national history timelines
wiltel communications
cricket pitch
tracheid
trei culori
jacques cassini
collage novel
ilmar
stump (cricket)
mindless self indulgence
will the shill
wm. wrigley jr. company
vector the crocodile
priscilla chan