Files-11 est le système de fichiers utilisé dans les systèmes d'exploitation RSX-11 et OpenVMS de Digital Equipment Corporation . Il prend en charge les E/S orientées enregistrement , l'accès réseau à distance et le contrôle de version des fichiers . La couche ODS-1 d'origine est un système de fichiers plat ; la version ODS-2 est un système de fichiers hiérarchique , avec prise en charge des listes de contrôle d'accès .
Files-11 est similaire, mais nettement plus avancé, aux systèmes de fichiers utilisés dans les précédents systèmes d'exploitation de Digital Equipment Corporation tels que TOPS-20 et RSTS/E .
Histoire
Le système de fichiers natif d'OpenVMS est issu des anciens systèmes d'exploitation DEC et est similaire à bien des égards, tous deux ayant été conçus par Dave Cutler . Une différence majeure est la disposition des répertoires. Ces systèmes de fichiers fournissent tous une forme de structure de répertoire non hiérarchique rudimentaire, généralement basée sur l'attribution d'un répertoire par compte utilisateur. Sous RSTS/E, chaque compte utilisateur était représenté par deux nombres, une paire, et avait un répertoire associé. Les fichiers système spéciaux, tels que les exécutables de programmes et le système d'exploitation lui-même, étaient stockés dans le répertoire d'un compte système réservé. [project,programmer]
Bien que cela soit adapté aux systèmes PDP-11 , qui possédaient une capacité de stockage permanente limitée, les systèmes VAX avec des disques durs beaucoup plus grands nécessitaient une méthode de stockage de fichiers plus flexible : la disposition hiérarchique des répertoires en particulier, l'amélioration la plus notable de l'ODS-2.
Aperçu
« Files-11 » est le terme général pour cinq systèmes de fichiers distincts, connus sous le nom de niveaux 1 à 5 de structure sur disque (ODS).
ODS-1 est le système de fichiers plat utilisé par le système d'exploitation RSX-11, pris en charge par les anciens systèmes VMS pour la compatibilité RSX, mais jamais utilisé pour prendre en charge VMS lui-même ; il a été largement remplacé par ODS-2 et ODS-5.
ODS-2 est le système de fichiers VMS d'origine. Comparé à ODS-1, il s'agit d'un système de fichiers hiérarchique .
Bien que rarement désignés par leurs désignations de niveau ODS, ODS-3 et ODS-4 sont les supports Files-11 pour les systèmes de fichiers CD-ROM ISO 9660 et High Sierra Format , respectivement.
ODS-5 est une version étendue d'ODS-2 disponible sur les plates-formes Alpha , IA-64 et x86-64 qui ajoute la prise en charge des noms de fichiers préservant la casse avec des caractères non- ASCII et des améliorations à la prise en charge des répertoires hiérarchiques. Il était à l'origine destiné à la diffusion de fichiers sur Microsoft Windows ou d'autres systèmes non-VMS dans le cadre du projet « NT Affinity », mais il est également utilisé sur les disques utilisateur et les serveurs Internet .
Disposition du répertoire

Tous les fichiers et répertoires d'un système de fichiers Files-11 sont contenus dans un ou plusieurs répertoires parents , et éventuellement sous le répertoire racine, le répertoire de fichiers maître (voir ci-dessous). Le système de fichiers est donc organisé dans une structure de graphe acyclique dirigé ( DAG ).
Dans cet exemple ( voir à droite ), File 2il y a une entrée de répertoire sous Dir 2et Dir 3; il est « dans » les deux répertoires simultanément. Même s'il est supprimé de l'un, il existera toujours dans l'autre répertoire jusqu'à ce qu'il soit également supprimé de là. Ceci est similaire au concept de liens physiques sous UNIX , bien qu'il faille veiller à ce que le fichier ne soit pas réellement supprimé sur les disques qui ne sont pas configurés pour les liens physiques (disponible uniquement sur les disques ODS-5, et seulement si les liens physiques sont activés sur le disque).
Organisation et dénomination des disques
Un système VMS opérationnel a accès à un ou plusieurs disques en ligne, chacun contenant un système de fichiers complet et indépendant. Il s'agit soit d'un stockage local, soit, dans le cas d'un cluster, d'un stockage partagé avec des systèmes distants.

