Re: Wozu noch DOS?



Stefan Reuther schrieb:

MS-DOS 5.0 habe ich deswegen genannt, weil es meiner Auffassung nach von
vielen als die stabilste und "sauberste" Version von MS-DOS angesehen
wird. Außerdem wurde mit MS-DOS 5.0 ein großer Teil der undokumentierten
API dokumentiert (Interruptliste: "this call was undocumented prior to
the release of MS-DOS 5.0"). Damit bietet es sozusagen eine stabile
Grundlage einer API-Definition.

Na ja, das API von DR-DOS ist auch sauber dokumentiert, insofern also
kein Widerspruch. Und man könnte argumentieren, daß RBIL ohnehin
inzwischen das Kompendium darstellt; was dort nicht steht, hat
Microsoft garantiert auch nicht dokumentiert.

So Kram wie Bootmenüs, Doublespace usw. sind zwar nett, aber gehören
nicht zwingend zu einem DOS dazu.

Also eine Definition über die kleinste gemeinsame Schnittmenge von
MS-DOS 5.0-6.22? Das schließt naturgemäß eben alles aus, was
entweder früher oder später entwickelt wurde oder nicht von Microsoft
stammt. ;-)

Irgendwann ist es eben nicht mehr das, was ich ein "klassisches DOS"
nennen würde. Windows ME ist ja auch eine Fortentwicklung von MS-DOS,
nur würde ich es dank Nichtverfügbarkeit des Realmode mit normalen
Mitteln nicht mehr als "klassisches DOS" bezeichnen.

Nein, weil es eher ein Rückschritt ist. Allerdings würden die meisten
Gegner von DOS ihre Behauptung, daß DOS primitiv sei, eben auf das
Fehlen der Fähigkeiten stützen, die DR-DOS besitzt. ;-)

DOS (nach meiner obigen Definition) ist ja auch primitiv. Und das ist
eben Stärke und Schwäche zugleich.

Also ist nach Deiner Definition nur das "klassische DOS", was eben nur
MS-DOS bis einschließlich Version 6.22 darstellt, primitiv? Na gut,
damit kann ich leben, da ich demnach seit über 15 Jahren kein
"klassisches DOS" mehr verwende. ;-)

Dann solltest Du das allerdings auch klarstellen, bevor Du
verallgemeinerst.

[Linux, X]
Unter DOS hilft dagegen meistens ein Wechsel des Graphikmodus; oftmals
reicht auch schon ein simples CLS.

Das ist unter Linux nicht anders. Nur kommst du eben normalerweise an
INT 10/AH=00 nicht ran.

Eben - und einen eigenen Zugang dazu besitzt Linux nicht. Soweit ich
weiß, stellt der Loader den Modus einmal ein und hofft, daß danach
keiner mehr daran herumpfuscht.

Ja. Der Kernel weiß nichts vom Modus-Umschalten. Der DOS-Kernel übrigens
auch nicht.

Wenn Du Dich da mal nicht täuschst - DOS ruft diese Funktionen sogar
direkt auf, um beispielsweise den Bildschirm zu löschen. :-)

Die Shell, die Anwenderprogramme und ansi.sys zähle ich erstmal nicht
zum Kernel, und eine API-Funktion "Bildschirm löschen" gibt es nicht.

Doch, im BIOS. :-)

Willst Du nun etwa behaupten, daß die BIOS-Funktionen nicht zum
Betriebssystem dazugehören? ;-)

DOS besitzt eine dreifach gestaffelte Hardwareabstraktion; nämlich das
BIOS, die DOS-Gerätetreiber und die höheren Funktionen, die wiederum
darauf aufsetzen. Es wäre sinnlos, eine Funktion, die bereits
vorhanden ist, noch einmal zu implementieren.

Das sind dann Anwendungsprogramme ("mode"), die den
entsprechenden INT 10/AH=00 aufrufen. Unter Linux sind das ebenfalls
Anwendungsprogramme, die dann halt direkt die Grafikkarte programmieren
(bei der SVGALIB liegt sowas bei).

Eben die meine ich. Es ist aber für mich ein bedeutsamer Unterschied,
ob ein solches Programm, das im Falle von CLS sogar in die Shell
integriert ist, nur eine BIOS-Funktion aufruft, also quasi einen Teil
des Betriebssystems, oder direkt die Register manipuliert.

