stringtranslate.com

Archivos-11

Files-11 es el sistema de archivos utilizado en los sistemas operativos RSX-11 y OpenVMS de Digital Equipment Corporation . Admite E/S orientada a registros , acceso remoto a la red y control de versiones de archivos . La capa ODS-1 original es un sistema de archivos planos ; la versión ODS-2 es un sistema de archivos jerárquico , con soporte para listas de control de acceso .

Files-11 es similar, pero significativamente más avanzado, a los sistemas de archivos utilizados en los sistemas operativos anteriores de Digital Equipment Corporation , como TOPS-20 y RSTS/E .

Historia

El sistema de archivos nativo OpenVMS desciende de sistemas operativos DEC más antiguos y es similar en muchos aspectos, ambos diseñados por Dave Cutler . Una diferencia importante es el diseño de los directorios. Todos estos sistemas de archivos proporcionaban alguna forma de estructura de directorios rudimentaria y no jerárquica, generalmente basada en la asignación de un directorio por cuenta de usuario. En RSTS/E, cada cuenta de usuario estaba representada por dos números, un par, y tenía un directorio asociado. Los archivos especiales del sistema, como los ejecutables de programas y el propio sistema operativo, se almacenaban en el directorio de una cuenta reservada del sistema.[project,programmer]

Si bien esto era adecuado para los sistemas PDP-11 , que poseían una capacidad de almacenamiento permanente limitada, los sistemas VAX con discos duros mucho más grandes requerían un método más flexible de almacenamiento de archivos: el diseño jerárquico de directorios en particular, la mejora más notable en ODS-2.

Descripción general

"Files-11" es el término general para cinco sistemas de archivos separados, conocidos como estructura en disco (ODS) niveles 1 a 5.

ODS-1 es el sistema de archivos planos utilizado por el sistema operativo RSX-11, compatible con sistemas VMS más antiguos para compatibilidad RSX, pero nunca utilizado para admitir el propio VMS; ha sido reemplazado en gran medida por ODS-2 y ODS-5.

ODS-2 es el sistema de archivos VMS estándar y sigue siendo el sistema de archivos más común para los discos del sistema (el disco en el que está instalado el sistema operativo).

Aunque rara vez se hace referencia a ellos por sus designaciones de nivel ODS, ODS-3 y ODS-4 son el soporte de Files-11 para los sistemas de archivos CD-ROM ISO 9660 y High Sierra Format , respectivamente.

ODS-5 es una versión extendida de ODS-2 disponible en las plataformas Alpha e IA-64 que agrega soporte para nombres de archivos que conservan mayúsculas y minúsculas con caracteres no ASCII y mejoras en el soporte de directorios jerárquicos. Originalmente estaba pensado para servir archivos en Microsoft Windows u otros sistemas que no sean VMS como parte del proyecto "NT Affinity", pero también se utiliza en discos de usuario y servidores de Internet .

Diseño del directorio

Una jerarquía de directorios típica de Files-11: todos los archivos tienen su raíz en el Directorio de archivos maestro; File2 está en dos directorios

Todos los archivos y directorios en un sistema de archivos Files-11 están contenidos dentro de uno o más directorios principales y, eventualmente, en el directorio raíz, el directorio de archivos maestro (ver más abajo). Por lo tanto, el sistema de archivos está organizado en una estructura de gráfico acíclico dirigido ( DAG ).

En este ejemplo ( ver a la derecha ), File 2tiene una entrada de directorio debajo de Dir 2y Dir 3; está "en" ambos directorios simultáneamente. Incluso si se elimina de uno, seguirá existiendo en el otro directorio hasta que también se elimine de allí. Esto es similar al concepto de enlaces físicos en UNIX , aunque se debe tener cuidado de que el archivo no se elimine realmente en discos que no están configurados para enlaces físicos (sólo disponible en discos ODS-5, y sólo si el disco tiene enlaces físicos habilitados).

Organización y denominación del disco.

Un sistema VMS operativo tiene acceso a uno o más discos en línea, cada uno de los cuales contiene un sistema de archivos completo e independiente. Se trata de almacenamiento local o, en el caso de un clúster, almacenamiento compartido con sistemas remotos.

Figura 1 : Ejemplo de configuración del disco del clúster OpenVMS