Dans une configuration de cluster OpenVMS, les disques non privés sont partagés entre tous les nœuds du cluster (voir figure 1) . Dans cette configuration, les deux disques système sont accessibles aux deux nœuds via le réseau, mais le disque privé n'est pas partagé : il est monté pour être utilisé uniquement par un utilisateur ou un processus particulier sur cette machine. L'accès aux fichiers d'un cluster est géré par le gestionnaire de verrouillage distribué OpenVMS, qui fait partie intégrante du système de fichiers.
Plusieurs disques peuvent être combinés pour former un seul grand disque logique ou un ensemble de volumes . Les disques peuvent également être automatiquement répliqués dans des ensembles fantômes pour la sécurité des données ou des performances de lecture plus rapides.
Un disque est identifié soit par son nom physique, soit (le plus souvent) par un nom logique défini par l'utilisateur. Par exemple, le périphérique de démarrage (disque système) peut avoir le nom physique $3$DKA100, mais il est généralement désigné par le nom logique SYS$SYSDEVICE.
Les systèmes de fichiers sur chaque disque (à l'exception de ODS-1) sont hiérarchiques. Un nom de fichier entièrement spécifié se compose d'un nom de nœud, d'un nom d'utilisateur et d'un mot de passe, d'un nom de périphérique, d'un répertoire, d'un nom de fichier, d'un type de fichier et d'un numéro de version, au format :
NODE"nom de compte mot de passe"::périphérique:[répertoire.sous-répertoire]nom de fichier.type;ver
Par exemple, [DIR1.DIR2.DIR3]FILE.EXTfait référence à la dernière version de FILE.EXT, sur le disque par défaut actuel, dans le répertoire [DIR1.DIR2.DIR3].
DIR1est un sous-répertoire du répertoire de fichiers maître (MFD), ou répertoire racine , et DIR2est un sous-répertoire de DIR1. Le MFD d'un disque est identifié par [000000].
La plupart des parties du nom de fichier peuvent être omises, auquel cas elles sont extraites de la spécification de fichier par défaut actuelle . La spécification de fichier par défaut remplace le concept de « répertoire actuel » dans d'autres systèmes d'exploitation en fournissant un ensemble de valeurs par défaut pour le nœud, le nom du périphérique et le répertoire. Tous les processus ont une spécification de fichier par défaut qui inclut le nom du disque et le répertoire, et la plupart des routines du système de fichiers VMS acceptent une spécification de fichier par défaut qui peut également inclure le type de fichier ; la TYPEcommande, par exemple, utilise par défaut « .LIS» comme type de fichier, donc la commande TYPE F, sans extension, tente d'ouvrir le fichier F.LIS.
Chaque fichier possède un numéro de version, qui est par défaut de 1 si aucune autre version du même nom de fichier n'est présente (sinon une version supérieure à la plus grande version). Chaque fois qu'un fichier est enregistré, plutôt que d'écraser la version existante, un nouveau fichier avec le même nom mais un numéro de version incrémenté est créé. Les anciennes versions peuvent être supprimées explicitement, avec la commande DELETEou la commande , ou éventuellement, les anciennes versions d'un fichier peuvent être supprimées automatiquement lorsque la limite de versionPURGE du fichier est atteinte (définie par ). Les anciennes versions ne sont donc pas écrasées, mais sont conservées sur le disque et peuvent être récupérées à tout moment. La limite architecturale des numéros de version est de 32767. Le comportement de contrôle de version est facilement contourné s'il n'est pas souhaité. En particulier, les fichiers qui sont directement mis à jour, comme les bases de données, ne créent pas de nouvelles versions à moins d'être explicitement programmés. SET FILE/VERSION_LIMIT
ODS-2 est limité à huit niveaux de sous-répertoires et uniquement aux noms alphanumériques en majuscules (plus le trait de soulignement, le tiret et le signe dollar) jusqu'à 39,39 caractères (39 pour le nom de fichier et 39 autres pour l'extension). ODS-5 étend le jeu de caractères aux lettres minuscules et à la plupart des autres caractères ASCII imprimables, ainsi qu'aux caractères ISO Latin-1 et Unicode , augmente la longueur maximale du nom de fichier et autorise des niveaux illimités de sous-répertoires. Lors de la construction d'un nom de chemin pour un fichier ODS-5 qui utilise des caractères non autorisés sous ODS-2, une syntaxe spéciale « ^ » est utilisée pour préserver la compatibilité ascendante ; le fichier « file.tar.gz;1» sur un disque ODS-5, par exemple, serait appelé « file^.tar.gz» — le nom du fichier est « file.tar» et l'extension est « .gz».
Sécurité des fichiers : protection et ACL
La sécurité des fichiers VMS est définie par deux mécanismes, le contrôle d'accès basé sur l'UIC et le contrôle d'accès basé sur l'ACL . Le contrôle d'accès UIC est basé sur le propriétaire du fichier et l'UIC, ou l'utilisateur, qui accède au fichier. L'accès est déterminé par quatre groupes d'autorisations :

