next up previous contents
Next: Textverarbeitung Up: L3 Benutzerhandbuch Previous: Der L3 Editor

L3DOS

Einführung

Unter L3 besteht die Möglichkeit, DOS Programme ablaufen zu lassen. Es ist sowohl möglich, in einer Task »normale« DOS Programme zu benutzen, als auch innerhalb verschiedener Tasks, zwischen denen eine Server-Workstation-Logik festgelegt wurde, netzwerkfähige DOS Programme zu betreiben.

Ganz bewußt wurde in den ersten Zeilen der Begriff der »DOS Kompatibilität« vermieden. Dieser Begriff würde dann Sinn machen, wenn DOS eine streng definierte Schnittstelle für Programme böte. DOS ist jedoch kein Betriebssystem im engeren Sinne, sondern lediglich ein Starter für Programme, die für Rechner mit INTEL 8086/88 Prozessoren geschrieben wurden. Nach dem Start übernehmen diese Programme nach Gutdünken die Kontrolle über alle Betriebsmittel des Rechners.

Die Bereitstellung einer geeigeneten Umgebung für DOS Programme umfaßt also neben der DOS Schnittstelle (INT 21h etc.) auch die Emulation des BIOS und der Hardware eines typischen DOS Rechners.

Grundsätzliche Funktionsweise

L3DOS basiert auf der Möglichkeit des 80386 Prozessors, daß jede Task, unabhängig von allen anderen Tasks, zwischen virtuellem 8086 (V86) Modus und originärem (Protected) Modus hin- und herschalten kann. Im V86 Modus verhält sich der 80386 wie ein schneller 8086. Um eine geeignete Ablaufumgebung für DOS Programme zu schaffen, wird in einer Task, die in den V86 Modus wechselt, ein Kontrollprogramm aktiviert, das alle Leistungen, die durch ein DOS Programm angefordert werden, im Sinne von L3 umsetzt. Dieses Kontrollprogramm heißt L3DOS.

Um DOS Programme auszuführen, benötigt man einen PC kompatiblen Rechner, das BIOS und DOS selbst. PC und BIOS werden durch das »virtuelle BIOS« ("vbios") emuliert. Das "vbios" simuliert die Hardwareschnittstelle zwischen dem DOS Programm und dem L3 System.

DOS selbst wird durch L3DOS emuliert. So können z.B. DOS Funktionsaufrufe zur Dateibehandlung von L3DOS auf das Dateisystem der Task umgelenkt werden. Auch die bei DOS ab Version 3.1 eingeführten Netzwerkfunktionen stehen vermittels L3DOS zur Verfügung: Tasks können einen Pfad oder ihr vollständiges Dateisystem »sharen«. Andere Tasks können dann auf Dateien der »Servertask« zugreifen, der Zugriff beachtet die üblichen File-Locking und Record-Locking Mechanismen.

Grenzen der Emulation

Bei Gegenüberstellung der Funktionsweise eines Original DOS Rechners und der L3DOS Emulation lassen sich einige Grenzen abschätzen, die die Trennlinie darstellen zwischen Programmen, die »noch« unter L3DOS laufen, und Programmen, die von den Schutzmechanismen von 80386 und L3 abgefangen werden.

In einer Grobbeschreibung läßt sich die Welt, in der DOS Programme agieren, als 640 KB Arbeitsspeicher, gefolgt von einem Bildschirmspeicher, darstellen. Am Anfang des Arbeitsspeichers liegen die Interruptvektoren, Sprungadressen auf Routinen zur Behandlung der diversen Interrupts. Viele dieser Sprünge landen im ROM BIOS, der Schnittstelle für Ein-Ausgaben auf Bildschirm, Festplatte, Diskette etc. Typisches Kennzeichen für DOS Programme ist die Mißachtung der so vorgegebenen Schnittstellen. Programme pflegen direkt in den Bildschirmspeicher zu schreiben, versuchen Ein-/ Ausgaben selbst zu behandeln, verändern Interruptvektoren unter Umgehung der dafür vorgesehenen Routine usw. Allen diesen Aktionen gemein ist, daß sie prinzipiell unter einem Multitasking-/Multiusersystem nicht zulässig sein können.

