Sistema de archivos API

API del sistema de archivos es una interfaz de programación de aplicaciones a través de la cual un programa del usuario o utilidad solicita servicios de un sistema de archivos. Un sistema operativo puede proporcionar abstracciones a tener acceso a sistemas de archivos diferentes claramente.

Algún sistema de archivos APIs también puede incluir interfaces para operaciones de mantenimiento, como la creación o inicializar un sistema de archivos, verificando el sistema de archivos para la integridad y defragmentation.

Cada sistema operativo incluye el APIs necesario para los sistemas de ficheros que apoya. Windows de Microsoft tiene el sistema de archivos APIs para NTFS y varios sistemas de archivos GORDOS. Los sistemas de Linux pueden incluir APIs para ext2, ext3, ReiserFS y Btrfs para llamar a unos cuantos.

Historia

Algunos sistemas operativos tempranos eran capaces de sólo manejar sistemas de archivos del disco y cinta. Éstos proporcionaron el más básico de interfaces con:

Más coordinación como asignación del dispositivo y desasignación requirió la adición de:

Como el sistema de ficheros proporcionó más servicios, más interfaces se definieron:

Como el sistema de ficheros adicional escribe a máquina, la estructura de la jerarquía y los medios apoyados aumentaron los rasgos necesitaron algunas funciones especializadas:

Los sistemas multiusuarios requirieron APIs para:

Descripciones de API

dirección de registro

escriba, lea y posición

La escritura de datos del usuario a un sistema de archivos es proporcionada al uso directamente por el programa del usuario o la biblioteca de tiempo de ejecución. La biblioteca de tiempo de ejecución para algunas lenguas que programan puede proporcionar la conversión del tipo, formateando y obstruyéndose. Algunos filessystems proporcionan la identificación de archivos con la llave y pueden incluir volver a escribir un registro existente. Esta operación a veces se llama http://www.prycroft6.com.au/misc/download/GC26-3875-0_MVS_DataMgmtSrvcsGde_Aug78OCR.pdf<code>PUT</code> o (si el registro existe)

La lectura de datos del usuario, a veces llamados SE PONE, puede incluir una dirección (adelante o revés) o en caso de un keyed filessystems una llave específica. Como con la escritura de bibliotecas de tiempo de ejecución puede interceder por el programa del usuario.

La colocación incluye el ajuste de la posición del siguiente registro. Esto puede incluir saltarse avanzado o poner marcha atrás así como colocando al principio o el final del archivo.

ábrase y cerca

API abierto se puede explícitamente solicitar o implícitamente invocado a la emisión de la primera operación por un proceso en un objeto. Puede causar el montaje de medios separables, establecimiento de una conexión con otro anfitrión y convalidación de la posición y la accesibilidad del objeto. Actualiza estructuras del sistema para indicar que el objeto está en el uso.

Los requisitos habituales para solicitar el acceso a un objeto del sistema de archivos incluyen:

  1. El objeto a que deben tener acceso (archivo, directorio, medios y posición)
  2. El tipo intencionado de operaciones para realizarse después del abierto (lee, actualizaciones, eliminación)

La información adicional puede ser necesaria, por ejemplo una contraseña.

Además una declaración que otros procesos pueden tener acceso al mismo objeto mientras el proceso inicial usa el objeto (compartimiento). Esto puede depender de la intención del otro proceso. En contraste una declaración que ningún otro proceso puede tener acceso al objeto sin tener en cuenta la otra intención de procesos (uso exclusivo).

Éstos se solicitan vía una biblioteca del lenguaje de programación que puede proporcionar la coordinación entre módulos en el proceso además del transporte de mercancías de la solicitud al sistema de archivos.

Detalles de MSDN para C# C ++ F# VB

Hay que esperar que algo se puede equivocar durante el procesamiento del abierto.

  1. El objeto o la intención se pueden incorrectamente especificar (el nombre puede incluir un carácter inaceptable en el nombre o la intención es no reconocida).
  2. El proceso se puede prohibir tener acceso al objeto (sólo puede ser accesible por un grupo o usuario específico).
  3. El sistema de archivos puede tener ser incapaz de crear o actualizar estructuras requeridas coordinar actividades entre usuarios.
  4. En caso de un nuevo (o reemplazo) el objeto allí puede no ser la capacidad suficiente en los medios.

