IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - VMS - VMS



VMS

VMS ist das Betriebssystem der VAX von Digital Equipment Corporation (DEC).


Autor: Arnold Willerner (willemer)
Datum: 23-01-2002, 19:33:52
Referenzen: http://www.willemer.de/informatik/index.htm
Schwierigkeit: Fortgeschrittene
Ansichten: 3812x
Rating: 7 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Allgemeines

Nach dem Einloggen per Username und Passwort wird die Datei LOGIN.COM abgearbeitet. Hier werden Einstellungen und Prozesse abgestellt, die bei jedem Login ablaufen sollen. Die Abmeldung erfolgt durch den Befehl LOgout. Das eigene Passwort kann jederzeit mit SET PASSWORD geändert werden.

Dateinamen und Kommandos werden nicht nach Groß- und Kleinschreibung unterschieden. Die Kommandos können unter DCL soweit abgekürzt werden bis sie eindeutig sind. In der Aufzählung wird die minimale Kurzform durch Großbuchstaben angedeutet. LOgout sagt, dass man mindestens LO eingeben muss, um den Befehl anzusprechen, aber der vollständige Namen LOGOUT ist.
Hilfestellung

Der Befehl HELP listet Themen auf, zu denen Hilfetexte zur Verfügng stehen. Durch Eingabe eines "Topic" kann der entsprechende Hilfetext angezeigt werden. Man kann auch gleich das Topic beim Aufruf angeben.

HELP DIR

zeigt die Hilfetexte zum Befehl DIRectory.

Spezielle Tasten

Taste Wirkung
Ctrl-Y unterbricht die Ausführung eines Programms (Interrupt)
Ctrl-Z beendet die Eingabe und beendet das Programm regulär
Ctrl-S stoppt die Bildschirmausgabe
Ctrl-Q gibt die gestoppte Bildschirmausgabe wieder frei

DCL-Kommandos

Die Kommandosprache auf VMS heißt DCL (Digital Command Language). Die Kommandos bestehen i. A. aus einem Verb (Kommando), einem oder mehreren Objekten und Qualifizierer (Optionen). Letztere werden durch einen Schrägstrich gekennzeichnet.

Dateibezeichnung

Ein voller Dateiname unter VMS hat folgende Bestandteile:

Knoten::Device:[Verzeichnis.Subverzeichnis]
Dateiname.Typ;version

Knoten
Der Netzwerkknotenname des Zielrechners
Device
Das Device des Rechners, typischerweise eine Platte.
Verzeichnis.Subverzeichnis
Der Verzeichnisbaum, in dem die Datei residiert. Als Verzeichnistrenner dient der Punkt.
Dateiname
Der eigentlich Bezeichner der Datei
Typ
Diese Extension bezeichnet, welchen Typ diese Datei hat. Beispielsweise TXT für Text oder PAS für Pascalsourcen.
version
Eine neu angelegte Datei bekommt die Versionsnummer 1. Bei jeder Änderung wird eine Kopie gezogen, die durch eine um 1 erhöhte Versionsnummer erkennbar ist.
Dateimaske

Zeichen Bedeutung
* beliebige Zeichen beliebiger Anzahl
% exakt ein beliebiges Zeichen

Dateitypen

Extension Bedeutung
.COM editierbare Befehls- bzw. Kommandoprozedur, wird mit @ aufgerufen
.EXE lauffähiges Programm
.DIR Verzeichnis
.ORG Objektdatei. Produkt einer Compilierung

Verzeichniskommandos

Inhalt (DIR)

DIRectory Dateimaske

Aktuelles Verzeichnis

SHow DEFault
SET DEFault [Verzeichnisname]

Mit dem Befehl UP wird eine Verzeichnisebene höher gewechselt. Mit DOWN UNDER kann in das Verzeichnis UNDER gewechselt werden, wenn es sich an dieser Stelle des Verzeichnisbaums liegt.

Dateikommandos

Kopieren

COPy  Dateien   Ziel 
COPy  Dateien 

Ist kein Ziel angegeben, wird das aktuelle Verzeichnis verwendet. Einige Beispiele:

COPY   [USER1.TEXTE]*.TXT   *.TUS
kopiert alle Dateien aus dem Verzeichnis USER1.TEXTE, die vom Typ TXT sind, in das aktuelle Verzeichnis und gibt ihnen dabei den Typ TUS.
COPY/CONFIRM   [USER1.TEXTE]*.TXT
kopiert alle Dateien aus dem Verzeichnis USER1.TEXTE, die vom Typ TXT sind, in das aktuelle Verzeichnis und verlangt eine Bestätigung jeder Datei.

