new stuff
This commit is contained in:
parent
fdfceff613
commit
866d6ff102
|
|
@ -0,0 +1,308 @@
|
||||||
|
.ds RH "DCP-Ueberblick
|
||||||
|
.bp
|
||||||
|
.NH
|
||||||
|
Ueberblick zum Betriebssystem DCP
|
||||||
|
.LP
|
||||||
|
Der Kern des Betriebssystems DCP umfasst folgende Komponenten:
|
||||||
|
.DS L
|
||||||
|
ROM-BIOS physische Geraetetreiber, Eigentest, Boot
|
||||||
|
BIO.COM logische Geraetetreiber
|
||||||
|
DOS.COM logisches E/A-System
|
||||||
|
COMMAND.COM Kommandointerpreter
|
||||||
|
.DE
|
||||||
|
Fuer den Anwender sind vor allem die DOS-Funktionen bedeutsam. Diese
|
||||||
|
Funktionen werden durch das logische E/A-System und die logischen
|
||||||
|
Geraetetreiber realisiert und stellen gegenueber den ROM-BIOS-Funktionen
|
||||||
|
eine hoehere Schnittstelle dar. Die logischen Geraetetreiber rufen
|
||||||
|
ihrerseits die Routinen des ROM-BIOS. Man unterscheidet CP/M-(SCP-) und
|
||||||
|
UNIX-(WEGA/MUTOS-) kompatible Systemrufe. Somit findet der Anwender, der bisher
|
||||||
|
eines dieser Systeme oder ein dazu kompatibles Betriebssystem, wie zum
|
||||||
|
Beispiel SCP oder WEGA nutzte, sofort eine bekannte Schnittstelle vor.
|
||||||
|
Aufgabe des Kommandosystems ist es, die Kommunikation zwischen Bediener und
|
||||||
|
Betriebssystem zu realisieren. Wesentliches Merkmal des Betriebssystems ist
|
||||||
|
seine Flexibilitaet, das heisst die leichte Anpassung an bestimmte
|
||||||
|
Bedingungen. Ein wesentliches Kennzeichen dafuer ist, dass weitere Treiber
|
||||||
|
fuer eine erweiterte Peripherie eingebracht werden koennen. Diese Treiber
|
||||||
|
koennen auch vom Anwender geschrieben werden. Sie werden als Programm
|
||||||
|
geladen und koennen als resident erklaert werden, so dass sie im Speicher
|
||||||
|
verbleiben und fuer folgende Programme verfuegbar sind.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Kodes
|
||||||
|
.LP
|
||||||
|
Fuer die Darstellung von Zeichen wird der "Erweiterte KDI-7-Kode" verwendet.
|
||||||
|
Dieser Kode benutzt alle 8 Bit, so dass 256 Zeichen dargestellt werden
|
||||||
|
koennen. Das sind die lateinischen Buchstaben, Ziffern und Sonderzeichen.
|
||||||
|
.LP
|
||||||
|
Die Erweiterungen betreffen folgende Zeichengruppen:
|
||||||
|
.IP -
|
||||||
|
Grafiksymbole (Striche, Doppelstriche, Ecken, ausgefuellte
|
||||||
|
Positionen u.a.). Diese Grafiksymbole erlauben bereits eine
|
||||||
|
ansprechende grafische Arbeit (z.B. Blockschaltbilder).
|
||||||
|
.IP -
|
||||||
|
Sonderzeichen einiger europaeischer Sprachen. In der deutschen
|
||||||
|
Sprache sind dies die Umlaute und sz
|
||||||
|
.IP -
|
||||||
|
griechisches Alphabet
|
||||||
|
.IP -
|
||||||
|
mathematische Symbole
|
||||||
|
.IP -
|
||||||
|
sonstige Symbole
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Dateisysteme
|
||||||
|
.LP
|
||||||
|
Der Bereich der Datenspeicherung eines Datentraegers wird in gleich grosse
|
||||||
|
Bereiche, genannt Cluster, die einen oder mehrere Sektoren umfassen,
|
||||||
|
eingeteilt. Die Zuordnung der Cluster zu den Dateien wird in einer
|
||||||
|
Dateizuordnungstabelle, genannt FAT (file allocation table), vorgenommen.
|
||||||
|
Aus dieser Tabelle sind auch die unbelegten Cluster und damit die freie
|
||||||
|
Kapazitaet eines Datentraegers erkennbar. Wird eine Datei geloescht, werden
|
||||||
|
die von ihr belegten Cluster wieder freigegeben. Beim Anlegen und Erweitern
|
||||||
|
einer Datei werden freie Cluster aus der Dateizuordnungstabelle ermittelt und
|
||||||
|
der Datei zugeordnet. Jeder Datentraeger verfuegt ueber ein
|
||||||
|
Stammverzeichnis. Das Stammverzeichnis einer Diskette kann bis zu 112
|
||||||
|
Eintraege aufnehmen, das Stammverzeichnis einer Festplatte bis zu 512
|
||||||
|
Eintraege. Jeder Eintrag kann eine Datei oder ein Unterverzeichnis
|
||||||
|
beschreiben. Ein Eintrag ist 32 Byte lang und enthaelt die Datei bzw.
|
||||||
|
Unterverzeichnisbezeichnung, die Dateigroesse in Byte und weitere Angaben.
|
||||||
|
In einem Unterverzeichnis koennen Eintragungen weiterer Verzeichnisse
|
||||||
|
stehen. Die Tiefe der sich so ergebenden Baumstruktur ist nicht begrenzt.
|
||||||
|
Unterverzeichnisse koennen beliebig viele Eintragungen aufnehmen. Sie werden
|
||||||
|
wie Dateien verwaltet, denen zur Aufnahme weiterer Eintragungen Sektoren auf
|
||||||
|
der Diskette zugewiesen werden. Das Aufteilen der Dateien in Gruppen
|
||||||
|
verringert die Suchzeit nach Verzeichniseintragungen und verbessert die
|
||||||
|
Uebersichtlichkeit. Soll der Zugriff auf eine Datei realisiert werden, muss
|
||||||
|
der Pfadname der Datei angegeben werden. Dieser Pfadname ist ausgehend vom
|
||||||
|
Stammverzeichnis eine Folge von Verzeichnisnamen, die durch Backslash
|
||||||
|
(\\) getrennt werden und mit dem Dateinamen enden. Lautet der
|
||||||
|
Pfadname z.B.:
|
||||||
|
|
||||||
|
c:\\verzeichnis1\\verzeichnis2\\datei
|
||||||
|
|
||||||
|
so beginnt die Suche im Stammverzeichnis des Laufwerkes C nach
|
||||||
|
"verzeichnis1", sucht dort nach "verzeichnis2" und schliesslich in diesem
|
||||||
|
"datei". Das erste Backslash steht fuer das Stammverzeichnis
|
||||||
|
(vollstaendiger Pfadname). Innerhalb eines Laufwerkes ist ein Verzeichnis
|
||||||
|
das aktuelle Verzeichnis. Nach dem Systemstart ist das erste das
|
||||||
|
Stammverzeichnis. Der Wechsel des aktuellen Verzeichnisses kann mit
|
||||||
|
einer DOS-Funktion oder dem Kommando CD vorgenommen werden.
|
||||||
|
Der Pfadname kann auch vom
|
||||||
|
aktuellen Verzeichnis aus angegeben werden. In diesem Fall beginnt der
|
||||||
|
Pfadname nicht mit einem Backslash (unvollstaendiger Pfadname).
|
||||||
|
Waere das aktuelle Verzeichnis im vorangenannten Beispiel "verzeichnis1",
|
||||||
|
darf zum Zugriff auf "datei" nur
|
||||||
|
|
||||||
|
verzeichnis2\\datei
|
||||||
|
|
||||||
|
angegeben werden. Um die Eingabe ausfuehrbarer Programme zu vereinfachen,
|
||||||
|
gibt es die Moeglichkeit, Suchpfade zu definieren, in denen nach dem
|
||||||
|
ausfuehrbaren Programm gesucht wird. Diese Suchpfade werden ueber das
|
||||||
|
Kommando "PATH" festgelegt. Damit man dieses Kommando nicht nach jedem
|
||||||
|
Systemanlauf neu eingeben muss, kann es in die AUTOEXEC.BAT geschrieben
|
||||||
|
werden. Diese Stapeldatei wird automatisch bei jedem Systemanlauf
|
||||||
|
abgearbeitet.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Systemanlauf
|
||||||
|
.LP
|
||||||
|
Vom ROM-BIOS wird der Bootrecord gelesen. Der Bootrecord ist der
|
||||||
|
erste Satz einer Diskette oder Festplatte. Das Lesen des Systems kann von
|
||||||
|
der Diskette oder der Festplatte erfolgen. Das im Bootrecord enthaltene
|
||||||
|
Programm liest die Datei der logischen Geraetetreiber (BIOS.COM). Von diesem
|
||||||
|
Programm wird u.a. eine Datei (CONFIG.SYS) gelesen. Diese Datei ist
|
||||||
|
wesentlich fuer die Grundeinstellung verschiedener Betriebssystemoptionen.
|
||||||
|
Dazu gehoeren:
|
||||||
|
.IP -
|
||||||
|
die Auswahl der landesspezifischen Darstellung des Datums,
|
||||||
|
der Uhrzeit und der Waehrung
|
||||||
|
.IP -
|
||||||
|
das Einstellen der Pufferanzahl fuer Ein- und Ausgabeoperationen
|
||||||
|
.IP -
|
||||||
|
die Anzahl der gleichzeitig eroeffneten Dateien
|
||||||
|
.IP -
|
||||||
|
die Angabe der Dateibezeichnung eines Kommandointerpeters
|
||||||
|
.IP -
|
||||||
|
der Dateiname von Treibern, die mit in das System eingebunden werden sollen.
|
||||||
|
.LP
|
||||||
|
Danach wird das logische E/A-System (DOS.COM) geladen. Zuletzt ruft das
|
||||||
|
System den Kommandoinerpreter, in der Regel COMMAND.COM auf. Der
|
||||||
|
Kommandointerpreter sucht zunaechst eine Datei AUTOEXEC.BAT. Das ist eine
|
||||||
|
Kommandodatei, in der der Anwender alle Kommandos eintraegt, von denen er
|
||||||
|
wuenscht, dass sie bei Arbeitsbeginn des Kommandointerpreters abgearbeitet
|
||||||
|
werden. So ist es z. B. sinnvoll, das Kommando zur Eingabe von Uhrzeit und
|
||||||
|
Datum generell in diese Datei aufzunehmen. Auch Treiber koennen in der
|
||||||
|
AUTOEXEC.BAT eingetragen werden. Jedoch muessen sich diese dann als
|
||||||
|
resident erklaeren, damit sie nicht durch nachfolgende Kommandoaufrufe
|
||||||
|
ueberschrieben werden.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Schnittstelle zum ROM-BIOS
|
||||||
|
.LP
|
||||||
|
Die Routinen des ROM-BIOS werden durch Softwareinterrupts aufgerufen.
|
||||||
|
Von Applikationen wird
|
||||||
|
vor allem die Bildschirmschnittstelle unmittelbar genutzt.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Schnittstelle zu DOS.COM
|
||||||
|
.LP
|
||||||
|
Es sind ca. 100 DOS-Funktionen verfuegbar. Diese werden in CP/M-kompatible
|
||||||
|
und UNIX-kompatible DOS-Funktionen eingeteilt. Fuer Neuentwicklungen wird
|
||||||
|
die Verwendung der UNIX-kompatiblen DOS-Funktionen empfohlen. Realisiert
|
||||||
|
wird ein Systemruf ueber den Softwareinterrupt 21H (spezieller
|
||||||
|
Unterprogrammaufruf). Funktionskode und sonstige Parameter werden in den
|
||||||
|
CPU-Registern uebergeben.
|
||||||
|
Die DOS-Funktionen lassen sich in fuenf Gruppen einteilen:
|
||||||
|
.DS L
|
||||||
|
- Ein- und Ausgabe von Zeichen bzw. Zeichenketten nach oder
|
||||||
|
von der Standard-Ein-/Ausgabe
|
||||||
|
- Dateiverwaltung und Handhabung der Dateiverzeichnisse
|
||||||
|
- Programmverwaltung
|
||||||
|
- Speicherverwaltung
|
||||||
|
- systemspezifische Funktionen.
|
||||||
|
.DE
|
||||||
|
Bei UNIX-kompatiblen Systemrufen wird jede Datenein- und ausgabe als ein
|
||||||
|
Strom von Bytes aufgefasst. Ein solcher Datenstrom wird als Haendler
|
||||||
|
bezeichnet. Er kann von oder zu einem Geraet
|
||||||
|
oder einer Datei gerichtet sein. Die Geraete
|
||||||
|
verfuegen dazu ueber festgelegte Namen, die sonst nicht verwendet werden
|
||||||
|
duerfen. Die prinzipielle Gleichbehandlung von Geraeten und Dateien bedingt,
|
||||||
|
dass die Dateien ueber kein spezielles Format verfuegen. Die Haendler
|
||||||
|
koennen eroeffnet, geschlossen, gelesen und geschrieben werden. Beim
|
||||||
|
Eroeffnen wird dem Haendler eine Nummer zugewiesen, die fuer weitere
|
||||||
|
Zugriffe verwendet wird. Ein spezieller Systemruf realisiert das Laden und
|
||||||
|
Ausfuehren eines Programms. Das rufende Programm wartet auf das Beenden des
|
||||||
|
gerufenen Programms.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Kommandoprozessor
|
||||||
|
.LP
|
||||||
|
Die Kommunikation der Nutzer mit dem Betriebssystem DCP erfolgt ueber
|
||||||
|
den Kommandoprozessor COMMAND.COM. Er realisiert eine Nutzerschnittstelle
|
||||||
|
zur interaktiven Arbeit und bietet vielfaeltige Moeglichkeiten, dem Nutzer
|
||||||
|
die Arbeit mit dem Betriebssystem zu erleichtern. Dazu gehoeren u.a.:
|
||||||
|
.DS L
|
||||||
|
- Sprachelemente zur Programmablaufsteuerung
|
||||||
|
- Arbeit mit Variablen mit Parameteruebergabe
|
||||||
|
- globale Dateinamenzeichen
|
||||||
|
- Umleiten der E/A-Richtungen
|
||||||
|
- Dateiuebergabe zwischen Programmen
|
||||||
|
- Suchen ausfuehrbarer Dateien entlang dem definierbaren
|
||||||
|
Pfad
|
||||||
|
.DE
|
||||||
|
Man unterscheidet zwei Kommandoarten:
|
||||||
|
.DS L
|
||||||
|
- interne Kommandos
|
||||||
|
- externe Kommandos.
|
||||||
|
.DE
|
||||||
|
Die Routinen der internen Kommandos sind Bestandteil von COMMAND.COM. Sie
|
||||||
|
werdenn beim Aufruf sofort ausgefuehrt. Externe Kommandos befinden sich als
|
||||||
|
Programmdateien auf Diskette bzw. Festplatte.
|
||||||
|
.LP
|
||||||
|
Einige der internen Kommandos realisieren die Arbeit mit Diskette bzw.
|
||||||
|
Festplatte. Dazu gehoeren folgende Funktionen:
|
||||||
|
.DS L
|
||||||
|
- Kopieren von Dateien und Datentraegern
|
||||||
|
- Aendern des aktuellen Verzeichnisses
|
||||||
|
- Auslisten des Verzeichnisses
|
||||||
|
- Loeschen von Dateien
|
||||||
|
- Umbenennen von Dateien
|
||||||
|
- Definieren von Suchpfaden ausfuehrbarer Dateien
|
||||||
|
.DE
|
||||||
|
Funktionen allgemeiner Art, die von internen Kommandoss ausgefuehrt werden,
|
||||||
|
sind:
|
||||||
|
.DS L
|
||||||
|
- Loeschen des Bildschirms
|
||||||
|
- Anzeige bzw. Eingabe von Datum und Uhrzeit
|
||||||
|
- Aendern des Bereitschaftszeichens des Kommandosystems
|
||||||
|
- Anzeige von Dateien
|
||||||
|
- Aendern der Standardein- bzw. -ausgabe.
|
||||||
|
.DE
|
||||||
|
Die dritte Gruppe der internen Kommandos dient der Arbeit mit
|
||||||
|
Stapelverarbeitungsdateien:
|
||||||
|
.IP - 2
|
||||||
|
Ein- bzw. Ausschalten der Anzeige von Kommandozeilen
|
||||||
|
.IP -
|
||||||
|
Sequentielles Setzen einer Variablen auf jedes Element eines Satzes
|
||||||
|
und Ausfuehren einer Kommandozeile (FOR-SCHLEIFE)
|
||||||
|
.IP -
|
||||||
|
Verwendung an einer anderen Stelle in der Stapelverarbeitungsdatei
|
||||||
|
.IP -
|
||||||
|
Ausfuehren einer Kommandozeile abhaengig von einer Bedingung
|
||||||
|
(IF-Kommando)
|
||||||
|
.IP -
|
||||||
|
Unterbrechen der Abarbeitung der Stapelverarbeitungsdatei und
|
||||||
|
Anzeige einer Nachricht, bis durch den Bediener eine Taste betaetigt wird.
|
||||||
|
.LP
|
||||||
|
Die Parameter der Kommandozeile der Stapelverarbeitungsdatei sind als
|
||||||
|
Variable mit festgelegten Namen aufrufbar. Der Kommandoprozessor
|
||||||
|
unterstuetzt sowohl die interaktive Arbeit, d.h. die Eingabe einzelner
|
||||||
|
Kommmandozeilen ueber Tastatur, als auch das Abarbeiten von
|
||||||
|
Stapelverarbeitungsdateien. Das sind Dateien, die einzelne Kommandos
|
||||||
|
enthalten. Bei der interaktiven Arbeit wird die letzte Kommandozeile
|
||||||
|
gespeichert. Ueber bestimmte Funktionstasten kann die Zeile wieder
|
||||||
|
aufgerufen werden. Der Kommandoprozessor laedt das ausfuehrbare Programm in
|
||||||
|
den naechsten freien Speicherbereich. Die ersten 128 Bytes werden durch ein
|
||||||
|
Programmsegmentpraefix belegt. Dieser enthaelt die Parameter des Aufrufs,
|
||||||
|
den Dateisteuerblock, die Segmentadresse der Umgebung und weitere Angaben.
|
||||||
|
Unterschieden werden zwei Arten ausfuehrbarer Dateien:
|
||||||
|
.DS L
|
||||||
|
.COM-Dateien
|
||||||
|
.EXE-Dateien
|
||||||
|
.DE
|
||||||
|
Die .EXE-Dateien unterliegen keinen Einschraenkungen. Sie koennen sich ueber
|
||||||
|
mehrere Segmente erstrecken. Mit dem Dienstprogramm EXE2BIN
|
||||||
|
koennen .EXE-Dateienin .COM-Dateien umgewandelt werden,
|
||||||
|
wenn nur ein Segment belegt
|
||||||
|
wird. Dieser Weg wird empfohlen, da die Ladezeit der .COM-Dateien kuerzer
|
||||||
|
ist.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Umleiten der Ein-/Ausgabe
|
||||||
|
.LP
|
||||||
|
Jedes Programm, dessen Ausfuehrung begonnen wird, verfuegt ueber fuenf
|
||||||
|
geoeffnete Haendler. Dies sind:
|
||||||
|
.DS L
|
||||||
|
- Standardeingabe
|
||||||
|
- Standardausgabe
|
||||||
|
- Standardfehlerausgabe
|
||||||
|
- Standardhilfsein- und ausgabe
|
||||||
|
- Standarddruckerausgabe.
|
||||||
|
.DE
|
||||||
|
Ueber die Haendler kann das Programm Daten aufnehmen und aussenden.
|
||||||
|
Normalerweise ist die Standardeingabe mit der Tastatur und die
|
||||||
|
Standardausgabe mit dem Bildschirm verbunden. Um die Ein- oder Ausgaben von
|
||||||
|
einer anderen Einheit zu erhalten oder zu einer anderen Einheit zu senden,
|
||||||
|
koennen mit dem Umleitungszeichen '<' bzw. '>' eine andere Einheit oder
|
||||||
|
Datei fuer die Dauer der Programmabarbeitung zugewiesen werden. Durch den
|
||||||
|
Programmaufruf:
|
||||||
|
|
||||||
|
beispiel <a: eingabe.txt
|
||||||
|
|
||||||
|
erhaelt das Programm "beispiel" seine Daten nicht ueber die Tastatur,
|
||||||
|
sondern von der Datei "eingabe.txt" des Laufwerkes A. Soll die Ausgabe des
|
||||||
|
Kommandos "dir" (Anzeige des Verzeichnisses) nicht auf den Bildschirm, sondern
|
||||||
|
auf den Drucker ausgegeben werden, ist folgende Kommandozeile einzugeben:
|
||||||
|
|
||||||
|
dir > prn
|
||||||
|
|
||||||
|
"prn" ist dabei der symbolische Name des Druckers.
|
||||||
|
.LP
|
||||||
|
.NH 2
|
||||||
|
Datenuebergabe
|
||||||
|
.LP
|
||||||
|
Das Betriebssystem liefert ueber den Pipe-Mechanismus eine Moeglichkeit, in
|
||||||
|
einfacher Weise Dienstprogramme untereinander oder mit Nutzerprogrammen zu
|
||||||
|
verknuepfen. Dabei wird die Standardausgabe eines Programmes mit der
|
||||||
|
Standardeingabe eines anderen Programmes verbunden, d.h. die Ausgaben eines
|
||||||
|
Programmes werden als Eingaben eines anderen Programmes genutzt. Auf diese
|
||||||
|
Weise koennen mehrere Programme miteinander verknuepft werden. Der Operator
|
||||||
|
zum Verknuepfen der Programme ist das Zeichen "|". Beispiel fuer eine
|
||||||
|
Datenuebergabe ist die Kommandozeile:
|
||||||
|
|
||||||
|
dir|sort>dirlist
|
||||||
|
|
||||||
|
Dabei wird das nach Standardausgabe gerichtete Auflisten des Verzeichnisses
|
||||||
|
durch das Programm "sort" als Eingabe benutzt und die sortierte Ausgabe zur
|
||||||
|
Datei "dirlist" umgelenkt.
|
||||||
|
.LP
|
||||||
Loading…
Reference in New Issue