En una configuración de clúster OpenVMS, los discos no privados se comparten entre todos los nodos del clúster (consulte la figura 1) . En esta configuración, ambos nodos pueden acceder a los dos discos del sistema a través de la red, pero el disco privado no se comparte: está montado para uso exclusivo de un usuario o proceso particular en esa máquina. El acceso a los archivos en un clúster lo administra OpenVMS Distributed Lock Manager, una parte integral del sistema de archivos.

Se pueden combinar varios discos para formar un único disco lógico grande o conjunto de volúmenes . Los discos también se pueden replicar automáticamente en conjuntos de sombras para la seguridad de los datos o un rendimiento de lectura más rápido.

Un disco se identifica por su nombre físico o (más a menudo) por un nombre lógico definido por el usuario. Por ejemplo, el dispositivo de arranque (disco del sistema) puede tener el nombre físico $3$DKA100, pero generalmente se le conoce por el nombre lógico SYS$SYSDEVICE.

Los sistemas de archivos de cada disco (con excepción de ODS-1) son jerárquicos. Un nombre de archivo completamente especificado consta de un nombre de nodo, un nombre de usuario y contraseña, un nombre de dispositivo, directorio, nombre de archivo, tipo de archivo y un número de versión, en el formato:

NODO"nombre de cuenta contraseña"::dispositivo:[directorio.subdirectorio]nombre de archivo.tipo;ver

Por ejemplo, [DIR1.DIR2.DIR3]FILE.EXTse refiere a la última versión de FILE.EXT, en el disco predeterminado actual, en el directorio [DIR1.DIR2.DIR3].

DIR1es un subdirectorio del directorio de archivos maestro (MFD), o directorio raíz , y DIR2es un subdirectorio de DIR1. El MFD de un disco se identifica con [000000].

La mayoría de las partes del nombre del archivo se pueden omitir, en cuyo caso se toman de la especificación de archivo predeterminada actual . La especificación de archivo predeterminada reemplaza el concepto de "directorio actual" en otros sistemas operativos al proporcionar un conjunto de valores predeterminados para el nodo, el nombre del dispositivo y el directorio. Todos los procesos tienen una especificación de archivo predeterminada que incluye el nombre del disco y el directorio, y la mayoría de las rutinas del sistema de archivos VMS aceptan una especificación de archivo predeterminada que también puede incluir el tipo de archivo; el TYPEcomando, por ejemplo, tiene como valor predeterminado " .LIS" como tipo de archivo, por lo que el comando TYPE F, sin extensión, intenta abrir el archivo F.LIS.

Cada archivo tiene un número de versión, que por defecto es 1 si no hay otras versiones del mismo nombre de archivo (de lo contrario, una superior a la versión más reciente). Cada vez que se guarda un archivo, en lugar de sobrescribir la versión existente, se crea un archivo nuevo con el mismo nombre pero con un número de versión incrementado. Las versiones antiguas se pueden eliminar explícitamente, con el comando DELETEo PURGE, u opcionalmente, las versiones anteriores de un archivo se pueden eliminar automáticamente cuando se alcanza el límite de versiónSET FILE/VERSION_LIMIT del archivo (establecido por ). Por lo tanto, las versiones antiguas no se sobrescriben, sino que se guardan en el disco y pueden recuperarse en cualquier momento. El límite arquitectónico de los números de versión es 32767. El comportamiento de control de versiones se anula fácilmente si no se desea. En particular, los archivos que se actualizan directamente, como las bases de datos, no crean nuevas versiones a menos que se programen explícitamente.

ODS-2 está limitado a ocho niveles de subdirectorios y solo nombres alfanuméricos en mayúsculas (más el guión bajo, el guión y el signo de dólar) de hasta 39,39 caracteres (39 para el nombre del archivo y otros 39 para la extensión). ODS-5 expande el conjunto de caracteres a letras minúsculas y la mayoría de los demás caracteres ASCII imprimibles, así como caracteres ISO Latin-1 y Unicode , aumenta la longitud máxima del nombre de archivo y permite niveles ilimitados de subdirectorios. Al construir una ruta de acceso para un archivo ODS-5 que utiliza caracteres no permitidos en ODS-2, se utiliza una sintaxis especial "^" para preservar la compatibilidad con versiones anteriores; el archivo " file.tar.gz;1" en un disco ODS-5, por ejemplo, se denominaría " file^.tar.gz"; el nombre del archivo es " file.tar" y la extensión es " .gz".