Umbenennen

REName  Quelle   Ziel 

Löschen

DELete  Dateien 

Alte Versionen löschen

PUrge

Bereinigt das Verzeichnis um alle alten Versionen.

Mit dem Qualifizierer /KEEP=n bleiben die letzten n Versionen erhalten.
Editor


Unter VMS gibt es edt, der standardmäßig in den Zeilenmodus geht. Daneben gibt es eve oder lse als bildschirmorientierte Editoren.
edt

Aufgerufen durch EDIT/EDT kann man mit CHANGE in den bildschirmorientierten Modus wechseln. Diesen Modus verläßt man mit Ctrl-Z. Hier gelten die folgenden Kommandos:

quit
Verlassen des Editors. Ist noch eine Änderung im Editor, fragt das Programm, ob man wirklich verlassen will. Das muss noch einmal mit Y bestätigt werden.
exit
Verlassen des Editors inklusive Sichern
write name
schreibt die Datei unter dem Namen name auf die Platte. wird kein Dateiname angegeben, wird der aktuelle Name verwendet.

eve (extensible versatile editor)

EVE wird per EDIT/TPU aufgerufen. Verlassen mit Ctrl-Z oder F10. Dabei wird ungefragt gesichert. Die Kommandozeile wird mit F4 erreicht. Die Kommandos des edt sind verwendbar.

lse (language sensitive editor)

Verlassen mit F16 oder Ctrl-Z. Dann erscheint eine Kommandozeile. Die Kommandos des edt zum Verlassen und Sichern gleichen denen des edt.
quit
Verlassen des Editors. Ist noch eine Änderung im Editor, fragt das Programm, ob man wirklich verlassen will. Das muss noch einmal mit Y bestätigt werden.
exit
Verlassen des Editors inklusive Sichern
write name
schreibt die Datei unter dem Namen name auf die Platte. wird kein Dateiname angegeben, wird der aktuelle Name verwendet.

Der Editor kann mit mehreren Fenstern arbeiten. Die folgenden Kommandos werden von der Befehlszeile aus gegeben, die man über Ctrl-Z erreicht:

split window n
teilt das Fenster in n Fenster auf
next window
wechselt in das nächste Fenster sobald Return gegeben wurde.
delete window
löscht das aktuell aktive Fenster
Die eigene Arbeitsumgebung

Symbole

Mit einer Zuweisung können Symbole definiert werden. Bei einem Gleichheitszeichen gilt das Symbol nur für den aktuellen Befehl, mit zwei Gleichheitszeichen global für die aktuelle Sitzung.

SHow SYMbol/ALL zeigt die definierten Symbole.
SHow SYMbol/GLOBAL/ALL zeigt alle globalen Symbole.

Ein Symbol kann auch wieder entfernt werden. Der Befehl zum Löschen des Symbols MURKS lautet beispielsweise:

DELete /SYMbol MURKS wenn das Symbol lokal war, oder
DELete /SYMbol/GLOBAL MURKS wenn es global war.

Die Datei LOGIN.COM

Damit man nicht alle Symbole jedesmal neu definieren muss, kann man sie in der Datei LOGIN.COM eintragen. Sie werden dann beim Einloggen automatisch definiert.
Benutzer und Prozesse

Um die eigene Benutzerumgebung anzuzeigen, wird der Befehl SHow PROCess verwendet. Er zeigt den Benutzernamen, den eingeloggten Rechner, die Prozess-ID und den Prozessnamen. Die Prozess-ID ist eine achtstellige Hexadezimalzahl und bezeichnet nicht ein einzelnes Programm, sondern die Sitzung. Es gibt weiter Informationen über das Terminal, die Priorität und das aktuelle Arbeitsverzeichnis.

SHow User
zeigt die Liste der anderen Benutzer des Systems
SHow MEMory
zeigt den Speicher
SHow SYStem
zeigt die aktuell laufenden Prozesse und die Auslastung des Systems
SHow NETWork
zeigt die Netzwerke, in denen der Rechner eingebettet ist
SHow TIme
zeigt Datum und Uhrzeit
Kommandoprozeduren