Eine sinnvolle DOS Emulation wird jedoch diejenigen Aktionen, die im Sinne des Betriebssystems effizient nachgebildet werden können, anbieten. Standardbeispiel hierzu ist das, natürlich auch unter L3DOS zulässige, direkte Beschreiben des Bildschirmspeichers. Jede Task hat ihren eigenen virtuellen Bildschirmspeicher, der bei Bedarf auf den realen Bildschirmspeicher abgebildet oder an ein Terminal übertragen wird. Somit können in jeder Task, die im DOS Modus läuft, Programme aktiv sein, die in den tasklokalen Bildschirmspeicher schreiben.

Nicht zulässig sind Aktionen, bei denen die DOS Applikation die Kontrolle über gewisse Hardwarekomponenten übernehmen will. Typische Vertreter dieser Gattung von Programmen sind Utilities für die Festplatte, die direkt auf die File Allocation Table oder den Bootsektor der Festplatte zugreifen wollen und dergleichen mehr. Auch Virenprogramme sind in diese Gruppe einzuordnen.

Eine andere Grenze der durch L3DOS gebotenen Emulation liegt dort, wo Programme von DOS aus in den Protected Mode wechseln. Prominentester Vertreter ist Windows 3.x.

Initialisierung von L3DOS

Um in einer Task mit DOS Programmen zu arbeiten, muß in dieser Task zunächst L3DOS initialisiert werden. Dieser Vorgang entspricht dem »Booten« eines normalen DOS Rechners. In jeder Task, in der L3DOS benutzt werden soll, kann L3DOS mit dem Kommando l3dos »gebootet« werden.

    neue task\:           (PRIVAT) 
    »l3dos«

Es erscheint die Meldung:

L3DOS Version 1.40 gestartet...

Nach beendeter Initialisierung meldet sich L3DOS mit dem Prompt

L3DOS [C:\] DOS

Damit ist L3DOS in dieser Task initialisiert. Das von L3DOS als aktuelles Laufwerk angezeigte Laufwerk C: wird durch das Dateisystem der Task gebildet. Das Dateisystem der Task stellt also eine virtuelle Festplatte dar. Somit ist bei Installationsprogrammen die Option »auf Festplatte installieren« zu wählen. Die Größe dieser »Platte« ist aber durchaus veränderlich, da die einzig sinnvolle Angabe über freien Speicherplatz den freien Platz des gesamten L3 Systems liefert.

Der Wechsel zurück zur L3 Ebene erfolgt mit dem Kommando l3. Wenn DOS in einer Task initialisiert ist, erreichen Sie die DOS-Oberfläche von der L3 Ebene aus mit dem Kommando dos.

Zwischen den Kommandomodi 'DOS-Modus' und 'ELAN-Modus' können Sie auch durch die Tastenkombination CNTL d (Wechsel zum DOS-Modus) und CNTL e (Wechsel zum ELAN-Modus) umschalten.

Die Eingabe von l3dos in der L3 Kommandoebene bewirkt ein erneutes »Booten« von L3DOS. Auch über den berühmten »Affengriff« STRG ALT und ENTF kann ein Neustart von L3DOS eingeleitet werden. Diese Tastenkombination ist bekanntlich der HotKey, der in das Verteilermenü des Terminals verzweigt. Wenn dort nun die HALT Option für die Task gewählt wird, in der L3DOS aktiv ist, so erscheint ein kleines Menü, in dem auch ein Neustart angeboten wird.

    HALT from terminal 
    (L)3, (C)ontrol-C, (R)eboot, (I)gnore, (D)ebug ?

Die Wahl der gewünschten Reaktion auf das HALT erfolgt durch Eintippen des entsprechenden Anfangszeichens, andere Tasten, außer HotKey, haben keine Wirkung.

Verwendung eines 'Original-COMMAND.COM'

Alternativ zum L3 eigenen COMMAND.COM können Sie auch eine Originaldatei "COMMAND.COM" der DOS Version 3.3 benutzen. Andere DOS Versionen sind nicht möglich, da der Kommandoprozessor auf DOS Interna zugreift. Da L3DOS die DOS Version 3.3 nachbildet, führt die Verwendung eines COMMAND.COM einer anderen Version zu Fehlern.

