Dateien-11 - Files-11
Files-11 ist das Dateisystem, das vom OpenVMS- Betriebssystem der Digital Equipment Corporation und (in einfacherer Form) vom älteren RSX-11 verwendet wird . Es ist ein hierarchisches Dateisystem mit Unterstützung für Access Control Lists , Rekord -orientierten I / O , Remote - Netzwerk Zugriff und Dateiversionsverwaltung .
Files-11 ähnelt den Dateisystemen, die in früheren Betriebssystemen der Digital Equipment Corporation wie TOPS-20 und RSTS / E verwendet wurden, ist jedoch wesentlich weiter fortgeschritten als diese .
Geschichte
Das native OpenVMS-Dateisystem stammt von älteren DEC-Betriebssystemen ab und ähnelt in vielerlei Hinsicht. Beide wurden von Dave Cutler entwickelt . Ein wesentlicher Unterschied ist das Layout der Verzeichnisse. Diese Dateisysteme stellten alle eine rudimentäre nicht hierarchische Verzeichnisstruktur bereit, die normalerweise auf der Zuweisung eines Verzeichnisses pro Benutzerkonto basiert. Unter RSTS / E wurde jedes Benutzerkonto durch zwei Zahlen, ein Paar, dargestellt und einem Verzeichnis zugeordnet. Spezielle Systemdateien wie ausführbare Programmdateien und das Betriebssystem selbst wurden im Verzeichnis eines reservierten Systemkontos gespeichert.
[project,programmer]
Während dies für PDP-11- Systeme mit begrenzter permanenter Speicherkapazität geeignet war , erforderten VAX- Systeme mit viel größeren Festplatten eine flexiblere Methode zur Dateispeicherung: insbesondere das hierarchische Verzeichnislayout, die bemerkenswerteste Verbesserung bei ODS-2.
Überblick
"Files-11" ist der allgemeine Begriff für fünf separate Dateisysteme, die als ODS-Ebenen (On-Disk Structure) 1 bis 5 bezeichnet werden.
ODS-1 ist das vom RSX-11-Betriebssystem verwendete Flat-File-System , das von älteren VMS- Systemen aus Gründen der RSX-Kompatibilität unterstützt wird, jedoch niemals zur Unterstützung von VMS selbst verwendet wird. es wurde weitgehend durch ODS-2 und ODS-5 ersetzt.
ODS-2 ist das Standard-VMS-Dateisystem und bleibt das am häufigsten verwendete Dateisystem für Systemfestplatten (die Festplatte, auf der das Betriebssystem installiert ist).
Obwohl ODS-3 und ODS-4 nur selten in den Bezeichnungen der ODS- Ebene erwähnt werden, unterstützen sie die Dateisysteme CD-ROM ISO 9660 bzw. High Sierra Format .
ODS-5 ist eine erweiterte Version von ODS-2 auf Alpha und IA-64 - Plattformen , die Unterstützung für fügt Fall erhaltDateiNamen mit Nicht - ASCII - Zeichen und Verbesserungen der hierarchischen Verzeichnisunterstützung. Es war ursprünglich für die Bereitstellung von Dateien für Microsoft Windows oder andere Nicht-VMS-Systeme im Rahmen des NT-Affinitätsprojekts vorgesehen , wird jedoch auch auf Benutzerfestplatten und Internet- Servern verwendet.
Verzeichnislayout
Alle Dateien und Verzeichnisse in einem Files-11-Dateisystem befinden sich in einem oder mehreren übergeordneten Verzeichnissen und schließlich im Stammverzeichnis, dem Stammdateiverzeichnis (siehe unten). Das Dateisystem ist daher in einer DAG- Struktur ( Directed Acyclic Graph ) organisiert.
In diesem Beispiel ( siehe rechts ) File 2 befindet sich unter Dir 2 und und ein Verzeichniseintrag Dir 3 . Es befindet sich in beiden Verzeichnissen gleichzeitig. Selbst wenn es aus einem Verzeichnis entfernt würde, würde es im anderen Verzeichnis noch vorhanden sein, bis es ebenfalls von dort entfernt wird. Dies ist vergleichbar mit dem Konzept der harten Links in UNIX , obwohl darauf zu achten , dass die Datei aufgenommen werden muss , wird nicht tatsächlich auf Datenträger gelöscht , die für harte Links nicht eingerichtet werden (nur bei ODS-5 Laufwerken und nur dann , wenn die Scheibe Hardlinks aktiviert).
Festplattenorganisation und Benennung
Ein betriebsbereites VMS-System hat Zugriff auf eine oder mehrere Online-Festplatten, von denen jede ein vollständiges, unabhängiges Dateisystem enthält. Hierbei handelt es sich entweder um lokalen Speicher oder im Fall eines Clusters um Speicher, der für Remote-Systeme freigegeben ist.
In einer OpenVMS-Clusterkonfiguration werden nicht private Festplatten von allen Knoten im Cluster gemeinsam genutzt (siehe Abbildung 1) . In dieser Konfiguration können beide Knoten über das Netzwerk auf die beiden Systemfestplatten zugreifen, die private Festplatte wird jedoch nicht gemeinsam genutzt: Sie wird nur zur Verwendung durch einen bestimmten Benutzer oder Prozess auf diesem Computer bereitgestellt. Der Zugriff auf Dateien in einem Cluster wird vom OpenVMS Distributed Lock Manager verwaltet, einem integralen Bestandteil des Dateisystems.
Mehrere Festplatten können zu einer einzigen großen logischen Festplatte oder einem Volume-Set kombiniert werden . Festplatten können aus Gründen der Datensicherheit oder einer schnelleren Leseleistung auch automatisch in Schattensätze repliziert werden .
Eine Festplatte wird entweder durch ihren physischen Namen oder (häufiger) durch einen benutzerdefinierten logischen Namen identifiziert. Beispielsweise kann das Startgerät (Systemfestplatte) den physischen Namen haben $3$DKA100 , wird jedoch im Allgemeinen mit dem logischen Namen bezeichnet SYS$SYSDEVICE .
Dateisysteme auf jeder Festplatte (mit Ausnahme von ODS-1) sind hierarchisch. Ein vollständig angegebener Dateiname besteht aus einem Knotennamen, einem Benutzernamen und einem Kennwort, einem Gerätenamen, einem Verzeichnis, einem Dateinamen, einem Dateityp und einer Versionsnummer im folgenden Format:
NODE"accountname password"::device:[directory.subdirectory]filename.type;ver
[DIR1.DIR2.DIR3]FILE.EXT Bezieht sich beispielsweise auf die neueste Version von FILE.EXT auf der aktuellen Standardfestplatte im Verzeichnis [DIR1.DIR2.DIR3] .
DIR1 ist ein Unterverzeichnis des Master-Dateiverzeichnisses (MFD) oder des Stammverzeichnisses und DIR2 ein Unterverzeichnis von DIR1 . Das MFD einer Festplatte wird durch identifiziert [000000] .
Die meisten Teile des Dateinamens können weggelassen werden. In diesem Fall werden sie aus der aktuellen Standarddateispezifikation übernommen . Die Standarddateispezifikation ersetzt das Konzept des "aktuellen Verzeichnisses" in anderen Betriebssystemen, indem eine Reihe von Standardeinstellungen für Knoten, Gerätename und Verzeichnis bereitgestellt werden. Alle Prozesse haben eine Standard - Dateispezifikation , den Plattennamen und das Verzeichnis enthält, und die meisten VMS - Dateisystem - Routinen eine Standard - Dateispezifikation übernehmen , die auch den Dateityp umfassen können; Der TYPE Befehl verwendet beispielsweise standardmäßig " .LIS " als Dateityp, sodass der Befehl TYPE F ohne Erweiterung versucht, die Datei zu öffnen F.LIS .
Jede Datei hat eine Versionsnummer, die standardmäßig 1 ist, wenn keine anderen Versionen desselben Dateinamens vorhanden sind (andernfalls eine höher als die größte Version). Jedes Mal, wenn eine Datei gespeichert wird, anstatt die vorhandene Version zu überschreiben, wird eine neue Datei mit demselben Namen, aber einer inkrementierten Versionsnummer erstellt. Alte Versionen können explizit gelöscht werden, mit der DELETE oder dem PURGE Befehl, oder gegebenenfalls ältere Versionen einer Datei können automatisch gelöscht werden , wenn das Dateiversionslimit erreicht ist (Satz von SET FILE/VERSION_LIMIT ). Alte Versionen werden daher nicht überschrieben, sondern auf der Festplatte gespeichert und können jederzeit abgerufen werden. Die architektonische Beschränkung für Versionsnummern liegt bei 32767. Das Versionsverhalten kann leicht überschrieben werden, wenn es unerwünscht ist. Insbesondere Dateien, die direkt aktualisiert werden, wie z. B. Datenbanken, erstellen keine neuen Versionen, es sei denn, sie sind explizit programmiert.
ODS-2 ist auf acht Ebenen von Unterverzeichnissen beschränkt und nur alphanumerische Großbuchstaben (plus Unterstrich, Bindestrich und Dollarzeichen) mit bis zu 39,39 Zeichen (39 für den Dateinamen und weitere 39 für die Erweiterung). ODS-5 erweitert den Zeichensatz auf Kleinbuchstaben und die meisten anderen druckbaren ASCII-Zeichen sowie ISO Latin-1- und Unicode- Zeichen, erhöht die maximale Dateinamenlänge und ermöglicht unbegrenzte Ebenen von Unterverzeichnissen. Beim Erstellen eines Pfadnamens für eine ODS-5-Datei, die Zeichen verwendet, die unter ODS-2 nicht zulässig sind, wird eine spezielle "^" - Syntax verwendet, um die Abwärtskompatibilität zu gewährleisten. Die Datei " file.tar.gz;1 " auf einer ODS-5-Festplatte wird beispielsweise als " file^.tar.gz " bezeichnet - der Dateiname lautet " file.tar ", und die Erweiterung lautet " .gz ".
Dateisicherheit: Schutz und ACLs
Die Sicherheit von VMS-Dateien wird durch zwei Mechanismen definiert: UIC-basierte Zugriffssteuerung und ACL- basierte Zugriffssteuerung. Die UIC-Zugriffssteuerung basiert auf dem Eigentümer der Datei und der UIC oder dem Benutzer, die auf die Datei zugreifen. Der Zugriff wird durch vier Gruppen von Berechtigungen bestimmt:
- System
- Inhaber
- Gruppe
- Welt
Und vier Berechtigungsbits:
- Lesen
- Schreiben
- Ausführen
- Löschen
Der "System" -Zugriff gilt für jeden Benutzer, dessen UIC-Gruppencode kleiner oder gleich dem SYSGEN Parameter ist MAXSYSGROUP (normalerweise 8 oder 10 Oktal ) (zum Beispiel der SYSTEM Benutzer). "Eigentümer" und "Gruppe" gelten für den Eigentümer der Datei und die Benutzergruppe dieses Benutzers, und "Welt" gilt für jeden anderen Benutzer. Es gibt auch ein fünftes Berechtigungsbit, "Control", mit dem der Zugriff auf Änderungsdateimetadaten wie z. B. den Schutz bestimmt wird. Diese Gruppe kann nicht explizit festgelegt werden. Es ist immer für System und Eigentümer festgelegt und niemals für Gruppe oder Welt.
UIC-basierte Zugriffskontrolle wird auch durch vier System betroffen Privilegien , die Benutzer es ihnen ermöglichen , halten Zugriffskontrollen außer Kraft zu setzen:
- BYPASS : Benutzer hat implizit RWED-Zugriff auf alle Dateien, unabhängig vom Dateischutz;
- READALL : Benutzer hat implizit R-Zugriff auf alle Dateien;
- SYSPRV : Der Benutzer kann auf Dateien zugreifen, die auf dem Systemschutz basieren.
- GRPPRV : Der Benutzer kann auf Dateien zugreifen, die auf dem Systemschutz basieren, wenn seine UIC-Gruppe mit der Dateigruppe übereinstimmt.
Mit ACLs können zusätzliche Berechtigungen benutzer- oder gruppenspezifisch zugewiesen werden. Beispielsweise könnte der UIC eines Webservers Lesezugriff auf alle Dateien in einem bestimmten Verzeichnis gewährt werden. ACLs können als geerbt markiert werden , wobei die ACL einer Verzeichnisdatei für alle darunter liegenden Dateien gilt. ACLs werden mit dem EDIT/ACL Befehl geändert und haben die Form von Bezeichner / Zugriffspaaren. Zum Beispiel der ACL-Eintrag
(IDENTIFIER=HTTP$SERVER,ACCESS=READ+EXECUTE)
würde es dem Benutzer ermöglichen HTTP$SERVER , die Datei zu lesen und auszuführen.
Logische Namen
Ein logischer Name ist eine Systemvariable, die auf eine Festplatte, ein Verzeichnis oder eine Datei verweisen oder andere programmspezifische Informationen enthalten kann. Beispielsweise SYS$SYSDEVICE enthält die Logik das Startgerät des Systems. Ein logischer Name bezieht sich normalerweise auf ein einzelnes Verzeichnis oder eine einzelne Festplatte, z. B. SYS$LOGIN: das Anmeldeverzeichnis (oder die Verzeichnisse) des Benutzers. Diese Logiken können nicht als echte Datenträgernamen verwendet werden. Dies SYS$LOGIN:[DIR]FILE ist keine gültige Dateispezifikation. Auf diese Weise können jedoch verborgene logische Namen verwendet werden, die durch definiert DEFINE/TRANSLATION=CONCEALED sind. Diese verwurzelten Verzeichnisse werden mit einem abschließenden "." auf der Verzeichnisspezifikation, daher
$ DEFINE/TRANS=CONCEAL HOME DISK$USERS:[username.]
würde erlauben HOME:[DIR]FILE , verwendet zu werden. Häufiger sind einfache Logiken, die auf bestimmte Verzeichnisse verweisen, die mit einer Anwendungssoftware verknüpft sind, die sich auf einer beliebigen Festplatte oder einem beliebigen Verzeichnis befinden kann. Daher kann logisches ABC_EXE auf ein Verzeichnis ausführbarer Programme für die Anwendung ABC verweisen, und ABC_TEMP kann auf ein Verzeichnis temporärer Dateien für dieselbe Anwendung verweisen, und dieses Verzeichnis kann sich auf derselben Festplatte und in demselben Verzeichnisbaum wie ABC_EXE befinden oder sich irgendwo auf befinden eine andere Festplatte (und in einem anderen Verzeichnisbaum).
In einer ähnlichen Weise wie Unix, definiert VMS mehrere Standards Ein- und Ausgangskanäle , die durch die logischen Namen zugegriffen werden SYS$INPUT , SYS$OUTPUT , SYS$ERROR und SYS$COMMAND .
Logische Namen haben in POSIX-Betriebssystemen keine enge Entsprechung. Sie ähneln Unix- Umgebungsvariablen , außer dass sie vom Dateisystem anstelle der Befehlsshell oder des Anwendungsprogramms erweitert werden. Sie müssen vor der Verwendung definiert werden. Daher werden häufig viele logische Namen in der Systemstartbefehlsdatei sowie in den Benutzeranmeldebefehlsdateien definiert. In VMS können logische Namen auf andere logische Namen verweisen (bis zu einer vordefinierten Verschachtelungsgrenze von 10) und Listen mit Namen enthalten, um nach einem vorhandenen Dateinamen zu suchen. Einige häufig referenzierte logische Namen sind:
| logischer Name | Bedeutung |
|---|---|
| SYS$INPUT |
Standardeingabe - interaktiv verwendet, repräsentiert dies die Terminal-Tastatur. In einer Batchdatei verwendet, werden Batchdateizeilen gelesen, denen kein $ -Symbol vorangestellt ist oder die mit dem DECK Befehl als Eingabedeck angegeben wurden .
|
| SYS$OUTPUT | Standardausgabe - Je nachdem, ob der Prozess interaktiv ist oder nicht, wird er an die Terminalanzeige oder die Stapelprotokolldatei ausgegeben. |
| SYS$ERROR | Standardfehler - Je nachdem, ob der Prozess interaktiv ist oder nicht, wird er an die Terminalanzeige oder die Stapelfehlerprotokolldatei ausgegeben. |
| SYS$COMMAND | Quelle der Batchdatei-Befehle. Es wird vom Terminal oder vom SYS $ INPUT-Stream gelesen, je nachdem, ob der Prozess interaktiv ist oder nicht. |
| TT | das dem Prozess zugeordnete Terminal |
| SYS$PRINT | der Standarddrucker oder die Standardwarteschlange |
| SYS$LOGIN | Home-Verzeichnis für jeden Benutzer |
| SYS$SCRATCH | temporärer Ordner , Verzeichnis für temporäre Dateien |
| SYS$SYSTEM | Verzeichnis mit den meisten Systemprogrammen und einigen wichtigen Datendateien, z. B. der Systemautorisierungsdatei (Konten und Kennwörter) |
| SYS$SHARE | gemeinsam genutzte Laufzeitbibliotheken, ausführbare Dateien usw. |
| SYS$LIBRARY | System und hinzugefügte Bibliotheken |
Das nächstgelegene Nicht-DEC-Betriebssystem, das das Konzept der logischen Namen unterstützt, ist AmigaOS über den ASSIGN Befehl. Das AmigaOS-Festplattenbetriebssystem AmigaDOS , ein Port von TRIPOS , ähnelt in gewisser Weise den DEC-Betriebssystemen. Beispielsweise folgen physische Gerätenamen einem Muster wie DF0: für die erste Diskette CDROM2: für das dritte CD-ROM-Laufwerk usw. Da das System jedoch von jedem angeschlossenen Laufwerk booten kann, erstellt das Betriebssystem die Zuweisung SYS :. um automatisch auf das verwendete Startgerät zu verweisen. Andere Aufgaben, LIBS:, PREFS:, C:, S:, et al. werden auch gemacht, selbst von SYS referenziert:. Benutzer dürfen natürlich auch ihre eigenen Aufgaben erstellen und zerstören.
Datensatzorientierte E / A: Datensatzverwaltungsdienste
Record Management Services ist die strukturierte E / A- Schicht des VMS-Betriebssystems. RMS bietet umfassende Programmunterstützung für die Verwaltung strukturierter Dateien , z. B. datensatzbasierter und indizierter Datenbankdateien . Das VMS-Dateisystem erweitert in Verbindung mit RMS den Dateizugriff über einfache Byte- Streams hinaus und ermöglicht die Unterstützung auf Betriebssystemebene für eine Vielzahl umfangreicher Dateitypen. Jede Datei im VMS-Dateisystem kann als Datenbank betrachtet werden , die eine Reihe von Datensätzen enthält , von denen jeder eines oder mehrere einzelne Felder enthält . Eine Textdatei ist beispielsweise eine Liste von Datensätzen (Zeilen), die durch ein Zeilenumbruchzeichen getrennt sind. RMS ist ein Beispiel für ein datensatzorientiertes Dateisystem .
Es gibt vier von RMS definierte Datensatzformate :
- Feste Länge - Alle Datensätze in der Datei haben dieselbe Länge.
- Variable Länge - Datensätze variieren in der Länge, und jedem Datensatz wird ein Zählbyte vorangestellt, das seine Länge angibt.
- Variable Datensatzlänge mit Steuerung mit fester Länge - Datensätze variieren in der Länge, jedoch wird ein Steuerblock mit fester Länge vorangestellt.
- Stream - Datensatz variiert in der Länge und jeder Datensatz ist durch ein Abschlusszeichen vom nächsten getrennt. Eine Textdatei ist ein Beispiel für eine Datei im Stream-Format, bei der Zeilenvorschub oder Wagenrücklauf für separate Datensätze verwendet werden.
Es gibt vier Datensatzzugriffsmethoden oder Methoden zum Abrufen vorhandener Datensätze aus Dateien:
- Sequentieller Zugriff - Beginnend mit einem bestimmten Datensatz werden nachfolgende Datensätze in der Reihenfolge bis zum Ende der Datei abgerufen.
- Relative Treffer Nummer Zugang - Datensätze werden über einen Datensatz abgerufen Anzahl relativ zum Anfang der Datei.
- Zugriff auf Datensatzadresse - Datensätze werden direkt anhand ihres Speicherorts in der Datei (RFA oder Record File Address) abgerufen.
- Indizierter Zugriff - Datensätze werden über einen Schlüssel in Form einer Schlüsselwertzuordnung abgerufen .
Physisches Layout: die On-Disk-Struktur
Auf der Festplattenebene stellt ODS das Dateisystem als Array von Blöcken dar , wobei ein Block 512 zusammenhängende Bytes auf einer physischen Festplatte ( Volume ) umfasst. Plattenblöcke werden in Clustern zugewiesen (ursprünglich 3 zusammenhängende Blöcke, später jedoch mit größeren Plattengrößen vergrößert). Eine Datei auf der Festplatte ist idealerweise vollständig zusammenhängend, dh die Blöcke, die die Datei enthalten, sind sequentiell. Bei der Festplattenfragmentierung muss sich die Datei jedoch manchmal in nicht zusammenhängenden Clustern befinden. In diesem Fall werden die Fragmente als "Extents" bezeichnet. Festplatten können mit anderen Festplatten kombiniert werden, um einen Volume-Satz und Dateien zu bilden, die an einer beliebigen Stelle auf dieser Festplatte gespeichert sind. Größere Festplatten haben jedoch die Verwendung von Volume-Sätzen reduziert, da die Verwaltung einer einzelnen physischen Festplatte einfacher ist.
Jede Datei auf einem Files-11 Festplatte (oder Volumensatz) eine eindeutige Dateiidentifikation (FID), bestehend aus drei Zahlen: die Dateinummer (NUM), das Dateifolgenummer (SEQ), und die relativen Volumennummer (RVN) . Die NUM gibt an, wo sich in der INDEXF.SYS Datei (siehe unten) die Metadaten für die Datei befinden. Die SEQ ist eine Generierungsnummer, die erhöht wird, wenn die Datei gelöscht und eine andere Datei erstellt wird, wobei derselbe INDEXF.SYS-Eintrag wiederverwendet wird (sodass baumelnde Verweise auf die alte Datei nicht versehentlich auf die neue verweisen). und die RVN gibt die Datenträgernummer an, auf der die Datei gespeichert ist, wenn ein Datenträgersatz verwendet wird.
Verzeichnisse
Die strukturelle Unterstützung eines ODS-Volumes wird durch eine Verzeichnisdatei bereitgestellt - eine spezielle Datei, die eine Liste von Dateinamen, Dateiversionsnummern und den zugehörigen FIDs enthält, ähnlich wie VSAM-Kataloge in MVS . Das Stammverzeichnis der Verzeichnisstruktur ist das Stammdateiverzeichnis (MFD), das Stammverzeichnis, das (direkt oder indirekt) jede Datei auf dem Volume enthält.