Seguridad de archivos: protección y ACL

La seguridad de los archivos VMS se define mediante dos mecanismos: el control de acceso basado en UIC y el control de acceso basado en ACL . El control de acceso de la UIC se basa en el propietario del fichero y la UIC, o usuario, que accede al fichero. El acceso está determinado por cuatro grupos de permisos:

Formato de visualización de protección de archivos; los permisos no concedidos no se muestran

Y cuatro bits de permiso:

El acceso al "sistema" se aplica a cualquier usuario cuyo código de grupo UIC sea menor o igual al SYSGENparámetro MAXSYSGROUP(normalmente 8 o 10 octal ) (por ejemplo, el SYSTEMusuario); "propietario" y "grupo" se aplican al propietario del archivo y al grupo de usuarios de ese usuario, y "mundo" se aplica a cualquier otro usuario. También hay un quinto bit de permiso, "Control", que se utiliza para determinar el acceso para cambiar los metadatos del archivo, como la protección. Este grupo no se puede establecer explícitamente; siempre está configurado para Sistema y Propietario, y nunca para Grupo o Mundo.

El control de acceso basado en UIC también se ve afectado por cuatro privilegios del sistema, que permiten a los usuarios que los poseen anular los controles de acceso:

Las ACL permiten asignar privilegios adicionales a un usuario o grupo específico; por ejemplo, a la UIC de un servidor web se le podría conceder acceso de lectura a todos los archivos de un directorio concreto. Las ACL se pueden marcar como heredadas , donde la ACL de un archivo de directorio se aplica a todos los archivos que se encuentran debajo de él. Las ACL se modifican mediante el EDIT/ACLcomando y toman la forma de pares de identificador/acceso. Por ejemplo, la entrada ACL

(IDENTIFICADOR=HTTP$SERVIDOR,ACCESO=LEER+EJECUTAR)

permitiría al usuario HTTP$SERVERleer y ejecutar el archivo.

Nombres lógicos

Un nombre lógico es una variable del sistema que puede hacer referencia a un disco, directorio o archivo, o contener otra información específica del programa. Por ejemplo, el lógico SYS$SYSDEVICEcontiene el dispositivo de arranque del sistema. Un nombre lógico normalmente se refiere a un único directorio o disco, por ejemplo SYS$LOGIN: , que es el directorio (o directorios) de inicio de sesión del usuario; Estas lógicas no se pueden utilizar como nombres de disco verdaderos; SYS$LOGIN:[DIR]FILEno es una especificación de archivo válida. Sin embargo, los nombres lógicos ocultos , definidos por DEFINE/TRANSLATION=CONCEALED, se pueden utilizar de esa manera; Estos directorios raíz se definen con un "." en la especificación del directorio, por lo tanto

$ DEFINE/TRANS=OCULTAR DISCO PRINCIPAL$USUARIOS:[ nombre de usuario .]

permitiría HOME:[DIR]FILEser utilizado. Más comunes son las lógicas simples que apuntan a directorios específicos asociados con algún software de aplicación que puede estar ubicado en cualquier disco o directorio. Por lo tanto, el ABC_EXE lógico puede apuntar a un directorio de programas ejecutables para la aplicación ABC y ABC_TEMP puede apuntar a un directorio de archivos temporales para esa misma aplicación y este directorio puede estar en el mismo disco y en el mismo árbol de directorios que ABC_EXE o podría estar en algún lugar de otro disco (y en un árbol de directorios diferente).

De manera similar a Unix, VMS define varios canales de entrada y salida estándar a los que se accede a través de los nombres lógicos SYS$INPUT, SYS$OUTPUTy . [1]SYS$ERRORSYS$COMMAND

