Este artículo necesita citas adicionales para su verificación . ( junio de 2009 ) |
En informática , un archivo informático es un recurso para registrar datos en un dispositivo de almacenamiento informático , identificado principalmente por su nombre de archivo . Así como las palabras se pueden escribir en papel, también se pueden escribir datos en un archivo informático. Los archivos se pueden compartir y transferir entre computadoras y dispositivos móviles a través de medios extraíbles , redes o Internet .
Los distintos tipos de archivos informáticos están diseñados para distintos fines. Un archivo puede estar diseñado para almacenar una imagen , un mensaje escrito, un vídeo , un programa o cualquier otra variedad de datos. Algunos archivos pueden almacenar varios tipos de datos a la vez.
Mediante programas informáticos, una persona puede abrir, leer, modificar, guardar y cerrar un archivo informático. Los archivos informáticos pueden volver a abrirse, modificarse y copiarse una cantidad arbitraria de veces.
Los archivos normalmente se organizan en un sistema de archivos , que rastrea las ubicaciones de los archivos en el disco y permite el acceso de los usuarios.
La palabra «archivo» deriva del latín filum («hilo, cuerda»). [1]
El término "archivo" se utilizó en el contexto del almacenamiento informático ya en enero de 1940. En Punched Card Methods in Scientific Computation [Métodos de tarjetas perforadas en computación científica] , [2] WJ Eckert afirmó: "El primer uso extensivo del tabulador Hollerith en astronomía lo hizo Comrie . [3] Lo utilizó para construir una tabla a partir de diferencias sucesivas y para sumar grandes cantidades de términos armónicos". "Las tablas de funciones se construyen a partir de sus diferencias con gran eficiencia, ya sea como tablas impresas o como un archivo de tarjetas perforadas ".
En febrero de 1950, en un anuncio de la Radio Corporation of America (RCA) en la revista Popular Science [4] en el que se describía un nuevo tubo de vacío con "memoria" que había desarrollado, la RCA afirmaba: "los resultados de innumerables cálculos pueden conservarse 'en archivo' y extraerse de nuevo. Ese 'archivo' existe ahora en un tubo con "memoria" desarrollado en los laboratorios de la RCA. Retiene electrónicamente las cifras que se introducen en las máquinas calculadoras, las almacena mientras memoriza otras nuevas, acelerando las soluciones inteligentes en los laberintos de las matemáticas".
En 1952, "archivo" designaba, entre otras cosas, información almacenada en tarjetas perforadas . [5]
En sus inicios, se denominaba "archivo" al hardware subyacente, en lugar de a los contenidos almacenados en él. Por ejemplo, las unidades de disco IBM 350 se denominaban "archivos de disco". [6] La introducción, en 1961 , por parte del Burroughs MCP y el MIT Compatible Time-Sharing System del concepto de " sistema de archivos " que gestionaba varios "archivos" virtuales en un dispositivo de almacenamiento es el origen de la denominación contemporánea de la palabra. Aunque el " archivo de registro " contemporáneo demuestra el concepto temprano de archivos, su uso ha disminuido considerablemente.
En la mayoría de los sistemas operativos modernos , los archivos se organizan en matrices unidimensionales de bytes . El formato de un archivo se define por su contenido, ya que un archivo es únicamente un contenedor de datos.
En algunas plataformas, el formato se indica mediante la extensión del nombre de archivo , que especifica las reglas sobre cómo deben organizarse los bytes y cómo deben interpretarse de manera significativa. Por ejemplo, los bytes de un archivo de texto sin formato ( .txt en Windows) se asocian con caracteres ASCII o UTF-8 , mientras que los bytes de los archivos de imagen, video y audio se interpretan de otra manera. La mayoría de los tipos de archivos también asignan algunos bytes para metadatos , lo que permite que un archivo contenga información básica sobre sí mismo.
Algunos sistemas de archivos pueden almacenar datos específicos de archivos arbitrarios (no interpretados por el sistema de archivos) fuera del formato de archivo, pero vinculados al archivo, por ejemplo, atributos extendidos o forks . En otros sistemas de archivos, esto se puede hacer a través de archivos sidecar o bases de datos específicas del software. Sin embargo, todos esos métodos son más susceptibles a la pérdida de metadatos que los formatos de archivo de contenedores y de archivo .
Esta sección puede tener contenido engañoso . ( Marzo de 2019 ) |
En cualquier instante de tiempo, un archivo tiene un tamaño específico, normalmente expresado como un número de bytes , [a] que indica cuánto almacenamiento ocupa el archivo. En la mayoría de los sistemas operativos modernos, el tamaño puede ser cualquier número entero no negativo de bytes hasta un límite del sistema. Muchos sistemas operativos más antiguos solo registraban el número de bloques o pistas ocupadas por un archivo en un dispositivo de almacenamiento físico. En dichos sistemas, el software empleaba otros métodos para rastrear el recuento exacto de bytes (por ejemplo, CP/M usaba un carácter de control especial, Ctrl-Z , para señalar el final de los archivos de texto).
Sin embargo, la definición general de un archivo no requiere que su tamaño tenga un significado real, a menos que los datos dentro del archivo correspondan a datos dentro de un grupo de almacenamiento persistente. Un caso especial es un archivo de cero bytes ; estos archivos pueden ser archivos recién creados en los que aún no se ha escrito ningún dato, o pueden servir como algún tipo de indicador en el sistema de archivos, o son accidentes (los resultados de operaciones de disco abortadas). Por ejemplo, el archivo al que apunta el enlace /bin/ls en un sistema típico tipo Unix probablemente tenga un tamaño definido que rara vez cambia. Compárese esto con /dev/null que también es un archivo, pero como archivo especial de caracteres , su tamaño no es significativo.
La información contenida en un archivo informático puede consistir en paquetes de información más pequeños (a menudo denominados " registros " o "líneas") que son diferentes individualmente pero comparten algunos rasgos comunes. Por ejemplo, un archivo de nóminas puede contener información relativa a todos los empleados de una empresa y sus detalles de nómina; cada registro del archivo de nóminas se refiere a un solo empleado, y todos los registros tienen el rasgo común de estar relacionados con la nómina; esto es muy similar a colocar toda la información de la nómina en un archivador específico en una oficina que no tiene una computadora. Un archivo de texto puede contener líneas de texto, correspondientes a líneas impresas en una hoja de papel. Alternativamente, un archivo puede contener una imagen binaria arbitraria (un blob ) o puede contener un ejecutable .
La forma en que se agrupa la información en un archivo depende totalmente de cómo se diseña. Esto ha dado lugar a una plétora de estructuras de archivos más o menos estandarizadas para todos los propósitos imaginables, desde los más simples hasta los más complejos. La mayoría de los archivos de computadora son utilizados por programas informáticos que crean, modifican o eliminan los archivos para su propio uso según sea necesario. Los programadores que crean los programas deciden qué archivos se necesitan, cómo se deben utilizar y (a menudo) sus nombres.
En algunos casos, los programas informáticos manipulan archivos que se hacen visibles para el usuario de la computadora. Por ejemplo, en un programa de procesamiento de textos , el usuario manipula archivos de documentos a los que asigna un nombre personal. Aunque el contenido del archivo de documentos está organizado en un formato que el programa de procesamiento de textos entiende, el usuario puede elegir el nombre y la ubicación del archivo y proporcionar la mayor parte de la información (como palabras y texto) que se almacenará en el archivo.
Muchas aplicaciones empaquetan todos sus archivos de datos en un solo archivo llamado archivo de almacenamiento , utilizando marcadores internos para distinguir los diferentes tipos de información que contiene. Los beneficios del archivo de almacenamiento son reducir la cantidad de archivos para facilitar la transferencia, reducir el uso de almacenamiento o simplemente organizar archivos obsoletos. El archivo de almacenamiento a menudo debe descomprimirse antes del próximo uso.
Las operaciones más básicas que los programas pueden realizar en un archivo son:
Los archivos de una computadora se pueden crear, mover, modificar, aumentar, reducir ( truncar ) y eliminar. En la mayoría de los casos, los programas informáticos que se ejecutan en la computadora se encargan de estas operaciones, pero el usuario de una computadora también puede manipular archivos si es necesario. Por ejemplo, los archivos de Microsoft Word normalmente se crean y modifican mediante el programa Microsoft Word en respuesta a los comandos del usuario, pero el usuario también puede mover, cambiar el nombre o eliminar estos archivos directamente mediante un programa de administración de archivos como Windows Explorer (en computadoras con Windows) o mediante líneas de comando (CLI).
En sistemas tipo Unix , los programas de espacio de usuario no operan directamente, a bajo nivel, sobre un archivo. Solo el núcleo se ocupa de los archivos, y maneja toda la interacción del espacio de usuario con los archivos de una manera que es transparente para los programas de espacio de usuario. El sistema operativo proporciona un nivel de abstracción , lo que significa que la interacción con un archivo desde el espacio de usuario es simplemente a través de su nombre de archivo (en lugar de su inodo ). Por ejemplo, no eliminará el archivo en sí, sino solo un enlace al archivo. Puede haber muchos enlaces a un archivo, pero cuando se eliminan todos, el núcleo considera que el espacio de memoria de ese archivo está libre para ser reasignado. Este espacio libre se considera comúnmente un riesgo de seguridad (debido a la existencia de software de recuperación de archivos ). Cualquier programa de eliminación segura usa funciones del espacio del núcleo (sistema) para borrar los datos del archivo.rm filename
Los movimientos de archivos dentro de un sistema de archivos se completan casi de inmediato porque no es necesario reescribir el contenido de los datos. Solo es necesario cambiar las rutas.
Hay dos implementaciones distintas de movimientos de archivos.
Al mover archivos entre dispositivos o particiones, algunos programas de administración de archivos eliminan cada archivo seleccionado del directorio de origen individualmente después de ser transferidos, mientras que otros programas eliminan todos los archivos a la vez solo después de que se haya transferido cada archivo.
Con el mv
comando, por ejemplo, se utiliza el primer método al seleccionar archivos individualmente, posiblemente con el uso de comodines (ejemplo: mv -n sourcePath/* targetPath
, mientras que el último método se utiliza al seleccionar directorios completos (ejemplo: mv -n sourcePath targetPath
). Microsoft Windows Explorer utiliza el primer método para movimientos de archivos de almacenamiento masivo , pero el último método utiliza el Protocolo de transferencia de medios , como se describe en Protocolo de transferencia de medios § Comportamiento de movimiento de archivos .
El primer método (eliminación individual del origen) tiene la ventaja de que el espacio se libera del dispositivo o partición de origen inmediatamente después de que haya comenzado la transferencia, es decir, después de que finalice el primer archivo. Con el segundo método, el espacio solo se libera después de que haya finalizado la transferencia de toda la selección.
Si una transferencia de archivos incompleta con el último método se interrumpe inesperadamente, tal vez debido a un apagado inesperado, una detención del sistema o una desconexión de un dispositivo, no se habrá liberado espacio en el dispositivo o la partición de origen. El usuario deberá fusionar los archivos restantes de la fuente, incluido el último archivo escrito de forma incompleta (truncado).
Con el método de eliminación individual, el software de transferencia de archivos tampoco necesita realizar un seguimiento acumulativo de todos los archivos que se han transferido por si un usuario cancela manualmente la transferencia de archivos. Un administrador de archivos que utilice el último método (el de eliminación posterior) solo tendrá que eliminar los archivos del directorio de origen que ya hayan finalizado la transferencia.
En los sistemas informáticos modernos, normalmente se accede a los archivos mediante nombres ( filenames ). En algunos sistemas operativos, el nombre está asociado al archivo en sí. En otros, el archivo es anónimo y se lo señala mediante enlaces que tienen nombres. En este último caso, un usuario puede identificar el nombre del enlace con el archivo en sí, pero esto es una falsa analogía, especialmente cuando existe más de un enlace al mismo archivo.
Los archivos (o enlaces a archivos) pueden estar ubicados en directorios. Sin embargo, de manera más general, un directorio puede contener una lista de archivos o una lista de enlaces a archivos. Dentro de esta definición, es de suma importancia que el término "archivo" incluya directorios. Esto permite la existencia de jerarquías de directorios, es decir, directorios que contienen subdirectorios. Un nombre que hace referencia a un archivo dentro de un directorio debe ser típicamente único. En otras palabras, no debe haber nombres idénticos dentro de un directorio. Sin embargo, en algunos sistemas operativos, un nombre puede incluir una especificación de tipo que significa que un directorio puede contener un nombre idéntico para más de un tipo de objeto, como un directorio y un archivo.
En los entornos en los que se nombra un archivo, el nombre del archivo y la ruta al directorio del archivo deben identificarlo de forma única entre todos los demás archivos del sistema informático; no pueden existir dos archivos con el mismo nombre y ruta. Cuando un archivo es anónimo, existirán referencias con nombre a él dentro de un espacio de nombres. En la mayoría de los casos, cualquier nombre dentro del espacio de nombres hará referencia a exactamente cero o a un archivo. Sin embargo, cualquier archivo puede estar representado dentro de cualquier espacio de nombres por cero, uno o más nombres.
Cualquier cadena de caracteres puede ser un nombre bien formado para un archivo o un enlace dependiendo del contexto de la aplicación. Que un nombre esté bien formado o no depende del tipo de sistema informático que se utilice. Las primeras computadoras permitían solo unas pocas letras o dígitos en el nombre de un archivo, pero las computadoras modernas permiten nombres largos (algunos de hasta 255 caracteres) que contienen casi cualquier combinación de letras Unicode o dígitos Unicode, lo que facilita la comprensión del propósito de un archivo a simple vista. Algunos sistemas informáticos permiten que los nombres de archivo contengan espacios; otros no. La distinción entre mayúsculas y minúsculas de los nombres de archivo está determinada por el sistema de archivos . Los sistemas de archivos Unix suelen distinguir entre mayúsculas y minúsculas y permiten que las aplicaciones a nivel de usuario creen archivos cuyos nombres difieren solo en las mayúsculas y minúsculas de los caracteres. Microsoft Windows admite varios sistemas de archivos, cada uno con diferentes políticas [ ¿cuál? ] con respecto a la distinción entre mayúsculas y minúsculas. El sistema de archivos FAT común puede tener varios archivos cuyos nombres difieren solo en mayúsculas y minúsculas si el usuario utiliza un editor de disco para editar los nombres de archivo en las entradas del directorio . Sin embargo, las aplicaciones de usuario generalmente no permiten al usuario crear múltiples archivos con el mismo nombre pero con diferentes mayúsculas y minúsculas.
La mayoría de los ordenadores organizan los archivos en jerarquías mediante carpetas, directorios o catálogos. El concepto es el mismo independientemente de la terminología utilizada. Cada carpeta puede contener una cantidad arbitraria de archivos y también puede contener otras carpetas. Estas otras carpetas se denominan subcarpetas. Las subcarpetas pueden contener aún más archivos y carpetas, y así sucesivamente, creando así una estructura similar a un árbol en la que una "carpeta maestra" (o "carpeta raíz"; el nombre varía de un sistema operativo a otro) puede contener cualquier cantidad de niveles de otras carpetas y archivos. Las carpetas pueden tener un nombre igual que los archivos (excepto la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas facilita la organización de archivos de forma lógica.
Cuando un equipo permite el uso de carpetas, cada archivo y carpeta no solo tiene un nombre propio, sino también una ruta, que identifica la carpeta o carpetas en las que reside un archivo o carpeta. En la ruta, se utiliza algún tipo de carácter especial (como una barra) para separar los nombres de archivo y carpeta. Por ejemplo, en la ilustración que se muestra en este artículo, la ruta /Payroll/Salaries/Managers identifica de forma única un archivo llamado Managers en una carpeta llamada Salaries , que a su vez está contenida en una carpeta llamada Payroll . Los nombres de carpeta y archivo están separados por barras en este ejemplo; la carpeta superior o raíz no tiene nombre, por lo que la ruta comienza con una barra (si la carpeta raíz tuviera un nombre, precedería a esta primera barra).
Muchos sistemas informáticos utilizan extensiones en los nombres de archivo para ayudar a identificar lo que contienen, también conocido como el tipo de archivo. En los equipos con Windows, las extensiones consisten en un punto al final del nombre de archivo, seguido de algunas letras para identificar el tipo de archivo. Una extensión de .txt identifica un archivo de texto; una extensión .doc identifica cualquier tipo de documento o documentación, comúnmente en el formato de archivo de Microsoft Word ; y así sucesivamente . Incluso cuando se utilizan extensiones en un sistema informático, el grado en que el sistema informático las reconoce y las tiene en cuenta puede variar; en algunos sistemas, son necesarias, mientras que en otros sistemas, se ignoran por completo si se presentan.
Muchos sistemas informáticos modernos ofrecen métodos para proteger los archivos contra daños accidentales y deliberados. Los equipos que admiten varios usuarios implementan permisos de archivos para controlar quién puede o no modificar, eliminar o crear archivos y carpetas. Por ejemplo, a un usuario determinado se le puede conceder permiso únicamente para leer un archivo o una carpeta, pero no para modificarlo o eliminarlo; o se le puede dar permiso para leer y modificar archivos o carpetas, pero no para ejecutarlos. Los permisos también se pueden utilizar para permitir que solo ciertos usuarios vean el contenido de un archivo o una carpeta. Los permisos protegen contra la manipulación o destrucción no autorizada de la información de los archivos y mantienen la información privada confidencial frente a usuarios no autorizados.
Otro mecanismo de protección implementado en muchas computadoras es una bandera de solo lectura. Cuando esta bandera está activada para un archivo (lo que puede lograr un programa de computadora o un usuario humano), el archivo puede examinarse, pero no puede modificarse. Esta bandera es útil para información crítica que no debe modificarse ni borrarse, como archivos especiales que son utilizados únicamente por partes internas del sistema informático. Algunos sistemas también incluyen una bandera oculta para hacer que ciertos archivos sean invisibles; esta bandera es utilizada por el sistema informático para ocultar archivos esenciales del sistema que los usuarios no deben alterar.
Cualquier archivo que tenga algún propósito útil debe tener alguna manifestación física. Es decir, un archivo (un concepto abstracto) en un sistema informático real debe tener un análogo físico real para poder existir.
En términos físicos, la mayoría de los archivos de computadora se almacenan en algún tipo de dispositivo de almacenamiento de datos. Por ejemplo, la mayoría de los sistemas operativos almacenan archivos en un disco duro . Los discos duros han sido la forma omnipresente de almacenamiento no volátil desde principios de la década de 1960. [8] Cuando los archivos contienen solo información temporal, pueden almacenarse en RAM . Los archivos de computadora también se pueden almacenar en otros medios en algunos casos, como cintas magnéticas , discos compactos , discos versátiles digitales , unidades Zip , unidades flash USB , etc. El uso de unidades de estado sólido también está comenzando a rivalizar con la unidad de disco duro.
En los sistemas operativos tipo Unix, muchos archivos no tienen un dispositivo de almacenamiento físico asociado. Algunos ejemplos son /dev/null y la mayoría de los archivos de los directorios /dev , /proc y /sys . Se trata de archivos virtuales: existen como objetos dentro del núcleo del sistema operativo.
Tal como los ve un programa de usuario en ejecución, los archivos suelen estar representados por un bloque de control de archivos o por un identificador de archivo . Un bloque de control de archivos (FCB) es un área de memoria que se manipula para establecer un nombre de archivo, etc. y luego se pasa al sistema operativo como parámetro; lo utilizaban los sistemas operativos IBM más antiguos y los primeros sistemas operativos de PC, incluidos CP/M y las primeras versiones de MS-DOS . Un identificador de archivo suele ser un tipo de datos opaco o un entero; lo introdujo alrededor de 1961 Burroughs MCP basado en ALGOL que se ejecutaba en Burroughs B5000 , pero ahora es omnipresente.
Cuando se dice que un archivo está dañado, es porque su contenido se ha guardado en el ordenador de forma que no puede ser leído correctamente, ni por un humano ni por un software. Dependiendo de la extensión del daño, a veces se puede recuperar el archivo original , o al menos entenderlo parcialmente. [9] Un archivo puede crearse dañado, o puede dañarse en un momento posterior mediante sobrescritura.
Hay muchas formas en las que un archivo puede dañarse. La más común es que el problema ocurra durante el proceso de escritura del archivo en un disco . [10] Por ejemplo, si un programa de edición de imágenes se bloquea inesperadamente mientras guarda una imagen, es posible que el archivo esté dañado porque el programa no pudo guardarla en su totalidad. El propio programa puede advertir al usuario de que se produjo un error, lo que le permitirá volver a intentar guardar el archivo. [11] Algunos otros ejemplos de razones por las que los archivos se dañan incluyen:
Aunque la corrupción de archivos suele ocurrir accidentalmente, también puede hacerse a propósito como una forma de postergar el trabajo , para engañar a otra persona y hacerla pensar que una tarea estaba lista en una fecha anterior, con lo que se podría ganar tiempo para terminar dicha tarea o hacer experimentos, con el propósito de documentar las consecuencias cuando dicho archivo se corrompe. Existen servicios que brindan corrupción de archivos a pedido, que básicamente llenan un archivo determinado con datos aleatorios para que no se pueda abrir ni leer, pero que aún parezca legítimo. [18] [19]
Una de las contramedidas más eficaces contra la corrupción involuntaria de archivos es realizar copias de seguridad de los archivos importantes. [20] En caso de que un archivo importante se corrompa, el usuario puede simplemente reemplazarlo con la versión respaldada.
Cuando los archivos de la computadora contienen información extremadamente importante, se utiliza un proceso de copia de seguridad para protegerse contra desastres que podrían destruir los archivos. Hacer una copia de seguridad de los archivos simplemente significa hacer copias de los archivos en una ubicación separada para que se puedan restaurar si algo le sucede a la computadora o si se eliminan accidentalmente.
Existen muchas formas de realizar copias de seguridad de archivos. La mayoría de los sistemas informáticos ofrecen programas de utilidad para ayudar en el proceso de copia de seguridad, que puede resultar muy lento si hay muchos archivos que proteger. Los archivos se suelen copiar en medios extraíbles, como CD grabables o cintas de cartucho. Copiar archivos en otro disco duro del mismo equipo protege contra fallos de un disco, pero si es necesario proteger contra fallos o destrucción de todo el equipo, entonces se deben realizar copias de los archivos en otros medios que se puedan retirar del equipo y almacenar en un lugar seguro y alejado.
El método de copia de seguridad abuelo-padre-hijo realiza automáticamente tres copias de seguridad; el archivo del abuelo es la copia más antigua del archivo y el del hijo es la copia actual.
La forma en que un ordenador organiza, nombra, almacena y manipula archivos se conoce globalmente como su sistema de archivos . La mayoría de los ordenadores tienen al menos un sistema de archivos. Algunos ordenadores permiten el uso de varios sistemas de archivos diferentes. Por ejemplo, en los ordenadores MS Windows más nuevos, se admiten los sistemas de archivos de tipo FAT más antiguos de MS-DOS y versiones anteriores de Windows, además del sistema de archivos NTFS que es el sistema de archivos normal para las versiones recientes de Windows. Cada sistema tiene sus propias ventajas y desventajas. El FAT estándar solo permite nombres de archivo de ocho caracteres (más una extensión de tres caracteres) sin espacios, por ejemplo, mientras que NTFS permite nombres mucho más largos que pueden contener espacios. Puede llamar a un archivo " Registros de nóminas " en NTFS, pero en FAT estaría restringido a algo como payroll.dat (a menos que estuviera usando VFAT , una extensión FAT que permite nombres de archivo largos).
Los programas de gestión de archivos son programas de utilidad que permiten a los usuarios manipular archivos directamente. Permiten mover, crear, eliminar y renombrar archivos y carpetas, aunque en realidad no permiten leer el contenido de un archivo ni almacenar información en él. Todos los sistemas informáticos proporcionan al menos un programa de gestión de archivos para su sistema de archivos nativo. Por ejemplo, el Explorador de archivos (anteriormente, el Explorador de Windows) se utiliza habitualmente en los sistemas operativos Microsoft Windows, y Nautilus es común en varias distribuciones de Linux.