Todo es un archivo
# Todo es un archivo

"Everything is a file" (Todo es un archivo en español) describe una de las principales características de Unix y sus derivados, que consiste en que casi todos los recursos del sistema, como documentos, directorios, unidades de disco, módems, teclados, impresoras, e incluso algunas comunicaciones de red y de procesos son simples flujos de bits expuestos a través del sistema de archivos Unix.

La ventaja de esta característica es que el mismo conjunto de utilidades y APIs pueden ser usados en una amplia variedad de recursos. Existe un número de tipos de archivos Unix. Cuando un archivo es abierto se crea un descriptor de archivo, la ruta se convierte en el sistema de direccionamiento, y el descriptor en la interfaz des flujo de bytes I/O. Pero los descriptores también se crean para cosas como pipas anónimas y sockets de red de distintas formas, así que sería más correcto decir que "todo es un descriptor de archivo".

Además, muchos sistemas de archivos exponen información sobre los procesos y el sistema en una estructura jerárquica a modo de archivos. Estos son montados dentro del sistema de archivos jerárquico. Un ejemplo de este sistema de archivos puramente virtual se encuentra dentro del directorio /proc, que expone varias propiedades del sistema e información de procesos como archivos.

Todos esos "archivos" poseen los atributos estándar de Unix como propietario y permisos de acceso, y pueden ser consultados con las mismas herramientas Unix clásicas y filtros. Sin embargo, esto no es universalmente considerado una alternativa portable o rápida. Algunos sistemas operativos no montan /proc de manera predeterminada debido a razones de seguridad o rapidez. Aunque esto es ampliamente practicado tanto en BusyBox, ampliamente usado en sistemas empotrados y por procps, usado en casi todos los sistemas GNU/Linux. En ambos casos esto es usado en implementaciones de los procesos relacionados con los comandos del shell de POSIX. Es usado también de manera similar en los sistemas Android en el programa Toolbox.

El sucesor de Unix, Plan 9 tomó este concepto de la computación distribuida para el protocolo 9P.