Los nombres lógicos no tienen un equivalente cercano en los sistemas operativos POSIX. Se parecen a las variables de entorno de Unix , excepto que son expandidas por el sistema de archivos, en lugar del shell de comandos o el programa de aplicación. Deben definirse antes de su uso, por lo que es común que se definan muchos nombres lógicos en el archivo de comando de inicio del sistema, así como en los archivos de comando de inicio de sesión del usuario. En VMS, los nombres lógicos pueden hacer referencia a otros nombres lógicos (hasta un límite de anidamiento predefinido de 10) y pueden contener listas de nombres para buscar un nombre de archivo existente. Algunos nombres lógicos a los que se hace referencia con frecuencia son:

El sistema operativo que no es DEC más cercano a soportar el concepto de nombres lógicos es AmigaOS , a través del ASSIGNcomando. El sistema operativo de disco de AmigaOS, AmigaDOS , que es una adaptación de TRIPOS , tiene cierto parecido con los sistemas operativos DEC. Por ejemplo, los nombres de los dispositivos físicos siguen un patrón como DF0: para el primer disquete, CDROM2: para la tercera unidad de CD-ROM, etc. Sin embargo, dado que el sistema puede arrancar desde cualquier unidad conectada, el sistema operativo crea la asignación SYS: para hacer referencia automáticamente al dispositivo de arranque utilizado. Otras asignaciones, LIBS:, PREFS:, C:, S:, et al. También se hacen, ellos mismos referenciados en SYS:. Por supuesto, los usuarios también pueden crear y destruir sus propias asignaciones.

E/S orientada a registros: servicios de gestión de registros

Record Management Services es la capa de E/S estructurada del sistema operativo VMS. RMS proporciona soporte integral de programas para administrar archivos estructurados , como archivos de bases de datos indexados y basados ​​en registros . El sistema de archivos VMS, junto con RMS, extiende el acceso a los archivos más allá de los simples flujos de bytes y permite soporte a nivel de sistema operativo para una variedad de tipos de archivos enriquecidos. Cada archivo en el sistema de archivos VMS puede considerarse como una base de datos que contiene una serie de registros , cada uno de los cuales tiene uno o más campos individuales . Un archivo de texto, por ejemplo, es una lista de registros (líneas) separados por un carácter de nueva línea. RMS es un ejemplo de un sistema de archivos orientado a registros .

Hay cuatro formatos de registro definidos por RMS:

Hay cuatro métodos de acceso a registros o métodos para recuperar registros existentes de archivos:

Diseño físico: la estructura en disco

A nivel de disco, ODS representa el sistema de archivos como una matriz de bloques , siendo un bloque 512 bytes contiguos en un disco físico ( volumen ). Los bloques de disco se asignan en clústeres (originalmente 3 bloques contiguos pero luego se aumentaron con tamaños de disco más grandes). Idealmente, un archivo en el disco será completamente contiguo, es decir, los bloques que contienen el archivo serán secuenciales, pero la fragmentación del disco a veces requerirá que el archivo esté ubicado en grupos no contiguos, en cuyo caso los fragmentos se denominan extensiones . Los discos se pueden combinar con otros discos para formar un conjunto de volúmenes y los archivos se pueden almacenar en cualquier lugar de ese conjunto de discos, pero los discos de mayor tamaño han reducido el uso de conjuntos de volúmenes porque la administración de un único disco físico es más sencilla.

Cada archivo en un disco (o conjunto de volúmenes) de Files-11 tiene una identificación de archivo única (FID), compuesta por tres números: el número de archivo (NUM), el número de secuencia del archivo (SEQ) y el número de volumen relativo (RVN). . El NUM indica en qué parte del INDEXF.SYSarchivo (ver más abajo) se encuentran los metadatos del archivo; la SEQ es un número de generación que aumenta cuando se elimina el archivo y se crea otro archivo reutilizando la misma entrada INDEXF.SYS (para que cualquier referencia pendiente al archivo antiguo no apunte accidentalmente al nuevo); y el RVN indica el número de volumen en el que se almacena el archivo cuando se utiliza un conjunto de volúmenes.

Directorios

El soporte estructural de un volumen ODS lo proporciona un archivo de directorio , un archivo especial que contiene una lista de nombres de archivos, números de versión de archivos y sus FID asociados, similar a los catálogos VSAM en MVS y directorios en sistemas de archivos Unix y NTFS . En la raíz de la estructura de directorios se encuentra el directorio de archivos maestro (MFD), el directorio raíz que contiene (directa o indirectamente) todos los archivos del volumen.