Um die Originaldatei "COMMAND.COM" im L3 System zu installieren, gibt es eine besondere Task gendos. Koppeln Sie dazu die Task "gendos" an Ihr Terminal an. Wählen Sie dann Menüpunkt e - Einlesen des COMMAND.COM für L3DOS und legen nach entsprechender Aufforderung eine DOS 3.3 Diskette, die COMMAND.COM enthält, in das Laufwerk A ein.

Diese Datei wird von der Diskette in Ihr L3 System kopiert und steht nun für jede Task zur Verfügung. Selbstverständlich muß diese 'Urinstallation' nur einmal durchgeführt werden.

Um in einer beliebigen Task, in der noch nicht L3DOS gestartet worden ist, den Original- "COMMAND.COM" zu benutzen, geben Sie vor Start von L3DOS das Kommando

    neue task\:           (PRIVAT) 
    l3command com (false)

Beim »booten« von L3DOS wird dann der zuvor in "gendos" geladene "COMMAND.COM" benutzt.

"AUTOEXEC.BAT" und "CONFIG.SYS"

Bei jedem Neustart von L3DOS werden die Dateien CONFIG.SYS und AUTOEXEC.BAT aus der Task SYSIO geholt. Das unterbleibt, falls es in der Task bereits Dateien dieses Namens gibt. Es ist also möglich, bei Verwendung besonderer Programme diese beiden Dateien passend zu erzeugen, um dann L3DOS damit 'zu booten'. Die Standarddateien in L3 haben folgenden Inhalt:

AUTOEXEC.BAT

     @ECHO OFF 
     SET PROMPT=L3DOS [\$P] 
     SET PATH=C:\; 
     SET COMSPEC=C:\COMMAND.COM 
     SET NOSNOWCONTROL=TRUE 
     SET DOS=L3DOS 
     DEL AUTOEXEC.BAT

CONFIG.SYS

     FILES=100 
     BUFFERS=20

Es ist zum Beispiel bei Verwendung eines CD-ROM Laufwerks nötig, in den beiden Dateien Angaben zum Treiber und weitere besondere Einträge zu machen. In diesem Falle könnte die "AUTOEXEC.BAT" folgenden Inhalt aufweisen:

     ..... 
     C:\CDROM\MSCDEX /D:MSCD000 /M:8 
     ...

und die "CONFIG.SYS":

     FILES=100 
     BUFFERS=20 
     LASTDRIVE=G: 
     DEVICE=C:\CDROM\CD555.SYS /D:MSCD000 /B:300 /M:8

Die tatsächlich benötigten Einträge entnehmen Sie bitte dem Handbuch zum Laufwerk.

Besonderheiten gegenüber Original-DOS

Kommandoeingabe

Die Eingabe von Kommandos unter L3DOS unterscheidet sich insofern von der Eingabe unter Original-DOS, als sie über die ELAN-Prozedur editget realisiert wurde, mit der ein Zeileneditor aufgerufen wird. An der aktuellen Cursorposition wird eine Zeile ausgegeben, für die alle Ediermöglichkeiten von L3 zur Verfügung stehen (siehe dazu "Der L3 Editor"). Die Eingabe wird mit ENTER abgeschlossen.

Im Gegensatz zu Original-DOS werden mit der Taste tex2html_wrap_inline2657 keine Zeichen gelöscht, sondern nur der Cursor nach links bewegt. Zum Löschen von Zeichen muß die Taste ENTF verwendet werden.

Zur Vereinfachung der Eingabe kann das zuletzt edierte Kommando mit der Tastenfolge ESC k erneut angezeigt werden.

Der L3 eigene "COMMAND.COM" hat zudem eine History-Funktion. Mit tex2html_wrap_inline2661 bzw. tex2html_wrap_inline2663 können zuvor eingegebe Kommandos wieder in die Kommandozeile geholt und dort auch wiederum ediert werden.

L3DOS Kommandos

Das Betriebssystem DOS selbst kennt interne und externe Kommandos.

Interne DOS-Kommandos sind alle Befehle, die im Kommandointerpreter COMMAND.COM realisiert sind. Diese internen Befehle stehen Ihnen nach der oben beschriebenen Initialisierung von DOS zur Verfügung.