Según el lenguaje de programación, las especificaciones adicionales en el abierto pueden establecer los módulos para manejar estas condiciones. Algunas bibliotecas especifican que un módulo de la biblioteca al análisis de permisión del sistema de archivos debería el programa inicial ser incapaz de realizar cualquier acción significativa a consecuencia de un fracaso. Por ejemplo si el fracaso está en la tentativa de abrir el archivo de la entrada necesario la única acción puede deber relatar el fracaso y abortar el programa. Algunas lenguas simplemente devuelven un código que indica el tipo del fracaso que siempre debe ser comprobado por el programa que decide que hacer un informe y si puede seguir.

Cerca puede causar el no montaje o la expulsión de medios separables y actualizará biblioteca y estructuras del sistema de archivos para indicar que el objeto ya no está en el uso.

La especificación mínima a las referencias cercanas el objeto. Además algunos sistemas de archivos proporcionan specifing una disposición del objeto que puede indicar que el objeto es desecharse y ya no ser la parte del sistema de archivos.

Similar al abierto, hay que esperar que algo se puede equivocar.

  1. La especificación del objeto puede ser incorrecta.
  2. Puede no haber capacidad suficiente en los medios para salvar cualesquiera datos almacenados en un buffer o a la salida una indicación de la estructura que el objeto con éxito se actualizó.
  3. Un error del dispositivo puede ocurrir en los medios donde el objeto se almacena mientras la escritura almacenó en un buffer datos, la estructura de finalización o actualización meta datos relacionados con el objeto (por ejemplo último tiempo de acceso).
  4. Una especificación para soltar el objeto puede ser inconsecuente con el hecho que otros procesos todavía usan el objeto.

Las consideraciones para manejar un fracaso son similares a aquellos del abierto.

gestión de datos de meta

La información sobre los datos en un archivo se llama meta-datos.

Algunos datos meta son mantenidos por el sistema de ficheros, por ejemplo última fecha de la modificación (y varias otras fechas según el sistema de ficheros),

la posición del principio del archivo, la talla del archivo y si la utilidad de la reserva del sistema de ficheros ha salvado la versión actual de los archivos. Estos artículos no pueden ser por lo general cambiados por un programa del usuario.

Los datos meta adicionales apoyados por algunos sistemas de archivos pueden incluir al dueño del archivo, el grupo al cual el archivo pertenece así como permisos y/o control de acceso (es decir. Que acceso y actualizaciones varios usuarios o los grupos pueden realizar), y si el archivo es normalmente visible cuando el directorio se pone en una lista. Estos artículos son por lo general modificables por utilidades del sistema de archivos que pueden ser ejecutadas por el dueño.

Algunas aplicaciones almacenan más meta-datos. Para imágenes los datos meta pueden incluir el modelo de la cámara y los ajustes solían tomar la foto. Para archivos de audio, los datos meta pueden incluir el álbum, artista que registró la grabación y comentarios sobre la grabación que puede ser específica para una copia particular del archivo (es decir las copias diferentes de la misma grabación puede tener comentarios diferentes como la actualización por el dueño del archivo). Los documentos pueden incluir artículos gustan comprobado - por, aprobado - por, etc.

dirección del directorio

Renombrar un archivo, el movimiento de un archivo (o un subdirectorio) de un directorio al otro y la supresión de un archivo son ejemplos de las operaciones proveen por el sistema de archivos para la dirección de directorios.

Las operaciones de datos de Meta como permisión o restricción del acceso un directorio de varios usuarios o los grupos de los usuarios por lo general se incluyen.

dirección de la estructura de datos

compartimiento

restricción de acceso

codificación

mantenimiento del sistema de ficheros

Como un sistema de ficheros es directorios usados, los archivos y los archivos se pueden añadir, suprimirse o modificarse. Esto por lo general causa ineficiencias en las estructuras de datos subyacentes. Las cosas como bloques lógicamente secuenciales distribuyeron a través de los medios en un camino que causa la nueva colocación excesiva, bloques parcialmente usados hasta vacíos incluidos en estructuras unidas. Las estructuras incompletas u otras inconsistencia pueden ser causadas por dispositivo o errores de medios, tiempo inadecuado entre descubrimiento de la pérdida inminente del poder y pérdida de potencia actual, cierre del sistema impropio o retiro de medios, y en ocasiones muy raras filesytem codificación de errores.

Las rutinas especializadas en el sistema de archivos se incluyen para optimizar o reparar estas estructuras. No son por lo general invocados por el usuario directamente, pero se provocan dentro del propio sistema de ficheros. Los mostradores internos del número de niveles de estructuras, el número de objetos insertados se puede comparar con umbrales. Éstos pueden hacer que el acceso del usuario se suspenda a una estructura específica (por lo general al disgusto (?) del usuario o usuarios efectuados) o se pueden comenzar como la prioridad baja tareas asincrónicas o se pueden aplazar a un tiempo de la actividad del usuario baja. A veces estas rutinas se invocan o programadas por el gerente del sistema o como en caso de defragmentation.