Kommandoprozeduren oder Batchfiles werden mit einem Editor erstellt und enthalten Befehle, die nacheinander abgearbeitet werden. Die Endung dieser Dateien ist beliebig, wird aber standardmäßig COM genannt. Der Aufruf einer Datei namens MACHWAS.COM erfolgt durch Eingabe von @MACHWAS.

Jede Befehlszeile, auch Leerzeilen müssen mit einem $-Zeichen beginnen. Ein Kommentar beginnt mit dem $-Zeichen gefolgt von einem !-Zeichen.
Operatoren

Allgemein
= Wertzuweisung
.NOT. logisches Nicht
.AND. logisches Und
.OR. logisches Oder
Zahlen Strings
+ Addition
- Subtraktion
* Multiplikation
/ Division
.EQ. Vergleich auf Gleichheit
.NE. Vergleich auf Ungleichheit
.GT. Vergleich auf größer
.GE. Vergleich auf größer oder gleich
.LT. Vergleich auf kleiner
.LE. Vergleich auf kleiner oder gleich
+ Konkatenation
- Reduktion
 
 
.EQS. Vergleich auf Gleichheit
.NES. Vergleich auf Ungleichheit
.GTS. Vergleich auf größer
.GES. Vergleich auf größer oder gleich
.LTS. Vergleich auf kleiner
.LES. Vergleich auf kleiner oder gleich


Ein- und Ausgabe

write sys$output "Hallo Welt"
read sys$output zahl
inquire zahl "Zahl eingeben"


Kontrollstrukturen

IF Bedingung THEN Anweisung1

IF Bedingung
THEN
Anweisungen1
ENDIF

IF Bedingung
THEN
Anweisungen1
ELSE 
Anweisungen2
ENDIF

Die Sprunganweisung GOTO braucht ein Label, dass durch einen Doppelpunkt am Ende definiert wird.

$ GOTO sonstwo
$
$ sonstwo:

Es können auch Unterprogramme geschrieben werden.

$CALL up1
$...
$EXIT
$up1: SUBROUTINE
$...
$ENDSUBROUTINE

Der CALL kann Parameterübergabe an die Subroutine durchführen.

$GOSUB up2
$...
$EXIT
$up2:
$...
$RETURN

Warteschlangen

Warteschlangen (Queue) dienen dazu, eine Aufgabe in den Hintergrund zu stellen und das Terminal wieder frei zu bekommen. Es werden Druckaufträge (PRINT) und Batchjobs (SUBMIT) in den Hintergrund gestellt.

PRINT mein.txt
Die Datei mein.txt wird in die Standarddruckschlange (SYS$PRINT) gestellt.
PRINT/QUEUE=LN03 mein.txt
Die Datei mein.txt wird in die Queue LN03 gestellt.
SUBMIT/AFTER=20:00 mein.com
Die Kommandodatei mein.com wird in die Standardwarteschlange (SYS$BATCH) gestellt und nach 20:00 Uhr ausgeführt.
SUBMIT/QUEUE=SCHNELL mein.com
Die Kommandodatei mein.com wird in die Warteschlange SCHNELL gestellt.
Mit SHow QUEUE kann man die Warteschlangen ansehen.

Literatur
Barthel, Ralf:
Das VMS-Buch. Düsseldorf (SYBEX), 1990.
Programmierung unter VMS

Entwicklerzyklus

lse hello.c
cc hello
link hello
run hello

Compiler

Aufruf Input-Endung Sprache
CC .C Programmiersprache C
/CHECK=(OVERFLOW, UNDERFLOW, BOUNDS)
führt zum Einbau von Code, der zur Laufzeit aktiviert wird.
/DEBUG
erstellt Symboltabellen, damit Variablen über ihre Namen ansprechbar sind.
LIBRARY

Bibliotheken werden von LIBRARY erzeugt und verwaltet. Durch Qualifizierer werden Aktionen und die Art der Bibliotheken gesteuert.
/OBJECT .OLB .OBJ Objekt-Modul Bibliothek
/SHARE .OLB .EXE shared Objekt-Modul Bibliothek
/TEXT .TLB .TXT Text Bibliothek
/HELP .HLB .HLP Help Bibliothek
/MACRO .MLB .MAR Macro Bibliothek
Die Grundfunktionen werden ebenfalls durch Qualifizierer gewählt.
/CREATE Anlegen einer Bibliothek
/INSERT Zu einer Bibliothek hinzufügen
/REPLACE ersetzen
/DELETE löschen
/LIST Inhalte der Bibliothek anzeigen
/EXTRACT extrahieren
Beispiele:
$LIBRARY/TEXT/CREATE MY_LIB
$LIBRARY/TEXT/INSERT MY_LIB POS.TXT
$LIBRARY/TEXT/REPLACE MY_LIB POS.TXT
$LIBRARY/TEXT/LIST=ausgabedatei MY_LIB
Linker

