|
| |
In computing, configuration files, or config 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 graphical user interface (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, or
indeed to read arbitrary files as a configuration file. There are no standards
or strong conventions.
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.
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. 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, giving rise to the nickname "dotfile" or "dot file". Server
processes often use configuration files stored in /etc, but they may also use
their installation directory, the root directory, or a location defined by the
system administrator.
Configuration files also did more than just modify settings, they often (in the
form of an "rc file") ran a set of commands upon startup (ex. a shell rc file
might instruct the shell to change directories, run certain programs, delete or
create files - many things which did not involve modifying variables in the
shell itself and so were not in the shell's dotfiles); according to the Jargon
File, this convention is borrowed from "runcom files" on the CTSS operating
system. This functionality can and has been extended for programs written in
interpreted languages such that the configuration file is actually another
program rewriting or extending or customizing the original program; Emacs is the
most prominent such example.
On UNIX variants dot files are 'hidden' from listing by default, On OS X these
files are called "hidden files." The Explorer interface of Microsoft Windows XP
does not allow you to rename a file with an initial '.' though it does allow
access to such files, and Windows' Notepad program does allow files to be saved
with such names.
IBM's AIX uses an Object Data Manager (ODM) database to store some system
settings, some of which need to be available at boot time.
Microsoft DOS
Primarily relied upon two files called CONFIG.SYS and AUTOEXEC.BAT. These were
retained up to Windows 98SE, but were not strictly required to run Windows
applications.
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 many modern Windows
programs forgo configuration files to use only the Windows Registry to store
information.
IBM OS/2
IBM's OS/2 uses a binary format also named INI but it is different from the
Windows versions. It contains a list of lists of untyped key-value pairs. There
are two files for system-wide settings, OS2.INI and OS2SYS.INI. Application
developers can choose whether to use them or create a specific file for their
applications.
Platform independent
The trend in the increase of XML and YAML (among other formats) for use as
configuration file formats is at least partially attributable to the increase in
popularity of Open source and Platform neutral software applications and
libraries. Moreover, the specifications describing these formats are routinely
made available to the public, thus increasing the availability of parsers and
emitters across programming languages.
| |
|