Nivel del grano API

El API es "el nivel del grano" cuando el grano no sólo proporciona los interfaces a los reveladores de sistemas de ficheros, pero también es el espacio en el cual el código del sistema de ficheros reside.

Discrepa del viejo esquema en esto el propio grano usa sus propias instalaciones para hablar con el conductor del sistema de ficheros y viceversa, como al contrario del grano que es el que que maneja la disposición del sistema de ficheros y el sistema de ficheros el que lo que directamente tiene acceso al hardware.

No es el esquema más limpio, pero resuelve que las dificultades del comandante vuelven a escribir lo que tiene el viejo esquema.

Con granos modulares permite añadir sistemas de ficheros como cualquier módulo del grano, hasta del tercero. Con granos no modulares sin embargo requiere que el grano se compile de nuevo con el nuevo código del sistema de ficheros (y en granos de la fuente cerrada, esto hace el sistema de ficheros del tercero imposible).

Unixes y los sistemas de Unix-like como Linux han usado este esquema modular.

Hay una variación de este esquema usado en el MS-DOS (DOS 4.0 hacia adelante) y compatibles para apoyar sistemas de ficheros de la red y CD-ROM. En vez de añadir el código al grano, como en el viejo esquema, o usar instalaciones del grano como en el esquema basado en el grano, atrapa todas las llamadas a un archivo y se identifica si se debería desviar a la función equivalente del grano o si tiene que ser manejado por el conductor del sistema de ficheros específico, y el conductor del sistema de ficheros "directamente" tiene acceso a los contenido del disco usando funciones del BIOS bajas.

API basado en el conductor

El API es "basado en el conductor" cuando el grano proporciona instalaciones pero el código del sistema de ficheros reside totalmente externo al grano (ni siquiera como un módulo de un grano modular).

Es un esquema más limpio ya que el código del sistema de ficheros es totalmente independiente, permite que sistemas de ficheros se creen para granos de la fuente cerrada y adiciones del sistema de ficheros en línea o retiros del sistema.

Los ejemplos de este esquema son el Windows NT e IFSs respectivo OS/2.

"

Controlador del grano mezclado" API basado

En este API todos los sistemas de ficheros están en el grano, como en APIs basado en el grano, pero son automáticamente atrapados por otro API, que es basado en el conductor, por el OS.

Este esquema se usó en Windows 3.1 para proveer a un conductor del sistema de ficheros GORDO en el modo protegido de 32 bites y se escondió, (VFAT) que evitó el controlador de GRASA DE DOS en el grano (MSDOS.SYS) completamente, y más tarde en la serie de Windows 9x (95, 98 y Mí) para VFAT, el conductor del sistema de ficheros ISO9660 (junto con Joliet), partes de la red, y conductores del sistema de ficheros del tercero, así como adición a DOS original APIs el LFN API (que los conductores IFS sólo no pueden interceptar el archivo de DOS ya existente APIs sino también añadir nuevo desde dentro el modo protegido de 32 bites ejecutable).

Sin embargo esto API completamente no se documentó, y terceros se encontró en un "lo hacen por usted" guión aún peor que con APIs basado en el grano.

Espacio del usuario API

El API está en el espacio del usuario cuando el sistema de ficheros no usa directamente instalaciones del grano pero discos de accesos usando el sistema operativo de alto nivel funciona y proporciona funciones en una biblioteca que una serie del uso de utilidades para tener acceso al sistema de ficheros.

Esto es útil para manejar imágenes de disco.

La ventaja consiste en que un sistema de ficheros se puede hacer portátil entre sistemas operativos ya que el sistema operativo de alto nivel funciona usa puede ser como común como ANSI C, pero la desventaja es que el API es único para cada aplicación que pone en práctica el que.

Los ejemplos de este esquema son el hfsutils y el adflib.

Interoperatibility entre sistema de ficheros APIs

Como todos los sistemas de ficheros (al menos del disco) necesitan funciones equivalentes proporcionadas por el grano, es posible virar fácilmente un código del sistema de ficheros a babor de un API al otro, aun si son de tipos diferentes.

Por ejemplo, el conductor ext2 para OS/2 es simplemente una envoltura de VFS de Linux a IFS del OS/2 y Linux ext2 basado en el grano, y el conductor HFS para OS/2 es un puerto del hfsutils a IFS del OS/2. Allí también existe un proyecto que usa un Windows NT conductor de IFS para hacer NTFS trabajar bajo Linux.

Bibliografía

Véase también

Enlaces externos



Buscar