Externe DOS-Befehle sind alle Kommandos, die nicht von COMMAND.COM selbst ausgeführt werden, sondern als eigenständige Programme in Form von "*.COM", "*.BAT" oder "*.EXE" Dateien vorliegen. Diese externen Befehle sind nach der Initialisierung von L3DOS noch nicht vorhanden, sie müssen ggf. von den entsprechenden DOS-Disketten in jede Task geladen werden, in der diese Befehle benutzt werden sollen. Denken Sie daran, wenn Sie eine neue Task einrichten! Um nicht jedesmal von einer Diskette laden zu müssen, ist es sinnvoll, eine Task einzurichten, die alle benötigten Programmdateien enthält. Aus ihr können die Dateien wesentlich schneller geholt werden (siehe dazu mail etc.).

Darüber hinaus können alle L3 Befehle verwendet werden. Dazu muß der jeweiligen Kommandozeile die Zeichenfolge »l3 « (lies: 'EL"DREI"LEERTASTE') vorangestellt werden. Dies bewirkt, daß vor Ausführung der Kommandos in den L3 Modus umgeschaltet und nach der Ausführung automatisch wieder in den DOS-Modus zurückgeschaltet wird.

        L3DOS [C:\] DOS: l3 xlist

Natürlich können dadurch auch DOS Batch-Dateien originäre L3 Leistungen benutzen. Man kann z.B. eine Batchdatei DOSA.BAT mit L3 typischen Inhalten erzeugen:

        L3DOS [C:\] ELAN: edit ("DOSA.BAT")

und darin formulieren:

    ...................... DOSA.BAT ....................... Zeile 5 
    dir 
    l3 reserve(/"DOSA") 
    call net use a: 
    a: 
    dir

Unter L3DOS kann diese Datei wie gewohnt durch Eingabe von DOSA gestartet werden. Wie der folgende Abschnitt zeigt, ist obige Datei manchesmal recht nützlich.

Behandlung von Archivlaufwerken

Wie bereits in vorhergehenden Abschnitten beschrieben, unterscheidet sich die Verwaltung von Archivlaufwerken unter L3 von der unter einem Einplatz-Betriebssystem wie DOS. Dies hat Auswirkungen auf die Behandlung von Laufwerken unter L3DOS.

Das Diskettenlaufwerk wird bei L3DOS als Server in einem Netzwerk betrachtet. Das L3 Tasksystem beinhaltet zwei Tasks namens DOSA und DOSB, die als »Diskettenserver« aufgefaßt werden können. Um in irgendeiner Task Zugriff auf das Diskettenlaufwerk zu haben, muß es zunächst reserviert werden. Mit den Kommandos:

        L3DOS [C:\] DOS : net use a:

und, falls das Archiv zwischenzeitlich anderweitig benutzt wurde,

        L3DOS [C:\] DOS : l3 reserve (/"DOSA")

reservieren Sie für Ihre Task die Managertask DOSA. Danach kann wie gewohnt auf Laufwerk A: gewechselt und damit gearbeitet werden:

        L3DOS [A:\] DOS : setup
Falls das Laufwerk nicht mehr benötigt wird, sollte es freigegeben werden:

        L3DOS [C:\] DOS : l3 release (/"DOSA")
Sollten ihnen diese Befehle zu sperrig sein, denken Sie an die Batchdatei aus dem vorigen Abschnitt oder eine Variation dieser Datei ganz nach Ihrem Geschmack.

Zuordnung der Laufwerknamen

Die Zuordnung der Laufwerknamen zu Tasks orientiert sich an DOS:

A:
Task DOSA. Erstes Diskettenlaufwerk des Rechners. Um dieses Laufwerk zu benutzen, muß es zunächst durch net use a: dem L3DOS System bekannt gegeben werden. Gegebenenfalls muß es mit reserve (/"DOSA") reserviert werden.

B:
Task DOSB. Zweites Diskettenlaufwerk des Rechners. Um dieses Laufwerk zu benutzen, muß es zunächst durch net use b: dem L3DOS System bekannt gegeben werden. Gegebenenfalls muß es mit reserve (/"DOSB") reserviert werden.

C:
Die Task selbst. Das gesamte Dateisystem der Task, also auch alle Dateien und Verzeichnisse, die schon vor der L3DOS Initialisierung mit L3 Mitteln erzeugt wurden und den DOS-Namenskonventionen mit höchstens '8.3' Zeichen genügen.