Der Aufruf LINK erzeugt aus den Eingabedateien (.OBJ und .LIB) eine ausführbare Programmdatei oder eine shared library. Die Endung ist immer .EXE.

Soll das Programm später mit dem Debugger analysiert werden, muss die Option /DEBUG angegeben werden.
Debugger

Voraussetzung für den Einsatz des Debuggers ist, dass der Code mit der Option /DEBUG compiliert und auch gebunden (LINK) wurde.
Procedure Calling Standard

Bei allen Sprachen auf VMS regelt die Norm die Parameterübergabe und Rückgabe bei Aufrufen innerhalb einer Sprache, bei Aufrufen in einer Mixed-Language Umgebung und beim Aufruf der Systemroutingen. VMS: Dateien

Dateiorganisation

sequentiell

Die Sätze liegen direkt hintereinander. Variable Sätze sind möglich.

relativ

  • Alle Sätze sind gleich lang.
  • Der Zugriff erfolgt über Satznummern
  • Schneller Zugriff
Die Beziehung zwischen Satznummer und Inhalt muss durch die Anwendung hergestellt werden.
indiziert

Eine Indexstruktur liegt in einer separaten Datei. Über diese Struktur wird auf die Datensätze verwiesen.

Satzformate

Sätze fester Länge sind in allen Organisationsformen möglich. Beim OPEN wird RECORD_TYPE=FIXED angegeben.

Sätze variabler Länge werden durch Längenbytes organisiert. Bei Platten sind dies 2 Bytes und bei Bändern 4 Bytes.

Völlig ohne Struktur sind die Streams, die durch Terminatoren (beispielsweise CR/LF) unterbrochen werden.

Zugriffsmethoden

sequentiell
bei allen Dateiorganisationsformen möglich.
direkt
Bei relativ organisierter Datei über die Satznummer. Gleiches funktioniert bei sequentiell organisierten Dateien mit fester Läge.
Schlüssel
setzt eine indizierte Organisation voraus. Man kann über den Primary Key oder Altenate Keys gehen. Unter RMS sind sie auch absteigend definierbar.


Das Filesystem RMS

Das RMS ist ein Teil des Betriebssystems.

Kontrollblöcke für Dateien und für Records.

FAB (File Access Block)
enthält Informationen über die Dateiorganisation, Satztyp, Allocation und Optionen (beispielsweise für das Sperren.
RAB (Record Access Block)
enthält Informationen über die Satzzugriff, I/O Buffer und Adresse von FAB.
XAB (Extended Attribute Block)
enthält Informationen über die Indexed Keys und die Sortierrichtung.
Die RMS Kontrollblöcke werden in den Programmiersprachen automatisch angelegt.
RMS Utilities

Informationen über RMS Dateien erhält man per DIR/FULL und mit dem Aufruf von DUMP.

$DUMP/HEADER datei
$DUMP/BLOCK=(START:n)
$DUMP/BLOCK=(START:n,END:m)
$DUMP/RECORD=(START:n)
$DUMP/RECORD=(START:n,END:m)

$ANALYSE/RMS_FILE/OUTPUT=datei

/IMAGE
/SUMMARY Zusammenfassung der untersuchten Datei
/STATISTIC ähnlich SUMMARY
/CHECK prüft die Integrität der Datei
/INTERACTIV Inhalte und Struktur interaktiv betrachten. Kommandos sind DOWN, UP und NEXT.


VMS Schutzmechanismen

Mit dem Befehl SHOW PROTECTION kann man den Standarddateischutz zeigen lassen. Er wird in die Klassen SYSTEM, OWNER, GROUP und WORLD unterteilt. Jede Klasse kann maximal vier Rechte haben. Das sind READ, WRITE, EXECUTE und DELETE.

SET PROTECTION=(S:RWE,O:RWED,G:R,W) HUHU.DAT
SET PROTECTION=(S:RWE,O:RWED,G:R,W) /DEFAULT

Während im ersten Beispiel der Datei HUHU.DAT die Rechte vergeben werden, werden im zweiten Befehl das Default vorgegeben.

[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04512
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0