Este diagrama muestra un directorio de ejemplo que contiene 3 archivos y la forma en que cada nombre de archivo se asigna a la INDEXF.SYSentrada (cada entrada INDEXF contiene más información; aquí solo se muestran los primeros elementos).

El directorio de archivos maestros

En el nivel superior de un sistema de archivos ODS se encuentra el directorio de archivos maestro (MFD), que contiene todos los archivos del directorio de nivel superior (incluido él mismo) y varios archivos del sistema utilizados para almacenar información del sistema de archivos. En los volúmenes ODS-1, se utiliza una estructura de directorios de dos niveles: cada código de identificación de usuario (UIC) tiene un directorio de archivos de usuario (UFD) asociado, del formato [GROUP.USER]. En ODS-2 y volúmenes posteriores, el diseño de directorios bajo MFD es de formato libre, sujeto a un límite en el anidamiento de directorios (8 niveles en ODS-2 e ilimitado en ODS-5). En conjuntos de varios volúmenes, el MFD siempre se almacena en el primer volumen y contiene los subdirectorios de todos los volúmenes.

Los siguientes archivos del sistema están presentes en el ODS MFD:

Tenga en cuenta que la implementación del sistema de archivos en sí no hace referencia a estos archivos por su nombre, sino por sus ID de archivo, que siempre tienen los mismos valores. Por lo tanto, INDEXF.SYS es siempre el archivo con NUM = 1 y SEQ = 1.

Archivo de índice: INDEXF.SYS

El archivo de índice contiene la información más básica sobre un conjunto de volúmenes de Files-11.

Existen dos organizaciones de INDEXF.SYS, la organización tradicional y la organización utilizada en discos con GPT.SYS; con las estructuras de la tabla de particiones GUID (GPT).

Con la organización tradicional, el bloque 1 es el bloque de arranque , que contiene la ubicación de la imagen de arranque principal , utilizada para cargar el sistema operativo VMS. Este siempre se encuentra en el bloque lógico 0 del disco, para que el firmware del hardware pueda leerlo. Este bloque siempre está presente, incluso en volúmenes que no son del sistema (que no son de arranque).

Después del bloque de arranque está el bloque de inicio principal . Contiene el nombre del volumen , la ubicación de las extensiones que comprenden el resto del archivo de índice, la UIC del propietario del volumen y la información de protección del volumen . Normalmente hay varias copias adicionales del bloque de inicio, conocidos como bloques de inicio secundarios , para permitir la recuperación del volumen en caso de pérdida o daño.

En los discos con GPT.SYS, GPT.SYS contiene el equivalente del bloque de inicio (conocido como Master Boot Record (MBR)) y no hay ningún bloque de inicio principal. Todos los bloques de inicio presentes en un disco basado en GPT son bloques de inicio alternativos. Estas estructuras no están incluidas en INDEXF.SYS y los bloques del archivo INDEXF.SYS no se utilizan.

El resto del archivo de índice se compone de encabezados de archivo , que describen las extensiones asignadas a los archivos que residen en el volumen, y metadatos del archivo, como la UIC del propietario, las ACL y la información de protección. Cada archivo se describe mediante uno o más encabezados de archivo; puede ser necesario más de uno cuando un archivo tiene una gran cantidad de extensiones. El encabezado del archivo es un bloque de longitud fija, pero contiene secciones de longitud fija y variable:

Si es posible, las secciones de mapa y ACL del encabezado están contenidas completamente en el encabezado principal . Sin embargo, si la ACL es demasiado larga o el archivo contiene demasiadas extensiones, no habrá suficiente espacio en el encabezado principal para almacenarlas. En este caso, se asigna un encabezado de extensión para almacenar la información de desbordamiento.


Diseño del INDEXF.SYSencabezado.

El encabezado del archivo comienza con 4 desplazamientos ( IDOFFSET, MPOFFSETy ACOFFSET) ROFFSET. Dado que el tamaño de las áreas después del encabezado de longitud fija puede variar (como el mapa y las áreas ACL), se requieren compensaciones para ubicar estas áreas adicionales. Cada desplazamiento es el número de palabras de 16 bits desde el comienzo del encabezado del archivo hasta el comienzo de esa área.