Für mich nicht. Die BIOS-Funktion ist auch nichts anderes als eine
Bibliotheksfunktion. Sie liegt halt in einem ROM, der "schon immer da
ist". Genauso, wie sie unter Linux in einer /lib/*.so liegt, die "schon
immer da ist". Dummerweise funktioniert sie eben nur in bestimmten
Umgebungen (=Real- oder V86-Mode). Will man sie in einer anderen
Umgebung nutzen, muß man sie neu schreiben. Das haben die SVGALIB-Leute
gemacht. Letztenendes rufe ich aus einem Anwenderprogramm immer nur eine
Bibliotheksfunktion auf. Im Hintergrund macht die eben unter DOS "int
10h", und unter Linux irgendwelche Registerfummeleien.

Aber hallo! Das ist sogar ein gewaltiger Unterschied! :-)

Die SVGALib ist nämlich gar nicht Teil des Betriebssystems, sondern
eines C-Programms. Inwieweit das SVGA-Device eine Rolle spielt, kann
ich nicht sagen, aber zumindest würdest Du massive Probleme kriegen,
wenn Du diese Funktionalität von einem Assemblerprogramm aus nutzen
wolltest; zumindest, wenn Du es nicht mit der Library verlinkst. Und
die Dateien in /lib sind nicht etwa "schon immer da", sondern werden
geladen, sobald das erste C-Programm gestartet wird, das mit ihnen
verlinkt wurde. Wenn Du das bezweifelst, kannst Du ja mal spaßeshalber
bei Dir die Libraries umbenennen - Vorsicht, vorher besser ein Backup
machen! ;-)

Andernfalls wäre die LGPL-Lizenz auch sinnlos, da sonst jeder sein
Programm Routinen von beliebigen Bibliotheken aufrufen lassen könnte,
ohne die Lizenz beachten zu müssen.

Mal abgesehen davon, daß die SVGALib-Programme nur die Register
wiederherstellen, die vorher gesichert wurden. Ohne SaveTextMode also
auch kein RestoreTextMode.

Das wird aber im Allgemeinen bei der Installation gemacht, und dient
auch nur dazu, nichtstandardisierte Registerwerte abzufangen. Halt die
Feinheiten, die normalerweise der int 10 kennt, den man nur eben nicht
aufrufen kann.

Und daß man den Bildschirmmodus damit nicht frei wählen, sondern nur
den vorher gesicherten wiederherstellen kann.

Gruß,

Udo

-- The DR-DOS/OpenDOS Enhancement Project - http://www.drdosprojects.de

-- This mail was written by a user of The Arachne Browser -
http://arachne.cz/

.



Relevant Pages

  • Re: Wozu noch DOS?
    ... daß die API und die Möglichkeiten von ca. MS-DOS 5.0 bietet. ... nicht zwingend zu einem DOS dazu. ... Irgendwann ist es eben nicht mehr das, ... Das ist unter Linux nicht anders. ...
    (de.comp.os.msdos)
  • Re: 32-Bit-DOS
    ... DOS nutzen. ... Jedes Programm mit DOS-Extender widerlegt Deine ... Protected Mode schalten, ...
    (de.comp.os.msdos)
  • Re: Autorun
    ... >> Warum wäre es doof, ein Programm zu starten, welches prüft, ob ... > Was ist wenn der Anwender nichts installieren will? ... ob er fehlende Voraussetzungen installieren will ... dann wird eben abgebrochen und in diesem Fall läuft ein VB-Programm wg. ...
    (microsoft.public.de.vb)
  • Re: Drucken von DOS-Anwendung unter Vista 32-bit
    ... dass das bei einem meiner Kunden noch nicht angekommen ist. ... Wer das in den letzten 15 Jahren, in denen DOS langsam aber sicher ... Versäumnisse und Fehlentscheidungen dieser Art kann man aber nicht Vista ... irgendwann das alte Programm nicht mehr weiterentwickelt und das Update ...
    (microsoft.public.de.windows.vista.sonstiges)
  • Re: =?ISO-8859-1?Q?=22Lernf=E4hige?= Musik-Software komponiert Gesangsbegleitung" (Heise
    ... Tonika und Tonikaparallele kriegen Dominanten, ... verstärkt das das Programm, eben diese zu nehmen. ... Das Programm hat ja keinen Anspruch an Ästhetik. ... dass die Software prinzipiell fast jeden diatonischen Ton zu fast jedem ...
    (de.rec.musik.machen)