D:
Beliebige Servertask. In jeder Task kann auf das Dateisystem einer Task, die sich als Server deklariert hat, zugegriffen werden, indem das Dateisystem des Servers mit dem net use Kommando in der eigenen Task einem Laufwerknamen zugeordnet wird (s.u.).

E:
etc.: alle weiteren möglichen Laufwerknamen können wie D: benutzt werden.

Drucken unter L3DOS

Auch für die zulässigen DOS Printer PRN, LPT1, LPT2, LPT3, LPT4 kann eine Zuordnung zu einer Druckertask des Systems vorgenommen werden. Die Assoziierung von Druckertask und DOS Gerät erfolgt durch die Prozedur assign l3 dos printer. Die Voreinstellung für alle DOS Printer ist die Task PRINTER. Falls weitere oder andere Druckertasks im System existieren können Ausgaben von DOS Programmen dahin gelenkt werden:

        L3DOS [C:\] DOS : l3 assign l3 dos printer ("LPT2", /"LASERPR")

Die eingestellte Druckertask für ein DOS Gerät kann dementsprechend abgefragt werden:

        L3DOS [C:\] DOS : l3 put (name (l3 dos printer ("LPT1")))

Einige DOS Programme zeigen einen Effekt des 'verzögerten Drucks'. Der Druckvorgang startet nicht nach Aufruf, sondern erst wenn die nachfolgende Datei gedruckt werden soll oder beim Wechsel in den L3 Modus. Man kann für solche Programme den Ausdruck der aktuellen Druckdatei durch Drücken der Tastenkombination SHIFT STRG und DRUCK erzwingen. Bei Betätigen dieser Kombination werden die internen Druckpuffer sofort zur Druckertask geschickt.

Programme im Hintergrund

Grundsätzlich besteht in einem Multitasking Betriebssystem die Möglichkeit, daß Programme »im Hintergrund« laufen. Damit ist gemeint, daß ein Programm abläuft, ohne Eingaben von der Tastatur zu erwarten und ohne Ausgaben auf dem Bildschirm zu machen. Grundsätzlich sind DOS Programme ungeeignet für den Hintergrundbetrieb, da sie ständig Tastaturabfragen durchführen und auch vernachlässigbare Ausgaben nicht abschaltbar sind. L3 beinhaltet jedoch die Möglichkeit, in einer Task generell die Situation »Bildschirm vorhanden, keine Taste gedrückt« herzustellen. Damit laufen Programme, die etwa eine Sortierung durchführen und dabei nur einen Zähler ausgeben, auch dann weiter, wenn sie mittels HotKey Taste vom Terminal abgekoppelt werden.

Die Einstellung, ob Programme auch im Hintergrund weiterlaufen sollen, wird durch die Prozedur terminal necessary vorgenommen. Die Prozedur stellt für die Task ein, ob Ein-/Ausgaben zwingend Tastatur und Bildschirm erfordern (terminal necessary (TRUE)) oder ob Tastatur und Bildschirm dem Programm vorgegaukelt (virtualisiert) werden dürfen (terminal necessary (FALSE)). Die Voreinstellung in einer neuen Task ist terminal necessary (TRUE): Programme, die ausgeben, bleiben stehen, wenn kein Bildschirm da ist, ebenso bleiben Programme stehen, wenn sie eine Tastaturabfrage machen und keine Tastatur zugeordnet ist.

Die Einstellung bleibt solange bestehen, bis eine neue Einstellung angegeben wird. Sie kann natürlich mit der bekannten Methode auch im DOS Modus vorgenommen werden:

     L3DOS [C:\] DOS : l3 terminal necessary (FALSE)

ACHTUNG: DOS Programme, die im Hintergrund weiterlaufen, stellen in der Regel eine hohe Systembelastung dar. Sie neigen dazu, auch ohne sinnvolle Arbeit volle Prozessorleistung zu verbrauchen, da beispielsweise nach Abschluß einer Berechnung in einer Endlosschleife die nächste Benutzereingabe erwartet wird.

Es ist nicht empfehlenswert, häufig die Einstellung terminal necessary (FALSE) zu wählen. Sie sollte nur für besondere, ausgewählte Programme benutzt werden.

