multitasking DOS ?!?

  • Ich hatte früher mal ein "Multitasking DOS" gehabt. Ich weiß aber nicht mehr was es genau war. Vielleicht hilft ihr mir hier auf die Sprünge, den Namen herrauszufinden...


    Ich meine damit konnte man auch MS-DOS Programme ausführen. Man konnte die Terminals umschalten. Multi-User-Fähig war es glaube ich nicht.


    Hab ein wenig gesucht und z.B. die Meldung gefunden: https://www.heise.de/newsticke…oeffentlicht-3872476.html

    Aber der Name "PC-MOS" sagt mir nichts. Von daher glaube ich, war es das nicht.

  • Funktionen im MS-DOS sind nicht reentrant programmiert.

    Zudem sind da viele statische Speicher Segmente.

    Und es gibt keinen Speicherschutz im Realmode.


    Es ist einfach nicht geeignet.

    Schon von der Konzeption her

  • Deshalb gab es ja Multitasking-Systeme, die DOS-Programme ausführen konnten.

    Ich hatte damals unter DOS Background-Programme geschrieben, die daraus ein Semi-Multitasking-System gemacht haben. Aber das war nur mit undokumentierten/inoffiziellen Systemaufrufen von DOS möglich (TSR). Um den Wiedereinstieg in unterbrochene Funktionen musste sich das Background-Programm selbst kümmern (Stack sichern, Filepointer sichern etc.). War aufwändig, aber möglich.

  • Aber das war nur mit undokumentierten/inoffiziellen Systemaufrufen von DOS möglich (TSR).

    undokumentiert/inoffiziell? Nein. DOS-Aufruf? Nur zum Teil. Praktisch alle TSRs hängen sich in BIOS-Interrupts ein, meistens Timer oder Tastatur. Wenn man aus dem TSR aber ins DOS wolte, musste man sicherstellen, daß niemand anderes grade keinen DOS-Aufruf macht - dazu brauchte man die DOS-Funktion 34h, um das In-DOS-Flag abzufragen. Die war aber (wenn auch kryptisch) doch durchaus dokumentiert und offiziell.

  • DR DOS war auch multitaskingfähig. Ich meine aber erst ab Version 6. Man konnte mehrere DOS-Programme gleichzeitig ausführen und zwischen den Programmen umschalten.

    Als es das zum ersten Mal konnte, hieß es schon "Novell DOS 7" - Das war die erste Version von DR-DOS, die nach der Übernahme von Digital Research durch Novell rauskam.


    DR-DOS 6 kannte zwar einen Task-Switcher, mit dem man zwischen verschiedenen DOS-Programmen, die gleichzeitig im Speicher rumlagen, hin- und herwechseln konnte, pausierte aber die Hintergrundtaks. "Richtiges" Multitasking war das nicht.

  • DR-DOS könnte es sein. Das hatte ich auf jeden Fall im Einsatz. Aber ich dachte der Multitasking kram, war ein anderes OS... Aber war es nur eine neuere Version, die aber nur kurz interessant war, weil dann der Windows 3.11 Nachfolger raus kam? Passt das zeitlich?

  • DR DOS war auch multitaskingfähig. Ich meine aber erst ab Version 6. Man konnte mehrere DOS-Programme gleichzeitig ausführen und zwischen den Programmen umschalten.

    Als es das zum ersten Mal konnte, hieß es schon "Novell DOS 7" - Das war die erste Version von DR-DOS, die nach der Übernahme von Digital Research durch Novell rauskam.

    Ich bin mir so ziemlich sicher, dass Version 6 das auch schon konnte. Muss ich mal schauen. ;)

    DR DOS Wikipedia

    War Version 6 die als erstes Multitasking konnte. In der Wikipedia gibt es auch Jahresangaben, wann welche Version erschien.

  • DR-DOS hieß bis ca. 1993 DR-DOS, danach Novell DOS, dann ab 1997, als Novell den Bauchladen, den sie mit Digital Research bekommen hatten, an Caldera abgestoßen hatten, Caldera Open DOS. Nochmal später hat Caldea den Namen des Produkts wieder in DR-DOS geändert.


    Windows 3.11 kam Ende 1993 raus - könnte also passen.

  • Aber das war nur mit undokumentierten/inoffiziellen Systemaufrufen von DOS möglich (TSR).

    undokumentiert/inoffiziell? Nein. DOS-Aufruf? Nur zum Teil. Praktisch alle TSRs hängen sich in BIOS-Interrupts ein, meistens Timer oder Tastatur. Wenn man aus dem TSR aber ins DOS wolte, musste man sicherstellen, daß niemand anderes grade keinen DOS-Aufruf macht - dazu brauchte man die DOS-Funktion 34h, um das In-DOS-Flag abzufragen. Die war aber (wenn auch kryptisch) doch durchaus dokumentiert und offiziell.

    Die Aussage, dass "praktisch alle TSRs sich in BIOS-Interrupts" hingen ist nicht korrekt. Meine TSRs hingen nahezu immer an HW-IRQs (serielle Schnittstelle, Timer, Keystroke etc.). Vor allem der Timer war geeignet für ein TSR, aber das ist kein BIOS-Interrupt. Ich denke, du verwechselst hier was.

    Die Funktionen, um ein Programm nach Beendigung im Speicher resident zu halten, war nicht von MS dokumentiert und daher inoffiziell. Kann sein, dass später diese auch mal offiziell wurden, aber zu meiner Zeit jedenfalls nicht (so bis MS-DOS 3.3). Es gab noch sehr viele weitere Funktionen, die von MS nicht in deren API gelistet wurden. Ist bei mir aber schon fast 30 Jahre her und ich bin damals dann auf Unix-Systeme umgestiegen und habe seitdem dort nichts mehr gemacht.

  • Ich meine mich zu erinnern, dass selbst DOSSHELL laufende Programme "parken" und wieder hervorholen konnte und so den Wechsel zwischen laufenden Programmen ermöglichte. Ging nicht mit jeder Software gut, aber für den Texteditor und Utilities etc. war das durchaus tauglich.

  • Die dokumentierte INT 21h Funktion 31h gab es seit MS-DOS 2.0, Damit konnte man grundsätzlich TSR-Programme schreiben und DOS schrumpfte seinen Speicher entsprechend.

    Aber mit dem zweiten, größeren Problem, der Wiedereintrittsfähigkeit der Systemfunktionen hat das nichts zu tun. Es gab dafür zwar schon Ansätze in MS-DOS (z.B. Gerätetreiber haben zwei Einsprungstellen dafür vorgesehen), das wurde aber letztendlich nie durchgezogen. Man mus auch daran bedenken, dass das Sichern und Zurückholen aller Register auch CPU-Zeit kostet und die war damals kostbar. Da waren dann die task-Switcher effektiver, bei denen man ein Programm "parkte", d.h. kein wirkliches Multitasking. Brauchte aber auch den Speicher, der erst mit EMS kam.

  • Es stimmt, dass es ein paar TSR-Funktionen gab, aber die waren bei weitem nicht ausreichend, um ein brauchbares Hintergrund-Programm zu erstellen. Ich hatte auf einige inoffizielle Funktionen des int21h zurückgegriffen, damit das benutzbar war. Die waren im Standard-Werk "Undocumented DOS" beschrieben, was ich noch irgendwo rumliegen habe.

    Die Reentranz war selbstverständlich ein eigenes Thema, aber das ist ja klar.

  • War das Multitasking DOS oder Multiuser DOS?


    Das letzte ist PC-MOS, multitasking DOS gab es auch von concurrent, DR- und mit Desqview wie oben erwähnt.