INI (extensión de archivo)

.ini es una extensión de archivo para denotar ficheros de configuración utilizados por Programa informático|aplicaciones de los sistema operativo sistemas operativo[Windows y ciertas aplicaciones en ambiente GNU/Linux.[1]

El término proviene de "Windows 'Ini'tialization file", es decir, archivo de inicialización de Windows.

Breve reseña histórica

Los archivos .ini comenzaron a utilizarse en las primeras versiones de Windows siendo ya muy populares en la versión 3.11. El propio Windows (en aquella versión aún no podía denominarse sistema operativo) utilizaba dos ficheros .ini para arrancar: WIN.INI y SYSTEM.INI. Estos ficheros incluyen información básica para el inicio de Windows, tales como las impresoras instaladas y sus parámetros.[2]

Dada la sencillez de los archivos .ini, todas las aplicaciones lo adoptaron como estándar para almacenar sus parámetros de configuración. Pero esto tenía el inconveniente de que era complicado localizar el archivo de configuración correcto para cada aplicación, puesto que podían estar en cualquier carpeta del disco duro. Además podían sufrir modificaciones que alterasen su correcto formato, dejándolos inservibles. Otro problema frecuente es que los archivos de configuración .ini podían ser eliminados inadvertidamente por el usuario o por otras aplicaciones. Por todos estos motivos, el uso de archivos .INI ha caído en desuso, sin embargo en ambiente GNU/Linux dado que cada usuario está circunscrito a su directorio personal mediante fuertes políticas de derechos en el acceso a ficheros ha resultado útil para definir preferencias personales como por ejemplo en Git y su uso de comandos por alias.[1]

Con la llegada de Windows 95 prevalecieron los ficheros WIN.INI y SYSTEM.INI pero se creó un sistema centralizado para el almacenaje de parámetros de configuración denominado registro de Windows. El Registro no tiene los problemas anteriormente mencionados.[2]

Formato

Un archivo .INI consiste en un simple archivo de texto ASCII que contiene dos tipos de entradas:[3]

  • Secciones: permiten agrupar parámetros relacionados. Por ejemplo: "Parámetros de red".
  • Valores: definen parámetros y su valor. Primero se define el nombre del parámetro y después su valor separado por el signo de igualdad (=).
  • Comentarios: permiten explicar el propósito de una sección o parámetro. Los comentarios comienzan con el carácter punto y coma (;).

El significado de secciones y valores no está bien definido y cada aplicación puede reaccionar de manera diferente ante:

  • Secciones duplicadas.
  • Parámetros duplicados.
  • El carácter de barra invertida (\). A veces se usa para romper una línea en dos.
  • Valores. Los valores pueden consistir en texto, números, listas separadas por comas, etc.

Todo esto depende de la aplicación, pero existen librerías públicas especializadas de la empresa Microsoft para que cada aplicación tenga una lectura y escritura a dichos archivos de manera segura en cuanto a la preservación del formato y rápida porque es manejada directamente por el propio sistema operativo Windows.[4]

Ejemplo

El siguiente ejemplo es un archivo .ini ficticio que establece las preferencias de un navegador:

[Red]
; Poner UsarProxy=1 si no hay cortafuegos
UsarProxy=1
Proxy=192.168.0.1

[Preferencias]
PaginaInicio=https://wikipedia.org
Maximizar=1

Este archivo contiene dos secciones. La sección Red describe los parámetros para que el navegador pueda conectarse a páginas Web. El parámetro UsarProxy tiene el valor 1, que significa que es necesario utilizar un servidor proxy. El parámetro Proxy establece la dirección IP de tal servidor. La sección Preferencias describe parámetros del usuario. El parámetro PaginaInicio establece la URL que debe abrir el navegador inmediatamente después de arrancar. El parámetro Maximizar con el valor 1 indica que el navegador debe iniciarse a pantalla completa.

Cómo funciona

Tras instalar una aplicación, sus parámetros de configuración por defecto quedan almacenados en el archivo .ini que trae la instalación. Cuando el usuario cambia parámetros en la propia aplicación, ésta se encarga de rescribir el archivo .ini como resulte conveniente. Adicionalmente, cualquier usuario puede abrir el fichero .ini con un editor de texto y modificarlo. Esto puede ser necesario en caso de un malfuncionamiento de la aplicación.

Evolución

Los archivos .ini están prácticamente en desuso hoy día. Existen varios motivos:

  • Es un formato que solamente se usa en Windows y no es totalmente portable a otros sistemas operativos (léase, UNIX) debido básicamente a que los caracteres de salto de línea no se interpretan igual en todos los sistemas operativos.
  • El Registro de Windows hace innecesario su uso y es menos propenso a errores de manipulación.
  • El formato XML puede cumplir la misma función y es un estándar portable. Además no tiene problemas respecto al juego de caracteres empleado, siempre y cuando se especifique la codificación de caracteres UTF-8 (por defecto de XML) de manera explícita en el prólogo o que la aplicación de edición de texto permita guardar en formato UTF-8.[5]

Hasta la fecha, la empresa Microsoft mantiene una librería en lenguaje C++ que permite leer y escribir dichos archivos .INI (GetPrivateProfileString y WritePrivateProfileString)[4] pero indican que es por compatibilidad con las aplicaciones de 16 bits y desaconsejan su uso.

Véase también

Referencias

  1. Anderson, John (7 de abril de 2018). «13 Git tips for Git's 13th birthday» (html). OpenSource.com (en inglés). Archivado desde el original el 9 de abril de 2018. Consultado el 15 de abril de 2018. «If you choose to go this route, you'll find that the ~/.gitconfig file is an INI file. INI is basically a key-value file format with particular sections. »
  2. «GetPrivateProfileString function». Microsoft. Archivado desde el original el 4 de marzo de 2018. Consultado el 15 de abril de 2018. «The system maps most .ini file references to the registry, using the mapping defined under the following registry key:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping This mapping is likely if an application modifies system-component initialization files, such as Control.ini, System.ini, and Winfile.ini. In these cases, the function retrieves information from the registry, not from the initialization file; the change in the storage location has no effect on the function's behavior. »
  3. «What is a config file?». OpensourceCom. Archivado desde el original el 23 de junio de 2021. Consultado el 26 de junio de 2021. «The INI format features sections in addition to keys and values. »
  4. «GetPrivateProfileString function». Microsoft. Archivado desde el original el 4 de marzo de 2018. Consultado el 15 de abril de 2018.
  5. «Problemas html acentos y eñes: charset UTF-8 / ISO-8859-1». Gestiweb. Archivado desde el original el 15 de abril de 2018. Consultado el 15 de abril de 2018. «Depende del editor en que se haya hecho la web, si en el trabajamos por defecto en UTF-8 o ISO-8859-1. Si el archivo original estaba escrito en ISO-8859-1 y lo editamos en UTF-8, veremos los caracteres especiales mal codificados. Si guardamos ese archivo tal cual, estaremos corrompiendo la codificación original (se guardará mal, con UTF-8). Y viceversa. »
Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.