Die zu großzügige Benutzung ist ein sicherer Weg zu Performanceproblemen des gesamten L3 Systems. Ein mit 25 Mhz getakteter Rechner, auf dem 4 Programme im Hintergrund unnötig arbeiten, führt das fünfte Programm im Vordergrund wie ein 5 Mhz Rechner aus!

Geschwindigkeitsprobleme unter L3DOS

Auch ohne zwanglose Verwendung der terminal necessary Einstellung führen DOS Programme gerne zu Durchsatzproblemen. Ein DOS Programm, das beim Testen gutes Zeit- und Reaktionsverhalten gezeigt hat, legt den Rechner praktisch lahm, wenn es an vier oder fünf Terminals gestartet wurde. Der Grund dafür liegt in Interna typischer DOS Programme. Eine beliebte Strategie der Tastaturbehandlung von DOS Programmen ist z.B. ein kleine Schleife zur Abfrage der gerade gedrückten Taste. Diese Schleife liefert normalerweise 'keine Taste gedrückt'. Solch sinnlose Raserei wird als 'Idle-Running' bezeichnet. Während dieses Verhalten unter 'echtem DOS' problemlos ist, bedeutet es für ein Multitasking-System eine garstige Belastung. Ein kurioser Effekt ist der, daß ein rasend schneller Schreiber bei einem solchen Programm den Rechner unter L3DOS deutlich entlastet, da er eine Menge sinnvoller Arbeit erzeugt, während der die Rechenzeit fressende Frageschleife nicht den Prozessor quält.

Zur Entschärfung derartiger Programme hält L3 Gegenmaßnahmen in Form des 'Idle Replacements' bereit. In der Task "SYSIO" gibt es die Datei "init irms", die für eine Reihe gängiger Programme Strategien bereithält, um aus Rechenzeitfressern sinnvoll integrierbare Software zu machen.

Die Zähmung eines Programms erfolgt dadurch, daß in der Task die Datei "init irms" mit einer »Entidelungsstrategie« für das Programm ausgeführt wird.

     L3DOS [C:\] DOS : l3 run ("init irms")
Weitere Hinweise zur Behandlung von Idle Situationen gibt das L3 Referenzhandbuch.

Netzwerkbetrieb

L3DOS bietet die Möglichkeit, daß Tasks ihr gesamtes Dateisystem oder ausgewählte Verzeichnisse anderen Tasks als virtuelles Laufwerk zur Verfügung stellen. Eine Task, die als »Fileserver« dienen soll, wird zunächst wie gewohnt erzeugt. Zu beachten ist lediglich, daß der Name dieser Task ausschließlich aus Großbuchstaben besteht (also z.B. "SERVER"). Nach der Initialisierung von L3DOS (Kommando: l3dos) und Installation der gewünschten Programme wird dann zunächst mit dem Kommando net share ein Verzeichnis oder auch das komplette Dateisystem der Task »netzweit« unter einem frei wählbaren Namen zur Verfügung gestellt:

     L3DOS [C:\] DOS : net share DISCC=C:\
Anschließend wird die Task dann durch das Kommando:

     L3DOS [C:\] DOS : net srv
zu einer Servertask gemacht. Solange diese Servertask nicht an ein Terminal gekoppelt ist, können andere Tasks auf ihre Dateien zugreifen. Falls die Servertask an ein Terminal gekoppelt ist, sind keine Zugriffe auf die Dateien des Servers möglich: Sobald die Task wieder mit dem L3 Kommando unlink oder dem L3DOS Kommando net srv ordnungsgemäß abgekoppelt wird, kann sie wieder als Server agieren.

Jede andere Task kann unter L3DOS durch ein entsprechendes net use Kommando über ein virtuelles Laufwerk auf Dateien der Servertask zugreifen:

     L3DOS [C:\] DOS : net use e: \\SERVER\DISCC