Dieses Diagramm zeigt ein Beispielverzeichnis mit 3 Dateien und die Art und Weise, wie jeder Dateiname dem INDEXF.SYS Eintrag zugeordnet ist (jeder INDEXF-Eintrag enthält weitere Informationen; hier werden nur die ersten Elemente angezeigt).
Das Stammdateiverzeichnis
Auf der obersten Ebene eines ODS-Dateisystems befindet sich das Master-Dateiverzeichnis (MFD), das alle Verzeichnisdateien der obersten Ebene (einschließlich sich selbst) sowie mehrere Systemdateien enthält, die zum Speichern von Dateisysteminformationen verwendet werden. Auf ODS-1-Volumes wird eine zweistufige Verzeichnisstruktur verwendet: Jedem Benutzeridentifikationscode (UIC) ist ein Benutzerdateiverzeichnis (UFD) des Formulars zugeordnet [GROUP.USER] . Bei ODS-2 und späteren Volumes ist das Layout der Verzeichnisse unter dem MFD frei, vorbehaltlich einer Beschränkung der Verschachtelung von Verzeichnissen (8 Ebenen bei ODS-2 und unbegrenzt bei ODS-5). Bei Sets mit mehreren Volumes wird das MFD immer auf dem ersten Volume gespeichert und enthält die Unterverzeichnisse aller Volumes.
Die folgenden Systemdateien sind im ODS MFD vorhanden:
- INDEXF.SYS;1 - Indexdatei
- BITMAP.SYS;1 - Bitmap-Datei speichern
- BADBLK.SYS;1 - Schlechte Blockdatei
- 000000.DIR;1 - Die MFD-Verzeichnisdatei selbst
- CORIMG.SYS;1 - Kernbilddatei
- VOLSET.SYS;1 —Volume Set Listendatei (nur ODS-2/5)
- CONTIN.SYS;1 - Fortsetzungsdatei (nur ODS-2/5)
- BACKUP.SYS;1 - Sicherungsprotokolldatei (nur ODS-2/5)
- BADLOG.SYS;1 - Ausstehender fehlerhafter Block (nur ODS-2/5)
- SECURITY.SYS;1 - Volumensicherheitsprofil (nur ODS-2/5)
- QUOTA.SYS;1 —Quota-Datei (optional und nur unter ODS-2/5 verfügbar)
- GPT.SYS;1 —GUID Partitioning Table (GPT) (OpenVMS I64 EFI-Startstrukturen, optional unter OpenVMS Alpha)
Beachten Sie, dass die Dateisystemimplementierung selbst nicht auf diese Dateien nach Namen verweist, sondern nach ihren Datei-IDs, die immer dieselben Werte haben. Somit ist INDEXF.SYS immer die Datei mit NUM = 1 und SEQ = 1.
Indexdatei: INDEXF.SYS
Die Indexdatei enthält die grundlegendsten Informationen zu einem Volume-Set "Files-11".
Es gibt zwei Organisationen von INDEXF.SYS, die traditionelle Organisation und die Organisation, die auf Datenträgern mit GPT.SYS verwendet wird. mit den GUID Partition Table (GPT) -Strukturen.
Bei der herkömmlichen Organisation ist Block 1 der Bootblock , der den Speicherort des primären Bootstrap-Images enthält , das zum Laden des VMS-Betriebssystems verwendet wird. Dieser befindet sich immer im logischen Block 0 auf der Festplatte, damit die Hardware-Firmware ihn lesen kann. Dieser Block ist immer vorhanden, auch auf Nicht-System-Volumes (nicht bootfähig).
Nach dem Bootblock ist der primäre Homeblock . Dieser enthält den Datenträgernamen , den Speicherort der Speicherbereiche, aus denen der Rest der Indexdatei besteht, die UIC des Datenträgerbesitzers und die Datenträgerschutzinformationen . Normalerweise gibt es mehrere zusätzliche Kopien des Home-Blocks, die als sekundäre Home-Blöcke bezeichnet werden , um die Wiederherstellung des Volumes zu ermöglichen, wenn es verloren geht oder beschädigt wird.
Auf Festplatten mit GPT.SYS enthält GPT.SYS das Äquivalent des Bootblocks (als Master Boot Record (MBR) bezeichnet), und es gibt keinen primären Homeblock. Alle auf einer GPT-basierten Festplatte vorhandenen Home-Blöcke sind alternative Home-Blöcke. Diese Strukturen sind in INDEXF.SYS nicht enthalten, und die Blöcke der Datei INDEXF.SYS werden nicht verwendet.
Der Rest der Indexdatei besteht aus Dateikopfzeilen , die die den auf dem Volume befindlichen Dateien zugewiesenen Speicherbereiche beschreiben, sowie Dateimetadaten wie der Eigentümer-UIC, ACLs und Schutzinformationen. Jede Datei wird durch einen oder mehrere Datei-Header beschrieben. Wenn eine Datei eine große Anzahl von Speicherbereichen hat, kann mehr als einer erforderlich sein. Der Dateikopf ist ein Block mit fester Länge, enthält jedoch sowohl Abschnitte mit fester als auch mit variabler Länge:
- Der Header enthält die NUM und SEQ, die Schutzinformationen (Sicherheitsinformationen) und den Speicherort des restlichen Dateikopfs.
- Der Abschnitt ident enthält die Buchhaltungsmetadaten: den Dateinamen, die Erstellungs- und Änderungszeiten sowie den Zeitpunkt der letzten Sicherung.
- Die Zuordnung beschreibt, welche physischen Festplattenblöcke (Extents) jedem virtuellen Block der Datei zugeordnet sind.
- Die Zugriffssteuerungsliste enthält die ACL-Informationen für die Datei.
- Der reservierte Bereich ist der Speicherplatz am Ende des Dateikopfs, der vom Betriebssystem nicht verwendet wird. Dies kann von für kunden- oder herstellerspezifische Informationen verwendet werden.
- Die letzten zwei Bytes des Headers sind eine Prüfsumme der vorherigen 255 Wörter, um die Gültigkeit des Headers zu überprüfen.
Wenn möglich, sind die Map- und ACL-Abschnitte des Headers vollständig im primären Header enthalten . Wenn die ACL jedoch zu lang ist oder die Datei zu viele Speicherbereiche enthält, ist im primären Header nicht genügend Speicherplatz vorhanden, um sie zu speichern. In diesem Fall wird ein Erweiterungsheader zum Speichern der Überlaufinformationen zugewiesen.
Der Datei - Header beginnt mit 4 - Offsets ( IDOFFSET , MPOFFSET , ACOFFSET und ROFFSET ). Da die Größe der Bereiche nach dem Header mit fester Länge variieren kann (z. B. die Karten- und ACL-Bereiche), sind die Offsets erforderlich, um diese zusätzlichen Bereiche zu lokalisieren. Jeder Versatz ist die Anzahl der 16-Bit-Wörter vom Anfang des Dateikopfs bis zum Anfang dieses Bereichs.
Wenn für die Datei mehrere Header erforderlich sind, enthält die Erweiterungssegmentnummer ( SEGNUM ) die Sequenznummer dieses Headers, beginnend mit 0 im ersten Eintrag in INDEXF.SYS.
STRUCLEV enthält die aktuelle Strukturebene (im High-Byte) und die Version (im Low-Byte) des Dateisystems; ODS-2 ist Strukturstufe 2. Eine Erhöhung der Versionsnummer weist auf eine abwärtskompatible Änderung hin, die ältere Software möglicherweise ignoriert. Änderungen in der Strukturebene selbst sind nicht kompatibel.
W_FID (mit drei Werten: FID_NUM , FID_SEQ und FID_RVN , entsprechend die Datei - Sequenz und relative Bandnummer) enthält die ID der Datei; EXT_FID (wiederum bestehend aus drei Werten) enthält die Position des nächsten Erweiterungsheaders, falls vorhanden. In diesen beiden Werten wird die RVN als 0 angegeben, um das "aktuelle" Volumen darzustellen (0 ist normalerweise keine gültige RVN).
FILECHAR enthält mehrere Flags, die sich auf die Behandlung oder Organisation der Datei auswirken:
- NOBACKUP bewirkt, dass diese Datei ignoriert wird, wenn eine Sicherung ausgeführt wird.
- WRITEBACK Aktiviert zwischengespeicherte (verzögerte) Schreibvorgänge in die Datei.
- READCHECK bewirkt, dass alle Lesevorgänge der Datei zweimal durchgeführt und verglichen werden, um die Datenintegrität sicherzustellen.
- WRITCHECK führt dazu, dass alle Schreibvorgänge durch anschließendes Lesen und Vergleichen überprüft werden.
- CONTIGB Das Betriebssystem versucht, den Speicher für die Datei so zusammenhängend wie möglich zuzuweisen.
- LOCKED wird gesetzt, wenn die Datei deaktiviert ist. Wenn festgelegt, bedeutet dies, dass die Datei nach ihrer letzten Verwendung nicht ordnungsgemäß geschlossen wurde und der Inhalt möglicherweise inkonsistent ist.
- CONTIG gibt an, dass die Datei zusammenhängend auf der Festplatte gespeichert ist; Das heißt, jeder virtuelle Block wird für eine Konstante dem logischen (physischen) Block zugeordnet .
- BADACL wird festgelegt, wenn die Datei eine ungültige Zugriffssteuerungsliste enthält.
- SPOOL wird festgelegt, wenn es sich bei der Datei um eine Spooldatei handelt, z. B. eine Zwischendatei, die beim Drucken verwendet wird.
- DIRECTORY wird festgelegt, wenn die Datei ein Verzeichnis ist.
- BADBLOCK wird gesetzt, wenn die Datei fehlerhafte Blöcke enthält.
- MARKDEL wird festgelegt, wenn die Datei zum Löschen markiert wurde, aber noch verwendet wird; Es wird gelöscht, sobald es vom letzten Benutzer geschlossen wurde.
- NOCHARGE Wenn diese Option festgelegt ist, wird der von der Datei verwendete Speicherplatz nicht aus dem Speicherkontingent des Eigentümers entnommen.
- ERASE bewirkt, dass der Inhalt der Datei beim Löschen überschrieben wird.
ACCMODE beschreibt die Berechtigungsstufe, auf der ein Prozess ausgeführt werden muss, um auf die Datei zugreifen zu können. VMS definiert vier Berechtigungsstufen: Benutzer, Supervisor, Exec und Kernel. Jede Art von Zugriff - Lesen, Schreiben, Ausführen und Löschen - wird als 2-Bit-Ganzzahl codiert.
FILEPROT enthält die diskretionären Zugriffssteuerungsinformationen für die Datei. Es ist in 4 Gruppen zu je 4 Bits unterteilt: System, Eigentümer, Gruppe und Welt. Bit 0 entspricht dem Lesezugriff, 1 dem Schreiben, 2 dem Ausführen und 3 dem Löschen. Durch das Setzen eines Bits wird ein bestimmter Zugriff auf eine Gruppe verweigert. Löschen erlaubt es.
Wenn der Dateikopf ein Erweiterungskopf ist, BACKLINK enthält er die Datei-ID des primären Kopfes. Andernfalls enthält es die Datei-ID der Verzeichnisdatei, die den primären Eintrag für die Datei enthält.
Andere Dateien
- Speicher-Bitmap-Datei: BITMAP.SYS
- Die Bitmap-Datei ist für das Speichern von Informationen zu verwendetem und verfügbarem Speicherplatz auf einem Volume verantwortlich. Es enthält den Speichersteuerblock (SCB), der zusammenfassende Informationen enthält, und die Bitmap, ein Array von Bits, um anzuzeigen, ob ein Blockcluster auf der Festplatte frei oder zugeordnet ist. In früheren Versionen von VMS umfasste der Cluster 3 Blöcke, aber mit zunehmender Festplattengröße nahm auch die Clustergröße zu.
- Ungültige Blockdatei: BADBLK.SYS
- Die fehlerhafte Blockdatei enthält alle bekannten fehlerhaften Blöcke auf dem physischen Volume. Der Zweck besteht darin, zu verhindern, dass das System sie Dateien zuordnet. Diese Datei wurde in den frühen Tagen häufiger verwendet, als Festplatten normalerweise mit mehr fehlerhaften Flecken auf der Oberfläche hergestellt wurden.
- Volume Set Listendatei: VOLSET.SYS
- Die Volume-Set-Liste befindet sich auf Volume 1 eines Volume-Sets und enthält eine Liste der Beschriftungen aller Volumes im Set sowie den Volume-Namen des Sets.
- Fortsetzung Datei: CONTIN.SYS
- Wenn eine Datei in einem Set mit mehreren Volumes die Grenze zweier konstituierender Volumes überschreitet, wird die Fortsetzungsdatei als Erweiterungsheader verwendet und beschreibt das Volume, auf dem sich der Rest der Datei befindet.
- Kontingentdatei: QUOTA.SYS
- Die Kontingentdatei enthält Informationen zur Speicherplatznutzung der einzelnen UICs auf einem Volume. Es enthält einen Datensatz für jede UIC, dem Speicherplatz auf einem Volume zugewiesen ist, sowie Informationen darüber, wie viel Speicherplatz von dieser UIC verwendet wird. HINWEIS: Die DISK QUOTA-Funktion ist optional und die Datei ist nur vorhanden, wenn die Funktion jemals aktiviert wurde.
- Volume-Sicherheitsprofil: SECURITY.SYS
- Das Volume-Sicherheitsprofil enthält die Eigentümer-UIC des Volumes, die Volume-Schutzmaske und die Zugriffssteuerungsliste.
- GUID-Partitionierungstabelle: GPT.SYS
- Diese Datei überlagert und schützt die MBR-Festplattenstrukturen (Master Boot Record) und GPT-Festplattenstrukturen (GUID Partitioning Table), die für und von der mit der Extensible Firmware Interface kompatiblen Firmware verwendet werden. Diese Datei wird standardmäßig während der OpenVMS I64-Festplatteninitialisierung erstellt und optional (mit INITIALIZE / GPT) unter OpenVMS Alpha erstellt.
Siehe auch
- Vergleich von Dateisystemen
- NTFS - Hat viele strukturelle und Metadaten-Ähnlichkeiten mit Files-11 und ist mit ziemlicher Sicherheit konzeptionell davon abgeleitet.
Verweise
Weiterführende Literatur
-
Andrew C. Goldstein, VAX / VMS-Softwareentwicklung (1985-01-11). "Strukturspezifikation für Dateien-11 auf der Festplatte". Zitierjournal benötigt
|journal=( Hilfe ) - Hewlett-Packard Development Company, LP (September 2003). "Anhang A: Datenträgerstruktur von Files-11". OpenVMS System Manager-Handbuch, Band 2: Optimieren, Überwachen und komplexe Systeme .
- Kirby McCoy (1990). Interna des VMS-Dateisystems . Bedford, Mass.: Digital Press. ISBN 1-55558-056-4 .