- Système
- Propriétaire
- Groupe
- Monde
Et quatre éléments d’autorisation :
- Lire
- Écrire
- Exécuter
- Supprimer
L'accès « système » s'applique à tout utilisateur dont le code de groupe UIC est inférieur ou égal au SYSGENparamètre MAXSYSGROUP(généralement 8 ou 10 octal ) (par exemple l' SYSTEMutilisateur) ; « propriétaire » et « groupe » s'appliquent au propriétaire du fichier et au groupe d'utilisateurs de cet utilisateur, et « monde » s'applique à tout autre utilisateur. Il existe également un cinquième bit d'autorisation, « Contrôle », qui est utilisé pour déterminer l'accès aux métadonnées de modification du fichier telles que la protection. Ce groupe ne peut pas être défini explicitement ; il est toujours défini pour Système et Propriétaire, et jamais pour Groupe ou Monde.
Le contrôle d’accès basé sur l’UIC est également affecté par quatre privilèges système, qui permettent aux utilisateurs qui les détiennent de contourner les contrôles d’accès :
- BYPASS: l'utilisateur dispose implicitement d'un accès RWED à tous les fichiers, quelle que soit la protection des fichiers ;
- READALL: l'utilisateur a implicitement accès R à tous les fichiers ;
- SYSPRV: l'utilisateur peut accéder aux fichiers en fonction de la protection du système ;
- GRPPRV: l'utilisateur peut accéder aux fichiers en fonction de la protection du système si son groupe UIC correspond au groupe du fichier.
Les ACL permettent d'attribuer des privilèges supplémentaires en fonction d'un utilisateur ou d'un groupe. Par exemple, l'UIC d'un serveur Web peut se voir accorder un accès en lecture à tous les fichiers d'un répertoire particulier. Les ACL peuvent être marquées comme héritées , c'est-à-dire que l'ACL d'un fichier de répertoire s'applique à tous les fichiers qui se trouvent en dessous. Les ACL sont modifiées à l'aide de la EDIT/ACLcommande et prennent la forme de paires identifiant/accès. Par exemple, l'entrée ACL
(IDENTIFIANT=HTTP$SERVEUR,ACCÈS=LECTURE+EXÉCUTION)
permettrait à l'utilisateur HTTP$SERVERde lire et d'exécuter le fichier.
Noms logiques
Un nom logique est une variable système qui peut faire référence à un disque, un répertoire ou un fichier, ou contenir d'autres informations spécifiques au programme. Par exemple, le nom logique SYS$SYSDEVICEcontient le périphérique de démarrage du système. Un nom logique fait normalement référence à un seul répertoire ou disque, par exemple SYS$LOGIN: qui est le répertoire (ou les répertoires) de connexion (home) de l'utilisateur ; ces noms logiques ne peuvent pas être utilisés comme de vrais noms de disque, SYS$LOGIN:[DIR]FILEce n'est pas une spécification de fichier valide. Cependant, les noms logiques cachés , définis par DEFINE/TRANSLATION=CONCEALED, peuvent être utilisés de cette manière ; ces répertoires racine sont définis avec un "." de fin sur la spécification du répertoire, donc
$ DEFINE/TRANS=CONCEAL HOME DISK$USERS:[ nom d'utilisateur .]
permettrait HOME:[DIR]FILEd'être utilisé. Les logiques simples qui pointent vers des répertoires spécifiques associés à un logiciel d'application qui peuvent être situés sur n'importe quel disque ou répertoire sont plus courantes. Ainsi, la logique ABC_EXE peut pointer vers un répertoire de programmes exécutables pour l'application ABC et ABC_TEMP peut pointer vers un répertoire de fichiers temporaires pour cette même application et ce répertoire peut être sur le même disque et dans la même arborescence de répertoires que ABC_EXE ou peut être quelque part sur un autre disque (et dans une arborescence de répertoires différente).
De manière similaire à Unix, VMS définit plusieurs canaux d'entrée et de sortie standard auxquels on accède via les noms logiques SYS$INPUT, SYS$OUTPUTet . SYS$ERRORSYS$COMMAND
Les noms logiques n'ont pas d'équivalent proche dans les systèmes d'exploitation POSIX. Ils ressemblent aux variables d'environnement Unix , sauf qu'ils sont développés par le système de fichiers, au lieu du shell de commande ou du programme d'application. Ils doivent être définis avant utilisation, il est donc courant que de nombreux noms logiques soient définis dans le fichier de commandes de démarrage du système, ainsi que dans les fichiers de commandes de connexion utilisateur. Dans VMS, les noms logiques peuvent référencer d'autres noms logiques (jusqu'à une limite d'imbrication prédéfinie de 10) et peuvent contenir des listes de noms pour rechercher un nom de fichier existant. Voici quelques noms logiques fréquemment référencés :
| nom logique | signification |
|---|---|
| SYS$INPUT | entrée standard - utilisée de manière interactive, elle représente le clavier du terminal. Utilisée dans un fichier batch, elle lit les lignes du fichier batch non précédées d'un symbole $ ou spécifiées comme bloc d'entrée à l'aide de la DECKcommande. |
| SYS$OUTPUT | sortie standard - elle sera envoyée vers l'écran du terminal ou vers le fichier journal de commandes selon que le processus est interactif ou non. |
| SYS$ERROR | erreur standard - elle sera affichée sur l'écran du terminal ou dans le fichier journal des erreurs par lots selon que le processus est interactif ou non. |
| SYS$COMMAND | source des commandes du fichier batch. Il lira à partir du terminal ou du flux SYS$INPUT selon que le processus est interactif ou non. |
| TT | le terminal associé au processus |
| SYS$PRINT | l'imprimante ou la file d'attente d'impression par défaut |
| SYS$LOGIN | répertoire personnel pour chaque utilisateur |
| SYS$SCRATCH | dossier temporaire , répertoire pour les fichiers temporaires |
| SYS$SYSTEM | répertoire contenant la plupart des programmes système et quelques fichiers de données vitaux, tels que le fichier d'autorisation du système (comptes et mots de passe) |
| SYS$SHARE | bibliothèques d'exécution partagées, exécutables, etc. |
| SYS$LIBRARY | système et bibliothèques ajoutées |
Le système d'exploitation non-DEC le plus proche de la prise en charge du concept de noms logiques est AmigaOS , via la ASSIGNcommande . Le système d'exploitation de disque d'AmigaOS, AmigaDOS , qui est un portage de TRIPOS , présente une certaine ressemblance avec les systèmes d'exploitation DEC. Par exemple, les noms de périphériques physiques suivent un modèle comme DF0: pour la première disquette, CDROM2: pour le 3ème lecteur de CD-ROM, etc. Cependant, comme le système peut démarrer à partir de n'importe quel lecteur connecté, le système d'exploitation crée l'affectation SYS: pour référencer automatiquement le périphérique de démarrage utilisé. D'autres affectations, LIBS:, PREFS:, C:, S:, et al. sont également effectuées, elles-mêmes référencées à partir de SYS:. Les utilisateurs sont, bien sûr, autorisés à créer et à détruire leurs propres affectations également.
E/S orientées enregistrement : services de gestion des enregistrements
Record Management Services est la couche d'E/S structurée du système d'exploitation VMS. RMS fournit un support de programme complet pour la gestion des fichiers structurés , tels que les fichiers de base de données indexés et basés sur des enregistrements . Le système de fichiers VMS, en conjonction avec RMS, étend l'accès aux fichiers au-delà des simples flux d'octets et permet la prise en charge au niveau du système d'exploitation d'une variété de types de fichiers riches. Chaque fichier du système de fichiers VMS peut être considéré comme une base de données , contenant une série d' enregistrements , chacun d'eux comportant un ou plusieurs champs individuels. Un fichier texte, par exemple, est une liste d'enregistrements (lignes) séparés par un caractère de nouvelle ligne. RMS est un exemple de système de fichiers orienté enregistrement .
Il existe quatre formats d'enregistrement définis par RMS :
- Longueur fixe - tous les enregistrements du fichier ont la même longueur.
- Longueur variable : les enregistrements varient en longueur et chaque enregistrement est préfixé par un octet de comptage indiquant sa longueur.
- Longueur d'enregistrement variable avec contrôle de longueur fixe - les enregistrements varient en longueur, mais sont précédés d'un bloc de contrôle de longueur fixe.
- Flux - les enregistrements varient en longueur et chaque enregistrement est séparé du suivant par un caractère de terminaison. Un fichier texte est un exemple de fichier au format flux utilisant un saut de ligne ou un retour chariot pour séparer les enregistrements.
Il existe quatre méthodes d'accès aux enregistrements , ou méthodes permettant de récupérer les enregistrements existants à partir des fichiers :
- Accès séquentiel : en commençant par un enregistrement particulier, les enregistrements suivants sont récupérés dans l'ordre jusqu'à la fin du fichier.
- Accès au numéro d'enregistrement relatif : les enregistrements sont récupérés via un numéro d'enregistrement relatif au début du fichier.
- Accès à l'adresse du fichier d'enregistrement - les enregistrements sont récupérés directement par leur emplacement dans le fichier (RFA ou adresse du fichier d'enregistrement).
- Accès indexé : les enregistrements sont récupérés via une clé, sous une forme de mappage clé-valeur .
Disposition physique : la structure sur disque
Au niveau du disque, ODS représente le système de fichiers sous forme de tableau de blocs , un bloc étant de 512 octets contigus sur un disque physique ( volume ). Les blocs de disque sont attribués en clusters (à l'origine 3 blocs contigus, mais plus tard augmentés avec des tailles de disque plus grandes). Un fichier sur le disque sera idéalement entièrement contigu, c'est-à-dire que les blocs qui contiennent le fichier seront séquentiels, mais la fragmentation du disque nécessitera parfois que le fichier soit situé dans des clusters non contigus, auquel cas les fragments sont appelés étendues . Les disques peuvent être combinés avec d'autres disques pour former un ensemble de volumes et les fichiers peuvent être stockés n'importe où sur cet ensemble de disques, mais les tailles de disque plus grandes ont réduit l'utilisation d'ensembles de volumes car la gestion d'un seul disque physique est plus simple.
Chaque fichier sur un disque Files-11 (ou un ensemble de volumes) possède une identification de fichier unique (FID), composée de trois chiffres : le numéro de fichier (NUM), le numéro de séquence de fichier (SEQ) et le numéro de volume relatif (RVN). Le NUM indique où dans le INDEXF.SYSfichier (voir ci-dessous) se trouvent les métadonnées du fichier ; le SEQ est un numéro de génération qui augmente lorsque le fichier est supprimé et qu'un autre fichier est créé en réutilisant la même entrée INDEXF.SYS (de sorte que toute référence à l'ancien fichier ne pointe pas accidentellement vers le nouveau) ; et le RVN indique le numéro de volume sur lequel le fichier est stocké lors de l'utilisation d'un ensemble de volumes.
Répertoires
Le support structurel d'un volume ODS est fourni par un fichier répertoire , un fichier spécial contenant une liste de noms de fichiers, de numéros de version de fichiers et de leurs FID associés, similaire aux catalogues VSAM sur MVS et aux répertoires sur les systèmes de fichiers Unix et NTFS . À la racine de la structure du répertoire se trouve le répertoire de fichiers maître (MFD), le répertoire racine qui contient (directement ou indirectement) tous les fichiers du volume.

Ce diagramme montre un exemple de répertoire contenant 3 fichiers et la manière dont chaque nom de fichier est mappé à l' INDEXF.SYSentrée (chaque entrée INDEXF contient plus d'informations ; seuls les premiers éléments sont affichés ici).
Le répertoire des fichiers maîtres
Au niveau supérieur d'un système de fichiers ODS se trouve le répertoire de fichiers maître (MFD), qui contient tous les fichiers de répertoire de niveau supérieur (y compris lui-même) et plusieurs fichiers système utilisés pour stocker les informations du système de fichiers. Sur les volumes ODS-1, une structure de répertoire à deux niveaux est utilisée : chaque code d'identification d'utilisateur (UIC) est associé à un répertoire de fichiers utilisateur (UFD), de la forme [GROUP.USER]. Sur les volumes ODS-2 et ultérieurs, la disposition des répertoires sous le MFD est de forme libre, sous réserve d'une limite sur l'imbrication des répertoires (8 niveaux sur ODS-2 et illimité sur ODS-5). Sur les ensembles multivolumes, le MFD est toujours stocké sur le premier volume et contient les sous-répertoires de tous les volumes.
Les fichiers système suivants sont présents dans le MFD ODS :
- INDEXF.SYS;1—Fichier d'index
- BITMAP.SYS;1—Fichier bitmap de stockage
- BADBLK.SYS;1—Fichier de bloc défectueux
- 000000.DIR;1—Le fichier de répertoire MFD lui-même
- CORIMG.SYS;1—Fichier d'image de base
- VOLSET.SYS;1—Fichier de liste de volumes (ODS-2/5 uniquement)
- CONTIN.SYS;1—Fichier de continuation (ODS-2/5 uniquement)
- BACKUP.SYS;1—Fichier journal de sauvegarde (ODS-2/5 uniquement)
- BADLOG.SYS;1—Bloc défectueux en attente (ODS-2/5 uniquement)
- SECURITY.SYS;1—Profil de sécurité du volume (ODS-2/5 uniquement)
- QUOTA.SYS;1—Fichier de quotas (facultatif et disponible sous ODS-2/5 uniquement)
- GPT.SYS;1—Table de partitionnement GUID (GPT) (structures de démarrage OpenVMS I64 EFI, en option sur OpenVMS Alpha)
Notez que l'implémentation du système de fichiers elle-même ne fait pas référence à ces fichiers par leur nom, mais par leurs identifiants de fichier, qui ont toujours les mêmes valeurs. Ainsi, INDEXF.SYS est toujours le fichier avec NUM = 1 et SEQ = 1.
Fichier d'index : INDEXF.SYS
Le fichier d'index contient les informations les plus élémentaires sur un ensemble de volumes Files-11.
Il existe deux organisations d'INDEXF.SYS, l'organisation traditionnelle et l'organisation utilisée sur les disques avec GPT.SYS ; avec les structures GUID Partition Table (GPT).
Avec l'organisation traditionnelle, le bloc 1 est le bloc de démarrage , qui contient l'emplacement de l' image de démarrage primaire , utilisée pour charger le système d'exploitation VMS. Celui-ci est toujours situé au bloc logique 0 sur le disque, afin que le micrologiciel matériel puisse le lire. Ce bloc est toujours présent, même sur les volumes non système (non amorçables).
Après le bloc de démarrage se trouve le bloc d'accueil principal . Il contient le nom du volume , l'emplacement des extensions comprenant le reste du fichier d'index, l'UIC du propriétaire du volume et les informations de protection du volume . Il existe normalement plusieurs copies supplémentaires du bloc d'accueil, appelées blocs d'accueil secondaires , pour permettre la récupération du volume en cas de perte ou de dommage.
Sur les disques avec GPT.SYS, GPT.SYS contient l'équivalent du bloc de démarrage (appelé Master Boot Record (MBR)) et il n'y a pas de bloc de démarrage principal. Tous les blocs de démarrage présents sur un disque basé sur GPT sont des blocs de démarrage alternatifs. Ces structures ne sont pas incluses dans INDEXF.SYS et les blocs du fichier INDEXF.SYS ne sont pas utilisés.
Le reste du fichier d'index est composé d' en-têtes de fichier , qui décrivent les extensions allouées aux fichiers résidant sur le volume, et de métadonnées de fichier telles que l'UIC du propriétaire, les ACL et les informations de protection. Chaque fichier est décrit par un ou plusieurs en-têtes de fichier (plusieurs peuvent être nécessaires lorsqu'un fichier comporte un grand nombre d'extensions). L'en-tête de fichier est un bloc de longueur fixe, mais contient des sections de longueur fixe et variable :
- L' en-tête contient le NUM et le SEQ, les informations de protection (sécurité) et l'emplacement du reste de l'en-tête du fichier.
- La section ident contient les métadonnées comptables : le nom du fichier, les heures de création et de modification et l'heure de la dernière sauvegarde.
- La carte décrit les blocs de disque physique (étendues) correspondant à chaque bloc virtuel du fichier.
- La liste de contrôle d'accès contient les informations ACL pour le fichier.
- La zone réservée est un espace situé à la fin de l'en-tête du fichier qui n'est pas utilisé par le système d'exploitation. Elle peut être utilisée pour des informations spécifiques au client ou au fournisseur.
- Les deux derniers octets de l'en-tête sont une somme de contrôle des 255 mots précédents, pour vérifier la validité de l'en-tête.
Si possible, les sections map et ACL de l'en-tête sont entièrement contenues dans l' en-tête principal . Cependant, si l'ACL est trop longue ou si le fichier contient trop d'étendues, il n'y aura pas assez de place dans l'en-tête principal pour les stocker. Dans ce cas, un en-tête d'extension est alloué pour stocker les informations de débordement.

Disposition de l' INDEXF.SYSen-tête.
L'en-tête du fichier commence par 4 décalages ( IDOFFSET, et ). Étant donné que la taille des zones après l'en-tête de longueur fixe peut varier (comme les zones de mappage et de liste de contrôle d'accès), les décalages sont nécessaires pour localiser ces zones supplémentaires. Chaque décalage correspond au nombre de mots de 16 bits entre le début de l'en-tête du fichier et le début de cette zone. MPOFFSETACOFFSETROFFSET
Si le fichier nécessite plusieurs en-têtes, le numéro de segment d'extension ( SEGNUM) contient le numéro de séquence de cet en-tête, commençant à 0 dans la première entrée de INDEXF.SYS.
STRUCLEVcontient le niveau de structure actuel (dans l'octet haut) et la version (dans l'octet bas) du système de fichiers ; ODS-2 étant le niveau de structure 2. Une augmentation du numéro de version indique un changement rétrocompatible que les logiciels plus anciens peuvent ignorer ; les changements au niveau de la structure elle-même sont incompatibles.
W_FID(contenant trois valeurs : FID_NUM, FID_SEQet FID_RVN, correspondant au fichier, à la séquence et au numéro de volume relatif) contient l'ID de ce fichier ; EXT_FID(également composé de trois valeurs) contient l'emplacement de l'en-tête d'extension suivant, le cas échéant. Dans ces deux valeurs, le RVN est spécifié comme 0 pour représenter le volume « actuel » (0 n'est normalement pas un RVN valide).
FILECHARcontient plusieurs indicateurs qui affectent la manière dont le fichier est géré ou organisé :
- NOBACKUPprovoque l'ignorance de ce fichier lors de l'exécution d'une sauvegarde .
- WRITEBACKactive les écritures mises en cache (différées) dans le fichier.
- READCHECKprovoque que toutes les lectures du fichier soient effectuées deux fois et comparées pour garantir l'intégrité des données.
- WRITCHECKentraîne la vérification de toutes les écritures par une lecture et une comparaison ultérieures.
- CONTIGBoblige le système d'exploitation à tenter d'allouer du stockage pour le fichier de la manière la plus contiguë possible.
- LOCKEDest défini si le fichier est verrouillé en mode déverrouillage. Si ce paramètre est défini, cela indique que le fichier n'a pas été correctement fermé après sa dernière utilisation et que son contenu peut être incohérent.
- CONTIGindique que le fichier est stocké de manière contiguë sur le disque ; c'est-à-dire que chaque bloc virtuel est mappé au bloc logique (physique) , pour une certaine constante .
- BADACLest défini si le fichier a une liste de contrôle d'accès non valide.
- SPOOLest défini si le fichier est un fichier spool, tel qu'un fichier intermédiaire utilisé lors de l'impression.
- DIRECTORYest défini si le fichier est un répertoire.
- BADBLOCKest défini si le fichier contient des blocs défectueux.
- MARKDELest défini si le fichier a été marqué pour suppression, mais est toujours utilisé ; il sera supprimé une fois fermé par le dernier utilisateur.
- NOCHARGE, si défini, empêche l'espace utilisé par le fichier d'être prélevé sur le quota de stockage du propriétaire.
- ERASEprovoque l'écrasement du contenu du fichier lors de sa suppression.
ACCMODEdécrit le niveau de privilège auquel un processus doit être exécuté pour accéder au fichier. VMS définit quatre niveaux de privilèges : utilisateur, superviseur, exécutable et noyau. Chaque type d'accès (lecture, écriture, exécution et suppression) est codé sous la forme d'un entier de 2 bits.
FILEPROTcontient les informations de contrôle d'accès discrétionnaire pour le fichier. Il est divisé en 4 groupes de 4 bits chacun : système, propriétaire, groupe et monde. Le bit 0 correspond à l'accès en lecture, 1 à l'écriture, 2 à l'exécution et 3 à la suppression. La définition d'un bit interdit un accès particulier à un groupe ; sa suppression l'autorise.
Si l'en-tête de fichier est un en-tête d'extension, BACKLINKil contient l'ID de fichier de l'en-tête principal ; sinon, il contient l'ID de fichier du fichier de répertoire contenant l'entrée principale du fichier.
Autres fichiers
- Fichier bitmap de stockage :BITMAP.SYS
- Le fichier bitmap est chargé de stocker les informations concernant l'espace utilisé et disponible sur un volume. Il contient le bloc de contrôle de stockage (SCB), qui comprend des informations récapitulatives détaillant ???, et le bitmap, un tableau de bits indiquant si un groupe de blocs sur le disque est libre ou alloué. Dans les premières versions de VMS, le cluster comprenait 3 blocs, mais à mesure que la taille des disques a augmenté, la taille du cluster a également augmenté.
- Fichier de bloc défectueux :BADBLK.SYS
- Le fichier des blocs défectueux contient tous les blocs défectueux connus sur le volume physique. L'objectif est d'empêcher le système de les allouer à des fichiers. Ce fichier était davantage utilisé au début, lorsque les disques étaient généralement fabriqués avec davantage de correctifs défectueux à la surface.
- Fichier de liste de volumes définis :VOLSET.SYS
- La liste des ensembles de volumes se trouve sur le volume 1 d'un ensemble de volumes et contient une liste d'étiquettes de tous les volumes de l'ensemble, ainsi que le nom du volume de l'ensemble.
- Dossier de suite :CONTIN.SYS
- Lorsqu'un fichier d'un ensemble multivolume franchit la limite de deux volumes constitutifs, le fichier de continuation est utilisé comme en-tête d'extension et décrit le volume où le reste du fichier peut être trouvé.
- Fichier de quotas :QUOTA.SYS
- Le fichier de quota contient des informations sur l'utilisation de l'espace disque de chaque UIC sur un volume. Il contient un enregistrement pour chaque UIC avec de l'espace qui lui est alloué sur un volume, ainsi que des informations sur la quantité d'espace utilisée par cet UIC. REMARQUE : la fonctionnalité QUOTA DE DISQUE est facultative et le fichier n'existera que si la fonctionnalité a été activée.
- Profil de sécurité du volume :SECURITY.SYS
- Le profil de sécurité du volume contient l'UIC du propriétaire du volume, le masque de protection du volume et sa liste de contrôle d'accès.
- Table de partitionnement GUID :GPT.SYS
- Ce fichier recouvre et protège les structures de disque MBR (Master Boot Record) et GPT (GUID Partitioning Table) utilisées pour et par le micrologiciel compatible Extensible Firmware Interface . Ce fichier est créé par défaut lors de l'initialisation du disque OpenVMS I64 et est créé en option (avec INITIALIZE/GPT) sur OpenVMS Alpha.