Die Syntax des 'net use' Kommandos entspricht der der üblichen DOS Netzwerkprogramme: in der Task wird ein Laufwerkname mit dem Namen der Servertask und dem im Server vereinbarten Kurznamen assoziiert. Hinter dem Laufwerknamen muß ein Leerzeichen stehen, vor dem Servernamen müssen zwei »Backslashes« ("\"), vor dem Kurznamen einer stehen.

Zu beachten: Zur Verwaltung dieses virtuellen Netzwerks dient die Datei NET.BAT. Sie muß sich ebenso wie L3.COM im aktuellen Suchpfad befinden.

Beispielsitzung

Im weiteren soll die Benutzung eines typischen »DOS Programmpakets« skizziert werden:

Die integrierte, objektorientierte Programmierumgebung »TURBO OOP« wird auf wenigen Disketten ausgeliefert, deren erste ein übersichtliches Programm »install« enthält.

Zunächst richten Sie aus dem Systemmenü heraus eine neue Task namens "OOP" unter PUBLIC ein und starten in dieser Task L3DOS:

    OOP\:           (PRIVAT) 
    l3dos

Reservieren Sie anschließend das Diskettenlaufwerk. Die explizite Reservierung von DOSA ist möglicherweise unnötig, aber nie falsch.

        L3DOS [C:\] DOS : l3 reserve (/"DOSA") 
        L3DOS [C:\] DOS : net use a:

Nun können Sie die erste Diskette von »TURBO OOP« einlegen und nach Umschalten auf Laufwerk A: das Installationsprogramm starten:

        L3DOS [C:\] DOS : A: 
        L3DOS [A:\] DOS : install

Im Installationsprogramm wählen Sie die Option 'auf Festplatte installieren'. Ob Sie auch das voreingestellte Verzeichnis für die Installation bestätigen, ist Geschmackssache. Da in der Task wahrscheinlich nur »TURBO OOP« installiert wird und andere Programme in anderen Tasks untergebracht werden, spricht nichts gegen die Einstellung C:\.

Zum Abschluß der Installation schlägt das Installationsprogramm zu »TURBO OOP« schließlich vor, die Anzahl der FILES und BUFFERS zu erhöhen. Sie können diesen Antrag ignorieren und müssen dementsprechend auch keinen Warmstart durchführen. Stattdessen können Sie auf Laufwerk C: wechseln und direkt in die Wunderwelt der objektorientierten Programmierung treten:

        L3DOS [C:\] DOS : oop

Da Sie inzwischen begeisterter Leser der L3 Handbücher sind, ignorieren Sie zunächst die ebenso lesenswerten Handbücher von »TURBO OOP«. Dementsprechend gelingt es ihnen in kurzer Zeit ein OOP Programm zu schreiben, dessen Kompilation fast 27 Minuten dauert. Als gewissenhafter Programmierer beschließen Sie, weitere Kompilationen ihres Programms ab sofort im Hintergrund übersetzen zu lassen, um währenddessen das neue Programm zu dokumentieren. Sie wechseln auf Betriebssystemebene und geben dort ein:

        L3DOS [C:\] DOS : l3 terminal necessary (FALSE)

Ab sofort können sie nach dem Starten einer Übersetzung durch die HotKey Tasten in das Systemmenü kommen, ohne daß die Übersetzung stoppt. Der Bedarf an Realzeit einer solchen Anwendung im Hintergrund ist etwas höher, da Tasks, die viel Rechenzeit verbrauchen, ohne an ein Terminal gekoppelt zu sein, vom L3 Systemkern in ihrer Priorität herabgestuft werden.

Nachdem Sie die Muße gefunden haben, auch das »TURBO OOP« Handbuch zu lesen, verstehen Sie nach einigen geringfügigen Umgliederungen und Retuschen in ihrem ersten objektorientierten Programm die Bedeutung des Wortes Turbo... Die Übersetzung ist nun so schnell, daß es nicht mehr gelingen will, die HotKeys rechtzeitig zu drücken. Schalten Sie die Einstellung der Task wieder in den Normalmodus um:

        L3DOS [C:\] DOS : l3 terminal necessary (TRUE)

Auch in diesem Zustand ist es in jeder Situation möglich durch ALT S-Abf über das Systemmenü in eine andere Task zu wechseln. Das Programm bleibt dann im augenblicklichen Zustand »eingefroren«.

Auf diese Weise ist es also möglich in mehreren Tasks verschiedene Programme zu starten und über das Systemmenü direkt, durch einfaches Ankoppeln der entsprechenden Task, in das Programm zu gelangen.

Installation netzwerkfähiger Programme

1) Server