Si el archivo requiere varios encabezados, el número de segmento de extensión ( SEGNUM) contiene el número de secuencia de este encabezado, comenzando en 0 en la primera entrada en INDEXF.SYS.

STRUCLEVcontiene el nivel de estructura actual (en el byte alto) y la versión (en el byte bajo) del sistema de archivos; ODS-2 es el nivel de estructura 2. Un aumento en el número de versión indica un cambio compatible con versiones anteriores que el software anterior puede ignorar; los cambios en el nivel de estructura en sí son incompatibles.

W_FID(que contiene tres valores: y FID_NUM, correspondientes al archivo, secuencia y número de volumen relativo) contiene el ID de este archivo; (nuevamente compuesto por tres valores) contiene la ubicación del siguiente encabezado de extensión, si lo hay. En ambos valores, el RVN se especifica como 0 para representar el volumen "actual" (0 normalmente no es un RVN válido).FID_SEQFID_RVNEXT_FID

FILECHARcontiene varias banderas que afectan cómo se maneja u organiza el archivo:

ACCMODEdescribe el nivel de privilegio en el que se debe ejecutar un proceso para poder acceder al archivo. VMS define cuatro niveles de privilegio: usuario, supervisor, ejecutivo y kernel. Cada tipo de acceso (lectura, escritura, ejecución y eliminación) está codificado como un entero de 2 bits.

FILEPROTcontiene la información de control de acceso discrecional para el archivo. Está dividido en 4 grupos de 4 bits cada uno: sistema, propietario, grupo y mundo. El bit 0 corresponde a acceso de lectura, 1 a escritura, 2 a ejecución y 3 a borrado. Configurar un bit niega un acceso particular a un grupo; borrarlo lo permite.

Si el encabezado del archivo es un encabezado de extensión, BACKLINKcontiene el ID del archivo del encabezado principal; de lo contrario, contiene el ID del archivo del directorio que contiene la entrada principal del archivo.

Otros archivos

El archivo de mapa de bits es responsable de almacenar información sobre el espacio utilizado y disponible en un volumen. Contiene el bloque de control de almacenamiento (SCB), que incluye información resumida que detalla ???, y el mapa de bits, una matriz de bits para indicar si un grupo de bloques en el disco está libre o asignado. En las primeras versiones de VMS, el clúster constaba de 3 bloques, pero a medida que el tamaño de los discos aumentó, también lo hizo el tamaño del clúster.
El archivo de bloques defectuosos contiene todos los bloques defectuosos conocidos en el volumen físico. El propósito es evitar que el sistema los asigne a archivos. Este archivo se usaba más en los primeros días, cuando los discos generalmente se fabricaban con más parches defectuosos en la superficie.
La lista de conjuntos de volúmenes se encuentra en el volumen 1 de un conjunto de volúmenes y contiene una lista de etiquetas de todos los volúmenes del conjunto y el nombre del volumen del conjunto.
Cuando un archivo en un conjunto de varios volúmenes cruza el límite de dos volúmenes constituyentes, el archivo de continuación se utiliza como encabezado de extensión y describe el volumen donde se puede encontrar el resto del archivo.
El archivo de cuota contiene información del uso de espacio en disco de cada UIC en un volumen. Contiene un registro para cada UIC con espacio asignado en un volumen, junto con información sobre cuánto espacio utiliza esa UIC. NOTA: La función CUOTA DE DISCO es opcional y el archivo solo existirá si la función alguna vez estuvo habilitada.
El perfil de seguridad del volumen contiene la UIC del propietario del volumen, la máscara de protección del volumen y su lista de control de acceso.
Este archivo superpone y protege las estructuras de disco MBR (Master Boot Record) y GPT (GUID Partitioning Table) utilizadas para y por el firmware compatible con la interfaz de firmware extensible . Este archivo se crea de forma predeterminada durante la inicialización del disco OpenVMS I64 y, opcionalmente, se crea (con INITIALIZE/GPT) en OpenVMS Alpha.

Ver también

Referencias

  1. ^ "Manual del usuario de OpenVMS" (PDF) . vmssoftware.com . VSI. Julio de 2020. Capítulo 14, Programación avanzada con DCL . Consultado el 9 de abril de 2021 .

Otras lecturas

enlaces externos