Die Installation von netzwerkfähigen Programmen (z.B. Datenbanken) entspricht zunächst vollkommen dem oben beschriebenen Weg. Zu bedenken ist lediglich, daß der Taskname der späteren Servertask ausschließlich aus Großbuchstaben bestehen darf (z.B. "DBSRV"). Richten Sie also zunächst eine Task ein, die als »Server« dienen soll und installieren Sie das Programm wie im zugehörigen Handbuch beschrieben. Nach Abschluß der Installation muß dann das Dateisystem der Task (oder ein Teil desselben) anderen Tasks mit dem net share Kommando zur Verfügung gestellt werden:

        L3DOS [C:\] DOS : net share dbfiles=c:\

Damit ist das gesamte Dateisystem der Task "DBSRV" unter dem Namen "dbfiles" zur Verfügung gestellt. Andere Tasks können jedoch nur dann zugreifen, wenn die Servertask im Hintergrund läuft:

        L3DOS [C:\] DOS : net srv

2) Arbeitsstationen

Tasks, die auf den Server "DBSRV" Zugriff haben sollen, erhalten über ein logisches Laufwerk Zugriff auf das Dateisystem dieses Servers:

        L3DOS [C:\] DOS : net use d: \\dbsrv\dbfiles

Nach Wechsel auf Laufwerk D: kann dann ein auf dem Server installiertes Programm "DB.EXE" wie gewohnt benutzt werden:

        L3DOS [D:\] DOS : db

Fehler

Programme, die Aktionen durchführen wollen, die L3DOS nicht unterstützt oder duldet, haben Fehler zu Folge. Das Auftreten eines Fehlers ist in folgenden Ausprägungen sichtbar:

        L3DOS error: "Fehlermeldung"

Eine solche Fehlermeldung besagt, daß die vom Programm geforderte Leistung nicht von L3DOS gebracht werden kann, die Situation aber von L3DOS kontrolliert wird. Es besteht keine Gefahr eines Datenverlustes.

Wenn der tasklokale L3 Debugger esd ins Spiel kommt

   + ESD - V1.9 ------------------------------CC / INT 3 -------------+ 
   |                                                                  | 
   |  Excepted within PACKET dos                                      | 
   |                                                                  | 
   |             at    LINE  8120                                     | 
   |                                                                  | 
   |                                                                  | 
   |                                                                  | 
   +-F1:Dump-F2:Disass--F3:Regs-F5:View--F6:File--F7:Config--F8:Quit-?+ 
 
   AX : 004b  BX : 0000  CX : 0000  DX : 0000 
   DI : 0000  SI : 0600  BP : ed9c  DS : 001f  ES : 0000 
   IP : 0e93  CS : f800  SP : 02de  SS : 0985  FL : 0202

ist eine Fehlersituation der nächst schlimmeren Art aufgetreten. Sie manifestiert sich stets durch fleißige Ausgabe von Registerinhalten und Speicherauszügen. L3DOS hat die Situation nicht mehr unter Kontrolle. Die Dateien lassen sich aus der Task retten, indem sie durch Drücken von F10 wieder auf L3 Kommandoebene gelangen. Von dort können Sie alle oder einige Dateien mit der POST (siehe mail Kommando) in eine andere Task schicken:

    TEST 1\:           (ESD on level 1) 
    mail (some, "TEST 2")

Die gröbste Fehlersituation tritt auf, falls ein Fehler vom Prozessor selbst behandelt wird:

    ---------------------------------------------------00012345=EIP 
        "kernels_user_fault" 
    L3KD:

Diese Ausgabe besagt, daß der L3 Systemkern die Task nicht mehr 'im Griff' hat. In diesem Falle bleibt nur noch der Versuch mit der Eingabe g das System zum Weiterlaufen zu bewegen. Zusätzlich sollte Sie versuchen mit dem HotKey auf die Ebene des L3 Systemmenüs zu gelangen. Die betroffene Task kann nur noch von einer dazu privilegierten Task (Vatertask oder Task OPERATOR) gelöscht werden. Das Auftreten eines solch groben Fehlers ist aber nur bei eklatantesten Verstößen gegen die »INTEL Regeln« zu befürchten, etwa wenn eine Applikation selbst in den Protected Mode wechseln will, in dem ausschließlich der Systemkern laufen darf.


next up previous contents
Next: Textverarbeitung Up: L3 Benutzerhandbuch Previous: Der L3 Editor

Michael Hohmuth
Thu Mar 21 12:00:00 MET 1996