Autor Thema: BIOS-Interrupts  (Gelesen 33696 mal)

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #20 am: 16. April 2011, 23:28 »
Mir ist kein Bios-Interrupt bekannt der selber in den PM schaltet und wieder zurückin den RM. (Mainboad mit EFI-Bios?)
Da in keiner Spezifikation steht, dass das ausgeschlossen ist, würde ich mich nicht darauf verlassen. Prinzipiell darf jeder BIOS-Interrupt auch in den Protected Mode gehen.

Ich habe mal gelesen, dass einige Option-ROMs (SCSI-Controller, Grafikkarten) in ihren Handlern auch genau das tun. Guter BIOS-Code würde im Übrigen auch dann, wenn er in den PM schaltet, alles brav wieder zurücksetzen. Die ACPI-Problematik mit ihren Workarounds zeigt aber, dass realer BIOS-Code halt nicht gut ist(*).

Gruß,
Svenska

(*) Ich hab hier ein displayloses Acer-Notebook. Unter Linux wurde der Lüfter nicht angesteuert, d.h. war er beim Booten aus, ging das Gerät irgendwann wegen Überhitzung aus. Für "ACPI_OS=Linux" war im BIOS ein Workaround vorgesehen, der aber auch nicht funktioniert hat. Nach einem BIOS-Update geht es jetzt zuverlässig, obwohl mir der Kernel immernoch ein paar Warnungen entgegenwirft.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #21 am: 17. April 2011, 09:18 »
Hallo,


während meiner Schulzeit, also vor sehr vielen Jahren, hab ich und ein Kumpel mal versucht ein RM-Programm zu bauen das mit Hilfe von FS und GS mehr als 64 kB ansprechen sollte. Wir haben FS und GS auch anständig im PM initialisiert und sind korrekt in den RM zurückgesprungen. Das System lief auch ganz normal weiter aber irgendwann gab es dann eine GP-Exception wenn über FS oder GS mit einem Offset größer 64 kB zugegriffen wurde. Unsere Lösung war das wir einen passenden Excpetion-Handler in die RM-IDT eingetragen haben (für INT 0x0D) der einfach nur in den PM ging, FS und GS wieder passend initialisierte und dann zurück im RM ein IRET gemacht hat. Mit diesem Trick konnten wir die durchschnittliche Laufzeit unseres Programm deutlich steigern aber irgendwann krachte es trotzdem wegen irgendeiner unbehandelten Exception. Soweit ich mich noch erinnern kann hatten wir einfach Probleme im RM genau zu analysieren ob der INT nun wirklich eine Exception ist oder eben ein IRQ 5 (ein INT 0x0D wäre zwar auch möglich gewesen aber das hatten wir einfach mal ignoriert). Eigentlich sollte das kein Problem sein aber mit dem PIC kannten wir uns damals nicht so richtig aus. Einen Dissasembler der den Befehl auf den der IP auf dem Stack zeigt genau analysiert um zu erkennen ob das ein Speicherzugriff ist oder nicht erschien uns damals als zu aufwendig und einfach immer in den PM zu gehen kostete enorm viel Performance und löste das Problem trotzdem nicht vollständig. Zumindest nicht bei Programmen die die Soundkarte (welche ja IRQ 5 wollte) benutzt haben. Aber auch wenn es keinen IRQ 5 gab hielt unser Schmalspur-UnReal-Mode nicht ewig.

Es ist zwar durchaus möglich das wir das damals nicht ordentlich implementiert haben und es deswegen nicht stabil lief aber von einer ernsthaften/längeren Benutzung des UnReal-Mode kann ich persönlich trotzdem einfach nur abraten.


Grüße
Erik
Ich habe den 16 Bit UnReal-Mode schon auf mehreren x86-Rechnerplattforemen erfolgreich verwendet. Begonnen mit 80386er, 80468, mit Rechner für Sockel 5, 6, 7, Pentuim 3, 4 und jetzt Core2Quad und ich habe noch nie derartige Probleme damit feststellen können.

Ich erweiterte aber eigentlich nur DS, da man bei der Verwendung von FS, oder GS ja immer ein Segment-Prefix benutzen muss. Und so kann man auch weiterhin über DS auf das Datensegment unserer Anwendung wie gewohnt mit einem 16 Bit-Offset darauf zugreifen und nun zusätzlich mit einem 32 Bit-Offset auf den gesamten 4 GiB-Adressraum zugreifen.

Ich sehe keinen Grund auf den UnReal-Mode zu verzichten, auf unseren Rechnern lief er bisher genauso stabil und zuverlässig wie RM und PM.

Dirk

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #22 am: 17. April 2011, 09:43 »
Mir ist kein Bios-Interrupt bekannt der selber in den PM schaltet und wieder zurückin den RM. (Mainboad mit EFI-Bios?)
Da in keiner Spezifikation steht, dass das ausgeschlossen ist, würde ich mich nicht darauf verlassen. Prinzipiell darf jeder BIOS-Interrupt auch in den Protected Mode gehen.

Das würde aber bedeuten das man mit solchen BIOS-Interrupt kein Memmorymanager wie emm386.exe mehr verwenden kann.  Mir ist kein Rechner bekannt der nicht mehr auf diese Weise DOS-kompatibel ist.
 
Zitat
Ich habe mal gelesen, dass einige Option-ROMs (SCSI-Controller, Grafikkarten) in ihren Handlern auch genau das tun.

Ich habe es nur gerüchteweise gehört, das es so etwas geben soll. Welche Karten davon nun genau betroffen sind konnnte ich jedoch noch nicht ermitteln.

Zitat
Guter BIOS-Code würde im Übrigen auch dann, wenn er in den PM schaltet, alles brav wieder zurücksetzen.

Wenn emm386.exe bereits gestartet wurde, dann wird kein Bios-Interrupt selber mehr in den PM schalten können.
Ich denke aus diesem Grund werden solche Bios-Funktionen die selber in den PM schalten nicht oft anzutreffen sein und damit eine Ausnahme bleiben.

Dirk

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #23 am: 17. April 2011, 13:51 »
Hallo,

Genau das sind Doppelposts, Dirk. ;-)

Prinzipiell darf jeder BIOS-Interrupt auch in den Protected Mode gehen.
Das würde aber bedeuten das man mit solchen BIOS-Interrupt kein Memmorymanager wie emm386.exe mehr verwenden kann.  Mir ist kein Rechner bekannt der nicht mehr auf diese Weise DOS-kompatibel ist.
Bei geladenem EMM386 bist du im VM86, das lässt sich feststellen. Der Unrealmode lässt sich nicht feststellen, denn er ist mit dem RM identisch. BIOS und Treiber können also darauf Rücksicht nehmen.
 
Zitat
Ich habe mal gelesen, dass einige Option-ROMs (SCSI-Controller, Grafikkarten) in ihren Handlern auch genau das tun.
Ich habe es nur gerüchteweise gehört, das es so etwas geben soll. Welche Karten davon nun genau betroffen sind konnnte ich jedoch noch nicht ermitteln.

Kurze Suche ergibt dieses:
    #12881: Intel RAID cards not working on Westville 533 (BIOS B05 +).
    This was due to the Intel RAID card going into protected mode and
    not returning to big real mode. The fix is to go back into big real
    mode immediatly after option ROMs have executed.

Auch PXE-Boot-ROMs müssen im Protected Mode arbeiten, um die Boot-Images im Speicher verwalten zu können und sie stellen meist auch einen Zugriff auf das Netzwerk "für später" bereit. Der TCP/IP-Stack dafür dürfte auch im erweiterten Speicher liegen...

Die Frage ist immer, ob die Funktionen korrekt zurückkehren (also auch in den Unrealmode) oder nicht.

Zitat
Guter BIOS-Code würde im Übrigen auch dann, wenn er in den PM schaltet, alles brav wieder zurücksetzen.
Wenn emm386.exe bereits gestartet wurde, dann wird kein Bios-Interrupt selber mehr in den PM schalten können.
Aber er kann dies feststellen. Stellt der Interrupt fest, dass er im VM86 aufgerufen wurde, dann wird eine RM-kompatible Routine aufgerufen, andernfalls eine effizientere Routine, die über den PM geht.

Ich denke aus diesem Grund werden solche Bios-Funktionen die selber in den PM schalten nicht oft anzutreffen sein und damit eine Ausnahme bleiben.
Naja, RM ist nur 16-bittig. Die große Masse der BIOS-Funktionen wird damit auskommen - nach dem Boot sind BIOS-Interrupts ohnehin fast nutzlos - aber wenn es um hohe Geschwindigkeit geht... wie gesagt, ich würde mich nicht drauf verlassen. There be dragons.

Die mitgelieferten PCMCIA-Treiber für mein eines Notebook (486er) funktionieren übrigens mit geladenem EMM386 nicht, neuere Versionen schon. Und mein VIA VX800 mag es garnicht, wenn man die Vesa-Treiber benutzt (danach funktionieren die nativen Treiber nicht mehr ohne Neustart); das mag aber schlechte Hardware sein.

Gruß,
Svenska

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #24 am: 18. April 2011, 01:06 »
Hallo,

Genau das sind Doppelposts, Dirk. ;-)
Erwischt. Den nachfolgenden Beitrag hatte ich allerdings noch gar nicht gelesen um darauf gleichzeitig antworten zu können, denn beim Schreiben schaue ich eigentlich nicht ständig nach, ob schon neue Beiträge eingetroffen sind.

Zitat
Prinzipiell darf jeder BIOS-Interrupt auch in den Protected Mode gehen.
Das würde aber bedeuten das man mit solchen BIOS-Interrupt kein Memmorymanager wie emm386.exe mehr verwenden kann.  Mir ist kein Rechner bekannt der nicht mehr auf diese Weise DOS-kompatibel ist.
Bei geladenem EMM386 bist du im VM86, das lässt sich feststellen.

Damit dann die Bios-Routine anstatt selber in den PM zu schalten einen Speicherzugriff über den Memorymanager macht?

Zitat
Der Unrealmode lässt sich nicht feststellen, denn er ist mit dem RM identisch.

Ja leider. Man kann nur festellen ob der obere Adressbereich erreichbar ist.

Zitat
BIOS und Treiber können also darauf Rücksicht nehmen.

Bisher habe ich noch keine solche Hardware verwendet.

Zitat
Zitat
Ich habe mal gelesen, dass einige Option-ROMs (SCSI-Controller, Grafikkarten) in ihren Handlern auch genau das tun.
Ich habe es nur gerüchteweise gehört, das es so etwas geben soll. Welche Karten davon nun genau betroffen sind konnnte ich jedoch noch nicht ermitteln.

Kurze Suche ergibt dieses:
    #12881: Intel RAID cards not working on Westville 533 (BIOS B05 +).
    This was due to the Intel RAID card going into protected mode and
    not returning to big real mode. The fix is to go back into big real
    mode immediatly after option ROMs have executed.

Ah prima. Aber wie darf man das denn nun verstehen, werden beim Zurückschalten in den "big real mode/UnRealmode" etwa nur FS und GS auf 4 Gib erweitert, wie es oft für den UnRealmode empfohlen wird, oder werden auch DS und ES erweitert?

Zitat
Auch PXE-Boot-ROMs müssen im Protected Mode arbeiten, um die Boot-Images im Speicher verwalten zu können und sie stellen meist auch einen Zugriff auf das Netzwerk "für später" bereit. Der TCP/IP-Stack dafür dürfte auch im erweiterten Speicher liegen...

Die Frage ist immer, ob die Funktionen korrekt zurückkehren (also auch in den Unrealmode) oder nicht.

PXE-Boot-ROMs habe ich noch nie verwendet, auch kenne ich keinen einzigen PC-Anwender persöhnlich der je so etwas benutzt hat.

Zitat
Zitat
Guter BIOS-Code würde im Übrigen auch dann, wenn er in den PM schaltet, alles brav wieder zurücksetzen.
Wenn emm386.exe bereits gestartet wurde, dann wird kein Bios-Interrupt selber mehr in den PM schalten können.
Aber er kann dies feststellen. Stellt der Interrupt fest, dass er im VM86 aufgerufen wurde, dann wird eine RM-kompatible Routine aufgerufen, andernfalls eine effizientere Routine, die über den PM geht.

Ok, also wahlweise läuft der Speicherzugriff dann über den Memmorymanager, wenn vom VM86 aufgerufen wurde.

Zitat
Ich denke aus diesem Grund werden solche Bios-Funktionen die selber in den PM schalten nicht oft anzutreffen sein und damit eine Ausnahme bleiben.
Naja, RM ist nur 16-bittig. Die große Masse der BIOS-Funktionen wird damit auskommen - nach dem Boot sind BIOS-Interrupts ohnehin fast nutzlos

Für DOS sind BIOS-Interrupts ganz gewiss nicht nutzlos und ein wesentlicher Bestandteil des Systems.

Zitat
- aber wenn es um hohe Geschwindigkeit geht... wie gesagt, ich würde mich nicht drauf verlassen. There be dragons.

Ich selber möchte eigentlich nur Hardware verwenden mit den der RM und auch der UnRealmode zuverlässig läuft.

Zitat
Die mitgelieferten PCMCIA-Treiber für mein eines Notebook (486er) funktionieren übrigens mit geladenem EMM386 nicht, neuere Versionen schon.

Es gibt auch einige ältere DOS-Spiele die selber in den PM schalten und kein EMM386 mögen.

Zitat
Und mein VIA VX800 mag es garnicht, wenn man die Vesa-Treiber benutzt (danach funktionieren die nativen Treiber nicht mehr ohne Neustart); das mag aber schlechte Hardware sein.

Gruß,
Svenska

Ich würde immer ein System mit auswechelbarer GraKa vorziehen und Notebooks/Schlappis haben mir zu viele Mängel als das ich dazu Lust verspühren würde mich damit zu befassen.

Dirk

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #25 am: 18. April 2011, 02:33 »
Hallo,

Genau das sind Doppelposts, Dirk. ;-)
Erwischt. Den nachfolgenden Beitrag hatte ich allerdings noch gar nicht gelesen um darauf gleichzeitig antworten zu können, denn beim Schreiben schaue ich eigentlich nicht ständig nach, ob schon neue Beiträge eingetroffen sind.
Genau dafür gibt es den "Editieren"-Knopf an jedem deiner Posts. ;-)

Zitat
Bei geladenem EMM386 bist du im VM86, das lässt sich feststellen.
Damit dann die Bios-Routine anstatt selber in den PM zu schalten einen Speicherzugriff über den Memorymanager macht?
Beispielsweise. Oder eine langsamere, kompatible RM-Routine einsetzt.

Zitat
BIOS und Treiber können also darauf Rücksicht nehmen.
Bisher habe ich noch keine solche Hardware verwendet.
Oder es nicht gemerkt. Das meinte ich oben mit "gutem Code".

Zitat
Zitat
Ich habe mal gelesen, dass einige Option-ROMs (SCSI-Controller, Grafikkarten) in ihren Handlern auch genau das tun.
Ich habe es nur gerüchteweise gehört, das es so etwas geben soll. Welche Karten davon nun genau betroffen sind konnnte ich jedoch noch nicht ermitteln.

Kurze Suche ergibt dieses:
    #12881: Intel RAID cards not working on Westville 533 (BIOS B05 +).
    This was due to the Intel RAID card going into protected mode and
    not returning to big real mode. The fix is to go back into big real
    mode immediatly after option ROMs have executed.

Ah prima. Aber wie darf man das denn nun verstehen, werden beim Zurückschalten in den "big real mode/UnRealmode" etwa nur FS und GS auf 4 Gib erweitert, wie es oft für den UnRealmode empfohlen wird, oder werden auch DS und ES erweitert?
Ich vermute, dass die Routine nicht in den "big real mode", sondern nur in den "real mode" zurückgeschaltet hat und damit jeden Unrealmode vernichtet hat. Der Fix wäre dann, einfach vorher DS/ES/FS/GS zu sichern und wiederherzustellen - also in den Ursprungszustand zurückzuschalten.

Wie auch immer, um die Details ging es mir nicht, sondern nur um zu zeigen, dass Option-ROMs durchaus in den Protected Mode und zurück schalten können und es auch tun.

Zitat
Auch PXE-Boot-ROMs müssen im Protected Mode arbeiten, um die Boot-Images im Speicher verwalten zu können und sie stellen meist auch einen Zugriff auf das Netzwerk "für später" bereit. Der TCP/IP-Stack dafür dürfte auch im erweiterten Speicher liegen...
PXE-Boot-ROMs habe ich noch nie verwendet, auch kenne ich keinen einzigen PC-Anwender persöhnlich der je so etwas benutzt hat.
Ich nutze sowas öfter. Für mein Netbook und andere halbwegs moderne Hardware, wenn sie nicht von meinem USB-Stick booten kann. Aber alle Funktionen nutze ich auch nicht.

Zitat
Naja, RM ist nur 16-bittig. Die große Masse der BIOS-Funktionen wird damit auskommen - nach dem Boot sind BIOS-Interrupts ohnehin fast nutzlos
Für DOS sind BIOS-Interrupts ganz gewiss nicht nutzlos und ein wesentlicher Bestandteil des Systems.
Ja. Für DOS selbst ist der PM aber auch nicht relevant (nur für Anwendungen wie EMM386 oder HIMEM). Ich meinte moderne Betriebssysteme. Für die sind BIOS-Interrupts nach dem Systemstart nur Makulatur.

Ich würde immer ein System mit auswechelbarer GraKa vorziehen und Notebooks/Schlappis haben mir zu viele Mängel als das ich dazu Lust verspühren würde mich damit zu befassen.
Sie sind praktisch und transportabel. Das ist für mich wichtiges Argument.

Aber wir kommen vom Thema ab.

Gruß,
Svenska

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #26 am: 18. April 2011, 16:27 »
Erwischt. Den nachfolgenden Beitrag hatte ich allerdings noch gar nicht gelesen um darauf gleichzeitig antworten zu können, denn beim Schreiben schaue ich eigentlich nicht ständig nach, ob schon neue Beiträge eingetroffen sind.
Wenn du auf Absenden drückst, weist dich das Forum eigentlich darauf hin. Das steht dann in roter Schrift über dem Eingabeformular, das in diesem Fall dann wieder erscheint.
Dieser Text wird unter jedem Beitrag angezeigt.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #27 am: 19. April 2011, 08:02 »
Erwischt. Den nachfolgenden Beitrag hatte ich allerdings noch gar nicht gelesen um darauf gleichzeitig antworten zu können, denn beim Schreiben schaue ich eigentlich nicht ständig nach, ob schon neue Beiträge eingetroffen sind.
Wenn du auf Absenden drückst, weist dich das Forum eigentlich darauf hin. Das steht dann in roter Schrift über dem Eingabeformular, das in diesem Fall dann wieder erscheint.
Das muss ich wohl dann übersehen haben. Danke für den Hinweis.

Dirk

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #28 am: 19. April 2011, 12:38 »
Hallo,


Ich habe den 16 Bit UnReal-Mode schon auf mehreren x86-Rechnerplattforemen erfolgreich verwendet. Begonnen mit 80386er, 80468, mit Rechner für Sockel 5, 6, 7, Pentuim 3, 4 und jetzt Core2Quad und ich habe noch nie derartige Probleme damit feststellen können.
Wir haben damals auf einem 486 und einem Pentium 60MHz (erste Generation, noch kein Sockel 7 aber dafür mit VLB-Slots auf dem Board) getestet und es nicht stabil hin bekommen. Aber vielleicht haben wir uns damals einfach nur zu blöd angestellt, auch das ist nicht ausgeschlossen.

Ich erweiterte aber eigentlich nur DS ....
Ich weis nicht ob das eine Rolle spielt aber ich denke eher nicht.

Ich sehe keinen Grund auf den UnReal-Mode zu verzichten, auf unseren Rechnern lief er bisher genauso stabil und zuverlässig wie RM und PM.
Der UnReal-Mode ist keine zugesicherte Eigenschaft und das macht ihn zu einer Kann-Angelegenheit. Es wäre also durchaus möglich das er irgendwann nicht mehr funktioniert, z.B. auf einer abgespeckten Embedded-Version die trotzdem voll x86-Kompatibel ist. Es gab mal eine 386EX-Variante (Single-Chip-Lösung mit dem üblichen x86-Drum-Herrum komplett integriert), die letzten davon sogar mit Unterstützung für CPUID und den SMM, speziell für kleine Lowest-Power-Applikationen, ich kann mir durchaus vorstellen das da nicht alle üblichen Tricks funktioniert haben, schon weil z.B. keine Windows-Kompatibilität gefragt war dürften auch die Endtests deutlich kleiner ausgefallen sein.


Könnte es eigentlich sein das der SMM den UnReal-Mode kaputt macht?
In den SMM kann ja von jedem beliebigen anderen Modus hinein gewechselt werden und der Ausgangs-Modus wird da speziell gesichert. Ich könnte mir vorstellen dass das Wiederherstellen von "undefinierten Betriebszuständen" (in genau diese Kategorie fällt der UnReal-Mode) nicht immer funktioniert.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #29 am: 20. April 2011, 08:40 »
Hallo,


Ich habe den 16 Bit UnReal-Mode schon auf mehreren x86-Rechnerplattforemen erfolgreich verwendet. Begonnen mit 80386er, 80468, mit Rechner für Sockel 5, 6, 7, Pentuim 3, 4 und jetzt Core2Quad und ich habe noch nie derartige Probleme damit feststellen können.
Wir haben damals auf einem 486 und einem Pentium 60MHz (erste Generation, noch kein Sockel 7 aber dafür mit VLB-Slots auf dem Board) getestet und es nicht stabil hin bekommen. Aber vielleicht haben wir uns damals einfach nur zu blöd angestellt, auch das ist nicht ausgeschlossen.

Ich erweiterte aber eigentlich nur DS ....
Ich weis nicht ob das eine Rolle spielt aber ich denke eher nicht.

Ich sehe keinen Grund auf den UnReal-Mode zu verzichten, auf unseren Rechnern lief er bisher genauso stabil und zuverlässig wie RM und PM.
Der UnReal-Mode ist keine zugesicherte Eigenschaft und das macht ihn zu einer Kann-Angelegenheit. Es wäre also durchaus möglich das er irgendwann nicht mehr funktioniert, z.B. auf einer abgespeckten Embedded-Version die trotzdem voll x86-Kompatibel ist. Es gab mal eine 386EX-Variante (Single-Chip-Lösung mit dem üblichen x86-Drum-Herrum komplett integriert), die letzten davon sogar mit Unterstützung für CPUID und den SMM, speziell für kleine Lowest-Power-Applikationen, ich kann mir durchaus vorstellen das da nicht alle üblichen Tricks funktioniert haben, schon weil z.B. keine Windows-Kompatibilität gefragt war dürften auch die Endtests deutlich kleiner ausgefallen sein.


Könnte es eigentlich sein das der SMM den UnReal-Mode kaputt macht?
In den SMM kann ja von jedem beliebigen anderen Modus hinein gewechselt werden und der Ausgangs-Modus wird da speziell gesichert. Ich könnte mir vorstellen dass das Wiederherstellen von "undefinierten Betriebszuständen" (in genau diese Kategorie fällt der UnReal-Mode) nicht immer funktioniert.


Grüße
Erik

Über SMM werden z.B. auch mit "USB legacy" die USB-Signale konvertiert, damit man eine USB-Mouse auch als PS2-Mouse benutzen kann.
Auf meinem Asus Striker-MoBo mit Sockel 775 und Intel Core2quad klappt das auch mit angeschalteten Unrealmode, ohne das der Unrealmode dadurch völlig ausgeschaltet, oder übermäßig gestört wird. Wenn ich es richtig verstanden habe, dann benutzt der SMM einen eigenen Adressierungsmode um auf den gesamten physikalischen Speicher zuzugreifen.

Als "undefinierten Betriebszustand" wurde der Unrealmode doch nur definiert, weil Microsaft ihr damals gerade herauskommendes Windows 95 vermarkten wollte, obwohl MS den Unrealmode im Himem.sys(version 2.03) ja selber jahrelang benutzt hat und der auf nahezu allen damaligen Rechnern ab 1988 verwendet wurde.

Erst mit der Einführung von Windows 95 wurde der Unrealmode nicht mehr interessant, da er nicht mit Windows kooperiert und Anwendungen die den Unrealmode nutzen möchten einen Neustart des Rechners benötigen. Vorher (im Zeitraum von 1990-1995) benutzten viele Computer-Spiele noch den Unrealmode. Hinterher davon zu sprechen das der Unrealmode ein "undefinierten Betriebszustand" wäre ist doch einfach nur eine dreiste Lüge, auch dann wenn manche neuere Hardware diesen selbstauferlegten "undefinierten Betriebszustand" durch nicht mehr kompatible Firmware in wenigen Fällen dazu inkompatibel gemacht haben. Auch der Umstand das Intel in einigen ihrer CPUs für den Unrealmode selber ein Loadall-Opcode integriert hat, zeigt es doch das wir es hier keinesfalls mit einem Hardware-Bug, oder undefinierten Betriebsmode zu tun haben, sondern das hier ganz gezielt eine Unterstützung für den Unrealmode beabsichtigt war.

Dirk
« Letzte Änderung: 20. April 2011, 09:39 von freecrac »

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #30 am: 21. April 2011, 19:34 »
Hallo,


Wenn ich es richtig verstanden habe, dann benutzt der SMM einen eigenen Adressierungsmode um auf den gesamten physikalischen Speicher zuzugreifen.
Richtig, der SMM ist wimre so was ähnliches wie ne Kreuzung aus Protected-Mode und UnReal-Mode. Es gibt aber noch einige Modi mehr auf modernen x86-CPU, z.B. für das nicht vertrauenswürdige Trusted-Computing. Ich könnte mir vorstellen das nicht jede beliebige Kombination vom Modus-Wechseln unter allen Umständen immer fehlerfrei funktioniert, AMD und Intel machen auch mal Fehler und testen tun die zu erst mal mit den wichtigen Features die häufig benutzt werden und die auch laut Datenblatt vorhanden sein müssen.

Als "undefinierten Betriebszustand" wurde der Unrealmode doch nur definiert,
Da hast Du mich leider missverstanden, es geht nicht um einen "undefinierten Betriebszustand" sondern um eine nicht zugesicherte Eigenschaft. Verantwortlich fühlen sich AMD, Intel und alle anderen die x86-CPUs herstellen nur für das was sie auch zugesichert haben, zuerst kommt das Pflichtprogramm und der Rest ist die Kür aber wenn sich dafür keiner interessiert und eben auch niemand Beifall klatscht dann wird die Kür auch schon mal weggelassen oder zumindest stark reduziert. Schau Dir mal an bei was für Fehler AMD und Intel in den letzten 20 Jahren ihre Produkte schon mal zurück gerufen haben und was für Fehler stillschweigend ignoriert werden (das Letzte findet man oft in den Erratas und das Erste in den Medien, ich würde wetten das ein Problem mit dem UnReal-Mode in den Erratas verschwindet).

obwohl MS den Unrealmode im Himem.sys(version 2.03) ja selber jahrelang benutzt hat und der auf nahezu allen damaligen Rechnern ab 1988 verwendet wurde.
Dann hätte HIMEM.SYS mit sehr vielen Spielen und etlichen anderen Programmen die einen DOS-Extender benutzen nicht ordentlich funktioniert. Das Problem am UnReal-Mode ist das man ihn nicht erkennen kann und auch nicht prüfen kann ob er beschädigt wurde, man kann nur probieren und schauen ob ne Exception kommt.

Vorher (im Zeitraum von 1990-1995) benutzten viele Computer-Spiele noch den Unrealmode.
Bitte nenne mal ein paar Beispiele. Alle DOS-Spiele aus der Zeit die ich kenne nutzen einen (zugekauften) anständigen DOS-Extender.

Auch der Umstand das Intel in einigen ihrer CPUs für den Unrealmode selber ein Loadall-Opcode integriert hat, zeigt es doch das wir es hier keinesfalls mit einem Hardware-Bug, oder undefinierten Betriebsmode zu tun haben, sondern das hier ganz gezielt eine Unterstützung für den Unrealmode beabsichtigt war.
Das der UnReal-Mode von den Intel-Ingeniören nicht unbedingt unbeabsichtig war vermute ich auch (ist halt so ein dirty Hack der sich eigentlich ganz von selbst nebenbei ergibt wenn man die Protected-Mode-Spezifikation passend interpretiert), aber das der UnReal-Mode jemals ein echtes zugesichertes Produkt-Feature war ist nicht richtig.


Grüße
Erik

PS.: die Art wie Du zitiert finde ich persönlich eher unschön, wenn Du schon meinen ganzen Beitrag am Stück zitierst dann kannst es auch ganz bleiben lassen denn er steht ja eh am Stück unmittelbar vor Deinem Beitrag
Reality is that which, when you stop believing in it, doesn't go away.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #31 am: 22. April 2011, 10:58 »

Wenn ich es richtig verstanden habe, dann benutzt der SMM einen eigenen Adressierungsmode um auf den gesamten physikalischen Speicher zuzugreifen.
Richtig, der SMM ist wimre so was ähnliches wie ne Kreuzung aus Protected-Mode und UnReal-Mode.

Nun habe ich gelesen das alle modernen Intel-CPUs wie bisher mit dem RM beginnen und dann zu einem "Reset Vector" nach 0xFFFFFFF0 (16 Byte unterhalb der 4 Gib Grenze und damit weit oberhalb des ersten Mib) springen, um dort den ersten Befehl auszuführen.  Dabei wird eine "hidden base address" für EIP verwendet. Auch wenn es nicht offiziell von Intel bekannt gegeben wird, wenn es alle modernen Intel so machen, dann ist es eben eine Methode die auf allen modernen Intel so verfügbar ist und das völlig unabhängig davon ob es nun offiziel zugesichert wird, oder auch nicht.

Zitat
Es gibt aber noch einige Modi mehr auf modernen x86-CPU, z.B. für das nicht vertrauenswürdige Trusted-Computing. Ich könnte mir vorstellen das nicht jede beliebige Kombination vom Modus-Wechseln unter allen Umständen immer fehlerfrei funktioniert, AMD und Intel machen auch mal Fehler und testen tun die zu erst mal mit den wichtigen Features die häufig benutzt werden und die auch laut Datenblatt vorhanden sein müssen.

Als "undefinierten Betriebszustand" wurde der Unrealmode doch nur definiert,
Da hast Du mich leider missverstanden, es geht nicht um einen "undefinierten Betriebszustand" sondern um eine nicht zugesicherte Eigenschaft.

Indirekt meinte ich ja genau das. Es ist einfach unwichtig ob es eine offizielle Bestätigung z.B. von Intel dafür gibt wenn alle modernen Intel es so machen. Auch ist es egal ob das nun als "Hack" aller modernen Intel-Rechner bezeichnet wird, oder als offiizell zugesichter Feature. Fakt ist, das es ein Standard auf modernen Intel CPUs geworden ist.

Zitat
Verantwortlich fühlen sich AMD, Intel und alle anderen die x86-CPUs herstellen nur für das was sie auch zugesichert haben, zuerst kommt das Pflichtprogramm und der Rest ist die Kür aber wenn sich dafür keiner interessiert und eben auch niemand Beifall klatscht dann wird die Kür auch schon mal weggelassen oder zumindest stark reduziert. Schau Dir mal an bei was für Fehler AMD und Intel in den letzten 20 Jahren ihre Produkte schon mal zurück gerufen haben und was für Fehler stillschweigend ignoriert werden (das Letzte findet man oft in den Erratas und das Erste in den Medien, ich würde wetten das ein Problem mit dem UnReal-Mode in den Erratas verschwindet).

Das denke ich auch, da der Unrealmode innerhalb von Anwendungen ja kaum mehr benutzt wird.

Zitat
obwohl MS den Unrealmode im Himem.sys(version 2.03) ja selber jahrelang benutzt hat und der auf nahezu allen damaligen Rechnern ab 1988 verwendet wurde.
Dann hätte HIMEM.SYS mit sehr vielen Spielen und etlichen anderen Programmen die einen DOS-Extender benutzen nicht ordentlich funktioniert.

Was soll daran denn nicht ordentlich funktioniert haben, es gab eben eine Menge Spiele die es benutzen konnten.

Zitat
Das Problem am UnReal-Mode ist das man ihn nicht erkennen kann und auch nicht prüfen kann ob er beschädigt wurde, man kann nur probieren und schauen ob ne Exception kommt.

Ich denke nicht das Spiele die für den RM/Unrealmode entwickelt wurden damit jemals grosse Probleme hatten. Jede dieser Anwendungen kann ja überprüfen ob Himem.sys gestartet wurde und ggf. wenn nicht ja selber den Unrealmode anschalten und ob er nun schon vorher aktiv war oder nicht ist hierbei doch völlig unwesentlich, da man aus dem RM, und/oder auch aus dem Unrealmode jederzeit wieder erneut den Unrealmode anschalten kann.  Wo ist nun also das Problem, wenn man nicht wirklich festellen kann ob Segmente erweitert wurden, oder noch nicht?

Zitat
Vorher (im Zeitraum von 1990-1995) benutzten viele Computer-Spiele noch den Unrealmode.
Bitte nenne mal ein paar Beispiele. Alle DOS-Spiele aus der Zeit die ich kenne nutzen einen (zugekauften) anständigen DOS-Extender.

Das kann ich dir leider auch nicht sagen welche Spiele nun genau den Unrealmode benutz haben, aber sicherlich waren es Spiele die den damaligen Himem.sys benutz haben, der ja den Unrealmode dafür benutzt hat. Und nicht jeder Entwickler hatte damals Lust dazu den umständlicher Weg über DOS-Extender zu wählen.

Zitat
Auch der Umstand das Intel in einigen ihrer CPUs für den Unrealmode selber ein Loadall-Opcode integriert hat, zeigt es doch das wir es hier keinesfalls mit einem Hardware-Bug, oder undefinierten Betriebsmode zu tun haben, sondern das hier ganz gezielt eine Unterstützung für den Unrealmode beabsichtigt war.
Das der UnReal-Mode von den Intel-Ingeniören nicht unbedingt unbeabsichtig war vermute ich auch (ist halt so ein dirty Hack der sich eigentlich ganz von selbst nebenbei ergibt wenn man die Protected-Mode-Spezifikation passend interpretiert), aber das der UnReal-Mode jemals ein echtes zugesichertes Produkt-Feature war ist nicht richtig.

So wie ich es verstanden habe ist der Loadall-Befehl doch nicht für den PM entwickelt worden, sondern nur für den RM, um nicht in den PM schalten zu müssen. Wenn es nur ein Nebenproduckt bei der Entwicklung des PM gewesen wäre, dann hätte man ihn doch gar nich implementieren müssen.

Ob nun der Unrealmode offizilel zugesichert wurde, das intersesierte doch die damaligen Entwickler ebenso wenig, wie es mich heute interessiert, wichtig ist doch nur ob er im weitem Umfeld verfügbar ist, oder eben nicht.  Das es hier wenige Ausnahmen gibt wo er dann nicht reibungslos funktioniert ist dabei doch eher nebensächlich. Auf den meisten Rechner bis zu heutigen modernen Rechnern ist der Unrealmode verfügbar, alleine das zählt und dafür brauche ich dann bestimmt keine offizielle Zusage von Intel, AMD mehr dafür. Mir genügt es das er bis heute auch auf modernen Rechner im weitem Umfeld benutzbar ist.

Zitat
PS.: die Art wie Du zitiert finde ich persönlich eher unschön, wenn Du schon meinen ganzen Beitrag am Stück zitierst dann kannst es auch ganz bleiben lassen denn er steht ja eh am Stück unmittelbar vor Deinem Beitrag

Ja das finde ich auch unschön, wo du es nun erwähnst. Ich war wohl noch etwas zu müde als ich den Beitrag schrieb, so das es mir dabei gar nicht aufgefallen ist. Eigentlich versuche ich auch so etwas zu vermeiden.

Dirk
« Letzte Änderung: 22. April 2011, 11:02 von freecrac »

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #32 am: 26. April 2011, 09:39 »
Hallo,


Nun habe ich gelesen das alle modernen Intel-CPUs wie bisher mit dem RM beginnen und dann zu einem "Reset Vector" nach 0xFFFFFFF0 (16 Byte unterhalb der 4 Gib Grenze und damit weit oberhalb des ersten Mib) springen, um dort den ersten Befehl auszuführen.  Dabei wird eine "hidden base address" für EIP verwendet. Auch wenn es nicht offiziell von Intel bekannt gegeben wird, wenn es alle modernen Intel so machen, dann ist es eben eine Methode die auf allen modernen Intel so verfügbar ist und das völlig unabhängig davon ob es nun offiziel zugesichert wird, oder auch nicht.
Dieses Verhalten ist wimre offiziell so dokumentiert/spezifiziert. Es ist aber ein Unterschied ob in ein (Schatten-)Register beim Reset ein bestimmter Wert geladen wird oder ob zur Laufzeit ein bestimmter Wert geladen wird, hängt mit dem physischen Aufbau der D-FlipFlops zusammen aus denen die Register zusammengesetzt sind. Sobald das erste mal CS neu geladen wird (also durch einen FAR-JMP/CALL) kommt eine normale RM-Basis in das zugehörige Schatten-Register (das Limit war ja schon vorher auf 64 kB).

Indirekt meinte ich ja genau das. Es ist einfach unwichtig ob es eine offizielle Bestätigung z.B. von Intel dafür gibt wenn alle modernen Intel es so machen. Auch ist es egal ob das nun als "Hack" aller modernen Intel-Rechner bezeichnet wird, oder als offiizell zugesichter Feature. Fakt ist, das es ein Standard auf modernen Intel CPUs geworden ist.
Falls Du jemals dazu kommen solltest kommerzielle Software zu entwickeln dann wird Dir Dein Chef sicher etwas von Produkthaftung usw. erzählen und dann ist auch verständlich warum es keine kommerzielle SW gibt die diesen UnReal-Mode benutzt. Wenn ich ein Programm kaufen würde auf dessen Verpackung "x86-PC" steht und das geht dann plötzlich nicht dann habe ich ein Anspruch auf Wandlung das Kaufvertrages.
Es fällt mir schwer zu glauben das Microsoft den UnReal-Mode tatsächlich mal benutzt haben soll, aber selbst wenn dann ist Microsoft einfach eine andere Kategorie von Software-Anbieter da seit über 10 Jahren selbst auf CPUs ein offizielles Siegel "Kompatibel mit MS-Windows [aktuelle Version]" einfach Pflicht ist. Auch arbeitet MS schon immer eng mit Intel und auch AMD zusammen.

da der Unrealmode innerhalb von Anwendungen ja kaum mehr benutzt wird.
Und auch nie wirklich breit benutzt wurde, außer von ein paar kleinen Spezial-Programmen vielleicht.
Wenn Du wirklich der Meinung bist das der UnReal-Mode oft benutzt wurde dann nenne bitte mal ein paar Beispiele (an Programmen mit nennenswerter Marktrelevanz).

da man aus dem RM, und/oder auch aus dem Unrealmode jederzeit wieder erneut den Unrealmode anschalten kann.  Wo ist nun also das Problem, wenn man nicht wirklich festellen kann ob Segmente erweitert wurden, oder noch nicht?
Wenn man das wirklich ständig machen würde würde das enorm viel Performance kosten, die Modus-Wechsel benötigen ziemlich viele Taktzyklen (sich ja auch nicht dafür vorgesehen ständig benutzt zu werden).

aber sicherlich waren es Spiele die den damaligen Himem.sys benutz haben, der ja den Unrealmode dafür benutzt hat. Und nicht jeder Entwickler hatte damals Lust dazu den umständlicher Weg über DOS-Extender zu wählen.
HIMEM.SYS wird dazu benutzt um den XMS zu Verwalten (eine Art malloc und free für den XMS) und nicht um ihn aktiv zu benutzen.
Und DOS-Extender sind eigentlich recht einfach zu benutzen, man benötigt nur eine passende Entwicklungsumgebung und die haben die Anbieter damals oft mitgeliefert. (die Entwicklungsumgebung von PharLab für den TNT-DOS-Extender hab ich heute noch und die ist etwa von 1985, AutoDesk hat für das damalige AutoCAD 11 auch auf einen DOS-Extender gesetzt und ein umfangreiches Entwicklungspaket angeboten wenn man für das AutoCAD 11 Treiber für Grafikkarten oder Digitizer usw. entwickeln wollte)

So wie ich es verstanden habe ist der Loadall-Befehl doch nicht für den PM entwickelt worden, sondern nur für den RM, um nicht in den PM schalten zu müssen.
Der LOADALL-Befehl war auch nie offiziell spezifiziert und war auch auf jeder CPU-Generation unterschiedlich realisiert (was ja auch logisch ist da er sehr stark von der internen Funktionsweise der CPU abhängt). Außerdem gibt es seit dem 486 kein LOADALL mehr (angeblich auf drängen der NSA).

Mir genügt es das er bis heute auch auf modernen Rechner im weitem Umfeld benutzbar ist.
Dann hoffe ich sehr das Du niemals Software machst auf die ich angewiesen bin, sowas ist einfach keine ordentliche Herangehensweise. Sorry, wenn das hart oder arrogant klingt aber wenn man Software entwickelt die zuverlässig funktionieren soll dann muss man auch auf Dinge aufbauen die ebenfalls zuverlässig funktionieren bzw. wo man jemanden dafür verantwortlich machen kann wenn diese Dinge mal nicht so funktionieren wie sie sollten. Das Konzept des Schuld-Pointers ist Dir bekannt?


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #33 am: 28. April 2011, 18:47 »
Hallo,


Nun habe ich gelesen das alle modernen Intel-CPUs wie bisher mit dem RM beginnen und dann zu einem "Reset Vector" nach 0xFFFFFFF0 (16 Byte unterhalb der 4 Gib Grenze und damit weit oberhalb des ersten Mib) springen, um dort den ersten Befehl auszuführen.  Dabei wird eine "hidden base address" für EIP verwendet. Auch wenn es nicht offiziell von Intel bekannt gegeben wird, wenn es alle modernen Intel so machen, dann ist es eben eine Methode die auf allen modernen Intel so verfügbar ist und das völlig unabhängig davon ob es nun offiziel zugesichert wird, oder auch nicht.
Dieses Verhalten ist wimre offiziell so dokumentiert/spezifiziert.

Es ist aber ein Unterschied ob in ein (Schatten-)Register beim Reset ein bestimmter Wert geladen wird oder ob zur Laufzeit ein bestimmter Wert geladen wird, hängt mit dem physischen Aufbau der D-FlipFlops zusammen aus denen die Register zusammengesetzt sind. Sobald das erste mal CS neu geladen wird (also durch einen FAR-JMP/CALL) kommt eine normale RM-Basis in das zugehörige Schatten-Register (das Limit war ja schon vorher auf 64 kB).

Solch einen Unterschied im Verhalten der Schattenregister habe ich noch auf keinen der von mir benutzen 80386 bishin zu Core2-Architektur festellen können. Welcher 80386+ soll sich denn hier anders verhalten, so das man ich nicht im Unrealmode betreiben kann?

Zitat
Indirekt meinte ich ja genau das. Es ist einfach unwichtig ob es eine offizielle Bestätigung z.B. von Intel dafür gibt wenn alle modernen Intel es so machen. Auch ist es egal ob das nun als "Hack" aller modernen Intel-Rechner bezeichnet wird, oder als offiizell zugesichter Feature. Fakt ist, das es ein Standard auf modernen Intel CPUs geworden ist.
Falls Du jemals dazu kommen solltest kommerzielle Software zu entwickeln dann wird Dir Dein Chef sicher etwas von Produkthaftung usw. erzählen und dann ist auch verständlich warum es keine kommerzielle SW gibt die diesen UnReal-Mode benutzt.

Ich benutze Computer nur rein privat. Es gab zwischen 1990-1995 DOS-Spiele die den Unrealmode benutzen.

Zitat
Wenn ich ein Programm kaufen würde auf dessen Verpackung "x86-PC" steht und das geht dann plötzlich nicht dann habe ich ein Anspruch auf Wandlung das Kaufvertrages.

Bei der gesetzlicher Gewährleistung darf ein Händler vorher noch nachbessern, bzw. ein funktionstüchtiges Exemplar aushändigen, bevor man überhaupt ein Recht auf Wandlung bekommt. Eine sofortige Wandlung weil es plötlich doch nicht geht, das wäre nur aus Kulanz möglich, oder wenn der Händler kein funktionstüchtiges Exemplar verfügbar hat.

Zitat
Es fällt mir schwer zu glauben das Microsoft den UnReal-Mode tatsächlich mal benutzt haben soll,

http://www.os2museum.com/wp/?p=322
"In August 1988, HIMEM.SYS version 2.03 implemented a new method of copying memory on 386 compatible processors, using unreal mode (or Big Real mode as it’s called in the HIMEM source)"

Leider kann ich nur den Sourcode von Version 2.06 finden in dem aber auf den Big Mode von Version 2.03 hingewiesen wird:
http://202.129.48.214/CD3003/Source/XMMAPI/XMS20/HIMEM.ASM
;   2.03   - Added 386 Big Mode MoveBlock         8/04/88


Zitat
aber selbst wenn dann ist Microsoft einfach eine andere Kategorie von Software-Anbieter da seit über 10 Jahren selbst auf CPUs ein offizielles Siegel "Kompatibel mit MS-Windows [aktuelle Version]" einfach Pflicht ist.

Von mir aus kann auf modernen CPUs auch gerne kompatibel mit Linux stehen, denn an derartige Plfichten brauche ich mich ja nicht gebunden fühlen.

Zitat
Auch arbeitet MS schon immer eng mit Intel und auch AMD zusammen.

Davon merkt man aber sehr wenig so verbugt wie Windows immer ist.

Zitat
Zitat
da der Unrealmode innerhalb von Anwendungen ja kaum mehr benutzt wird.
Und auch nie wirklich breit benutzt wurde, außer von ein paar kleinen Spezial-Programmen vielleicht.
Wenn Du wirklich der Meinung bist das der UnReal-Mode oft benutzt wurde dann nenne bitte mal ein paar Beispiele (an Programmen mit nennenswerter Marktrelevanz).

Welche Spiele nun genau den Unrealmode benutzten ist mir auch nicht bekannt. Es gab aber zahlreiche Spiele im Zeitraum von 1990 - 1995 die den Unrealmode benutzten, das ist allgemein bekannt. In wie weit diese Spiele auch marktrelevant waren ist doch völlig unwerheblich, denn die technische Möglichkeit war allseits vorhanden in den Unrealmode zu schalten, denn sonst hätte kein einziges dieser Spiele, welches den Unrealmode benutzt, es jemals geschaft auf dem Markt angeboten zu werden.

Zitat
da man aus dem RM, und/oder auch aus dem Unrealmode jederzeit wieder erneut den Unrealmode anschalten kann.  Wo ist nun also das Problem, wenn man nicht wirklich festellen kann ob Segmente erweitert wurden, oder noch nicht?
Wenn man das wirklich ständig machen würde würde das enorm viel Performance kosten, die Modus-Wechsel benötigen ziemlich viele Taktzyklen (sich ja auch nicht dafür vorgesehen ständig benutzt zu werden).

Mit jederzeit meine ich ganz gewiss nicht ständig, sondern nur dann wenn hin und her geschaltet werden soll und ob man nun in den RM schaltet, oder in den Unrealmode, das wird ganz gewiss keinen zeitlichen Unterschied machen. Ausgehend von dem Umstand das man nicht feststellen kann ob Segmente erweitert wurden (wir uns im Unrealmode befinden), oder doch nur im RM, macht das überhaupt keinen zeitlichen Unterschied wenn man in den PM schaltet und wieder zurück.

Zitat
aber sicherlich waren es Spiele die den damaligen Himem.sys benutz haben, der ja den Unrealmode dafür benutzt hat. Und nicht jeder Entwickler hatte damals Lust dazu den umständlicher Weg über DOS-Extender zu wählen.
HIMEM.SYS wird dazu benutzt um den XMS zu Verwalten (eine Art malloc und free für den XMS) und nicht um ihn aktiv zu benutzen.

Hä, warum sollte man HIMEM.SYS (und darüber XMS-Speicher) nicht selber aktiv benutzen können (ohne EMS)?

Zitat
Und DOS-Extender sind eigentlich recht einfach zu benutzen, man benötigt nur eine passende Entwicklungsumgebung und die haben die Anbieter damals oft mitgeliefert. (die Entwicklungsumgebung von PharLab für den TNT-DOS-Extender hab ich heute noch und die ist etwa von 1985, AutoDesk hat für das damalige AutoCAD 11 auch auf einen DOS-Extender gesetzt und ein umfangreiches Entwicklungspaket angeboten wenn man für das AutoCAD 11 Treiber für Grafikkarten oder Digitizer usw. entwickeln wollte)

Im Vergleich zu einer linearen Adressierung im Unrealmode (beispielsweise über DS:Reg32) sind DOS-Extender aber nur sehr umständlich benutzbar.
Ich würde mir das nicht freiwillig antun wollen einen DOS-Extender zu benutzen, wenn es nicht sein muss und das es auch einfacher geht habe ich ja schon seit Jahren erfolgreich auf verschiedenen CPUs seit 80386 bishin zu modernen CPUs von Intel feststellen können. Auch ohne das es eine offizielle Dokumentation dafür gibt.

Zitat
So wie ich es verstanden habe ist der Loadall-Befehl doch nicht für den PM entwickelt worden, sondern nur für den RM, um nicht in den PM schalten zu müssen.
Der LOADALL-Befehl war auch nie offiziell spezifiziert und war auch auf jeder CPU-Generation unterschiedlich realisiert (was ja auch logisch ist da er sehr stark von der internen Funktionsweise der CPU abhängt). Außerdem gibt es seit dem 486 kein LOADALL mehr (angeblich auf drängen der NSA).

Es ist einfach unwichtig ob der LOADALL-Befehl je offiziell spezifiziert wurde, er war vorhanden und das genügt um zu zeigen das es für den Unrealmode
eine Unterstützung gab die beabsichtigt implementiert wurde und wenn du nun auch noch darauf hinweist, das es verschiedene Arten gab diesen Befehl
zu implementieren, na dann ist das noch mehr ein Grund von einem weit verbreiteten Unrealmode zu reden.

Zitat
Mir genügt es das er bis heute auch auf modernen Rechner im weitem Umfeld benutzbar ist.
Dann hoffe ich sehr das Du niemals Software machst auf die ich angewiesen bin, sowas ist einfach keine ordentliche Herangehensweise.

Ich sehe schon "ordentlich" ist wohl nur das für dich nur was du offiziell erlaubt/bestätigst bekommst. Ich hingegen schaue lieber selber nach und probiere es einfach mal aus und wenn es dann auf verschiedener Hardware beginnend vom 80386 bis zu modernen Rechnern funktioniert, dann bilde ich mir ein eigenen Urteil. Egal ob es so nicht offizilell gewollt ist, oder auch nicht. Für mich ist das Jacke wie Hose.

Zitat
Sorry, wenn das hart oder arrogant klingt aber wenn man Software entwickelt die zuverlässig funktionieren soll dann muss man auch auf Dinge aufbauen die ebenfalls zuverlässig funktionieren

Bei allen den von mir verwendeten x86-Rechnern seit 80386 lief der Unrealmode immer zuverlässig. Mir genügt das.

Zitat
bzw. wo man jemanden dafür verantwortlich machen kann wenn diese Dinge mal nicht so funktionieren wie sie sollten. Das Konzept des Schuld-Pointers ist Dir bekannt?


Grüße
Erik

Den Begriff Schuld-Pointers kenne ich noch nicht.  Ich suche gleich mal danach.

Eine Verantwortung für die Sachen die ich programmiert haben lehne ich grundsätzlich ab.
Alles darf jeder Anwender in völliger Eigenverantwortung benutzen.

Dirk

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #34 am: 28. April 2011, 20:22 »
Hallo,


Es ist aber ein Unterschied ob in ein (Schatten-)Register beim Reset ein bestimmter Wert geladen wird oder ob zur Laufzeit ein bestimmter Wert geladen wird, hängt mit dem physischen Aufbau der D-FlipFlops zusammen aus denen die Register zusammengesetzt sind. Sobald das erste mal CS neu geladen wird (also durch einen FAR-JMP/CALL) kommt eine normale RM-Basis in das zugehörige Schatten-Register (das Limit war ja schon vorher auf 64 kB).

Solch einen Unterschied im Verhalten der Schattenregister habe ich noch auf keinen der von mir benutzen 80386 bishin zu Core2-Architektur festellen können.
Was für einen Unterschied möchtest Du feststellen? Wie sich die Transistoren in den CPUs verhalten? Das folgt zum einen den Gesetzen der Physik und ist zum anderen so umfangreich das sich das nicht von außen betrachtet auf einzelne Transistoren runter brechen lässt.

Welcher 80386+ soll sich denn hier anders verhalten, so das man ich nicht im Unrealmode betreiben kann?
Habe ich irgenwo geschrieben das ich eine 80386+ CPU kenne die den UnReal-Mode nicht unterstützt?
Ich weise lediglich darauf hin das diese Betriebsart nicht zugesichert wird und damit eine Unterstützung möglicherweise in Zukunft nicht mehr vorhanden sein könnte (wenn z.B. mal Transistoren gespart werden müssen).

Ich benutze Computer nur rein privat.
Auch bei meinem privaten Computer ist für mich Zuverlässigkeit ein sehr wichtiges Kriterium. Wenn Du das für Dich persönlich anders entscheidest ist das völlig in Ordnung, aber deswegen kannst Du nicht auf andere schließen.

Es gab zwischen 1990-1995 DOS-Spiele die den Unrealmode benutzen.
Beispiele Bitte!

Bei der gesetzlicher Gewährleistung darf ein Händler vorher noch nachbessern ....
Wenn es sich wirklich um eine Software handelt die den UnReal-Mode nutzt und meine x86-CPU den aber nicht unterstützt (egal aus welchen Grund) dann dürfte es schwer für den Händler werden ein funktionsfähiges Exemplar dieser Software aus dem Regal zu nehmen und das Nachbessern würde einem Neuentwickeln gleich kommen und das kostet unter Umständen sehr viel Geld.

Leider kann ich nur den Sourcode von Version 2.06 finden in dem aber auf den Big Mode von Version 2.03 hingewiesen wird:
http://202.129.48.214/CD3003/Source/XMMAPI/XMS20/HIMEM.ASM
;   2.03   - Added 386 Big Mode MoveBlock         8/04/88
Okay, Microsoft hat also tatsächlich mal in einer Version von HIMEM.SYS den UnReal-Mode benutzt. Warum nur in einer Version? Gab es da etwa Probleme mit? Ob der verantwortliche Programmierer, der das eingebaut hat, heute noch für MS arbeitet?

Von mir aus kann auf modernen CPUs auch gerne kompatibel mit Linux stehen, denn an derartige Plfichten brauche ich mich ja nicht gebunden fühlen.
Andere fühlen sich an solche Dinge gebunden. Z.B. Hersteller von Bankautomaten legen extrem großen Wert darauf die verwendete Hardware sehr gründlich zu validieren, die testen wirklich jeden einzelnen Rechen-Befehl in der verwendeten CPU damit die auch alle gehen und wenn die CPU in einer neuen Masken-Revision raus kommt wird noch mal von vorne Validiert. Das machen die (obwohl das viel Geld kostet) weil der Image-Verlust für die Bank (die diesen Automaten für sich einsetzt) durch eine Fehlbuchung deutlich schlimmer wäre.

Welche Spiele nun genau den Unrealmode benutzten ist mir auch nicht bekannt. Es gab aber zahlreiche Spiele im Zeitraum von 1990 - 1995 die den Unrealmode benutzten, das ist allgemein bekannt.
Also mir ist davon nichts bekannt und ich hab in dieser Zeit viele Spiele ausprobiert (natürlich hab ich nicht in jedes reingesehen aber bei vielen hat man bekannte Anzeichen bestimmter DOS-Extender gefunden). Also von "allgemein bekannt" kann man da wirklich nicht reden. Ich will ja gar nicht bestreiten das es nicht doch einzelne kommerzielle Programme gab die den UnReal-Mode genutzt haben aber echte Bedeutung hatte davon sicher keines.

Hä, warum sollte man HIMEM.SYS (und darüber XMS-Speicher) nicht selber aktiv benutzen können (ohne EMS)?
Klar kannst Du den XMS selber aktiv benutzen (nachdem Du Deinen Block gelockt hast um auch seine physische Adresse zu kennen) aber HIMEM.SYS benutzt Deinen Block nicht für sich.

Im Vergleich zu einer linearen Adressierung im Unrealmode (beispielsweise über DS:Reg32) sind DOS-Extender aber nur sehr umständlich benutzbar.
Hast Du Dich denn damit schon mal wirklich richtig beschäftigt? Auf was für eigenen Erfahrungen beruht dieses Urteil von Dir?
Vor 10 Jahren hab ich einige große Programme mit Hilfe von verschiedenen DOS-Extendern entwickelt und das ist nicht schwieriger als würde man ein Programm für Windows oder für POSIX entwickeln, DOS-Extender sind einfach nur eine andere Laufzeitumgebung (mit spezifischen Schwächen aber auch Stärken).

Es ist einfach unwichtig ob der LOADALL-Befehl je offiziell spezifiziert wurde, er war vorhanden und das genügt um zu zeigen das es für den Unrealmode eine Unterstützung gab die beabsichtigt implementiert wurde
Den LOADALL-Befehl gab es auch auf 286, hatten die etwa auch einen UnReal-Mode? Das es den LOADALL-Befehl gab hat ganz sicher andere Gründe.

.... Mir genügt das.
Es gibt Bereiche wo das nicht genügt. Wenn Du z.B. für ein medizinisches Gerät eine Zulassung haben möchtest und der Prüfer sieht das Du irgend ein Bauteil außerhalb der Spezifikation betreibst kannst Du Dir sicher sein das die Zulassung nicht allzu bald erteilt werden wird. Ich hab schon mal ein medizinisches Gerät durch den Zulassungsprozess begleitet (ich hab bei einer der Komponenten den FPGA-Inhalt und Teile des Schaltplans entwickelt) und das ist wahrlich kein Zuckerschlecken.

Eine Verantwortung für die Sachen die ich programmiert haben lehne ich grundsätzlich ab.
Alles darf jeder Anwender in völliger Eigenverantwortung benutzen.
Stell Dir vor Dein Stromanbieter würde das auch so handhaben. Ich bin mir sicher Du findest Dinge in Deinem Leben wo es Dir doch extrem wichtig ist das die 100% Zuverlässig funktionieren bzw. das die verantwortlichen Entwickler zumindest alles menschenmögliche Unternommen haben um die Zuverlässigkeit zu hoch wie nur irgend möglich zu bringen.
Sorry, aber solange Du so eine Meinung vertrittst hoffe ich wirklich das ich nie auf Dinge von Dir angewiesen bin.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #35 am: 29. April 2011, 02:45 »
Hallo,


Es ist aber ein Unterschied ob in ein (Schatten-)Register beim Reset ein bestimmter Wert geladen wird oder ob zur Laufzeit ein bestimmter Wert geladen wird, hängt mit dem physischen Aufbau der D-FlipFlops zusammen aus denen die Register zusammengesetzt sind. Sobald das erste mal CS neu geladen wird (also durch einen FAR-JMP/CALL) kommt eine normale RM-Basis in das zugehörige Schatten-Register (das Limit war ja schon vorher auf 64 kB).

Solch einen Unterschied im Verhalten der Schattenregister habe ich noch auf keinen der von mir benutzen 80386 bishin zu Core2-Architektur festellen können.
Was für einen Unterschied möchtest Du feststellen?

Ich möchte im Verhalten der Schatten-Register eigentlich gar keinen Unterschied feststellen. Ich bin nur überascht davon, das es dabei überhaupt einen Unterschied geben soll zwischen der Laufzeit und einem Reset.

Zitat
Wie sich die Transistoren in den CPUs verhalten? Das folgt zum einen den Gesetzen der Physik und ist zum anderen so umfangreich das sich das nicht von außen betrachtet auf einzelne Transistoren runter brechen lässt.

Und wie macht sich der Unterschied im Verhalten der CPU programmtechnisch bemerkbar?

Zitat
Welcher 80386+ soll sich denn hier anders verhalten, so das man ich nicht im Unrealmode betreiben kann?
Habe ich irgenwo geschrieben das ich eine 80386+ CPU kenne die den UnReal-Mode nicht unterstützt?

Abgeleitet von dem von dir erwähnten Unterschied zwischen den Schatten-Register einmal zur Laufzeit und einmal beim Reset erschien es mir naheliegend, das du hier auch ein abweichendes Verhalten bezüglich des Unrealmodes hättest andeuten können. Daher frage ich nun einmal gezielt nach, ob du das damit meintest. Wenn du das jedoch gar nicht so meintest, dann freue ich mich darüber.

Aber von welchen Unterschied redest du denn nun genau?

Zitat
Ich weise lediglich darauf hin das diese Betriebsart nicht zugesichert wird und damit eine Unterstützung möglicherweise in Zukunft nicht mehr vorhanden sein könnte (wenn z.B. mal Transistoren gespart werden müssen).

Damit rechne ich auch das zukünftlige Rechner auch nicht mehr im RM starten und auch kein RM-Bios mehr mitbringen. Ich denke Rechner mit EFI-Bios sind bisher immer noch zweigleisig aufgebaut und bringen über den Kompatibilitätsmode auch den RM mit. Die Entwicklung geht aber ständig weiter. Doch es dauert noch eine Weile bis alle Retro-Museums-Rechner kaputt gehen und ganz genau so lange wird es auch den RM und auch den Unrealmode geben. Ich denke nicht das eine Sparmassnahme nur den Unrealmode verhindert, nicht aber den RM. Also wenn, dann geht beides nicht mehr, denn ich denke das es keine speziellen Transistoren nur für den Unrealmode gibt ganz ohne das sie nicht ebenso anders benutzt werden.

Zitat
Ich benutze Computer nur rein privat.
Auch bei meinem privaten Computer ist für mich Zuverlässigkeit ein sehr wichtiges Kriterium.

Meine Unrealmode-Anwendungen laufen stets zu 100% zuverlässig. Das kann man von Windows und Anwendungen die dort laufen leider nicht immer behaupten, denn dafür ist selbst Windows 7 einfach immer noch zu fehlerhaft, als das man hier von einer hohen Zuverlässigkeit reden kann.

Zitat
Wenn Du das für Dich persönlich anders entscheidest ist das völlig in Ordnung, aber deswegen kannst Du nicht auf andere schließen.

Aaaah, du möchtest damit andeuten das der Unrealmode weniger zuverlassig sein soll und stütz diese Vermutung einzig und alleine auf den Umstand das der Unrealmode nicht dokumentiert wurde, weil MS das Windows 95 damals vermarkten wollte und wie du schon sagtest sehr eng mit Intel und AMD zusammen arbeitet und man sich dann wohl darauf geeinigt hat, hier ein Mantel des Stillschweigens über den Unrealmode auszubreiten, obwohl MS den Unrealmode selber vor Jahren im Himem.sys benutzt hat und fast alle x86-Rechner damit betrieben wurden. Nun gut, wenn es das ist was dich zuverlässig werden läßt, ich stütze mich auf meine eigenen Erfahrungen und höre nicht nur auf das was uns Großkonzerne veraten.

Nein du hast nicht gesagt das du einen 80386+ kennst bei dem der Unrealmode nicht funktioniert. Ich vermute nun das du keinen einzigen Rechner kennst bei dem der Unrealmode nicht funktioniert. Soweit zu der von dir erwarteten Zuverlässigkeit.

Zitat
Es gab zwischen 1990-1995 DOS-Spiele die den Unrealmode benutzen.
Beispiele Bitte!

Es ist ja nicht gerade so das DOS-Spiele als Opensource den Markt überschwemmt haben.
So wüßte ich auch gerne mehr über die Spiele und kann dir leider auch kein konkretes Beispiel nennen.

Bei der gesetzlicher Gewährleistung darf ein Händler vorher noch nachbessern ....
Wenn es sich wirklich um eine Software handelt die den UnReal-Mode nutzt und meine x86-CPU den aber nicht unterstützt (egal aus welchen Grund) dann dürfte es schwer für den Händler werden ein funktionsfähiges Exemplar dieser Software aus dem Regal zu nehmen und das Nachbessern würde einem Neuentwickeln gleich kommen und das kostet unter Umständen sehr viel Geld.

Ja wenn der UnReal-Mode bei dir nicht funktioniert. Hast du eine funktionstüchtige Anwendung die den Unrealmode unterstützt auf deinem Rechner überhaupt schon einmal ausprobiert?

Zitat
Leider kann ich nur den Sourcode von Version 2.06 finden in dem aber auf den Big Mode von Version 2.03 hingewiesen wird:
http://202.129.48.214/CD3003/Source/XMMAPI/XMS20/HIMEM.ASM
;   2.03   - Added 386 Big Mode MoveBlock         8/04/88
Okay, Microsoft hat also tatsächlich mal in einer Version von HIMEM.SYS den UnReal-Mode benutzt. Warum nur in einer Version? Gab es da etwa Probleme mit?

Soweit war ich noch gar nicht Suchen. Woraus wird denn ersichtlich das bereits in der nächsten Version der Unrealmode nicht mehr benutz wurde?

Ich spekuliere mal, die CPUs wurden immer schneller und es sollte mehr Protection geben, so das der V86-Mode immer beliebter wurde?

Zitat
Ob der verantwortliche Programmierer, der das eingebaut hat, heute noch für MS arbeitet?

Nicht das es mich wirklich interessieren würde, aber arbeitet denn heute aus der damaligen Zeit überhaupt noch einer der damaligen Programmierer bei MS?

Zitat
Von mir aus kann auf modernen CPUs auch gerne kompatibel mit Linux stehen, denn an derartige Plfichten brauche ich mich ja nicht gebunden fühlen.
Andere fühlen sich an solche Dinge gebunden. Z.B. Hersteller von Bankautomaten legen extrem großen Wert darauf die verwendete Hardware sehr gründlich zu validieren, die testen wirklich jeden einzelnen Rechen-Befehl in der verwendeten CPU damit die auch alle gehen und wenn die CPU in einer neuen Masken-Revision raus kommt wird noch mal von vorne Validiert. Das machen die (obwohl das viel Geld kostet) weil der Image-Verlust für die Bank (die diesen Automaten für sich einsetzt) durch eine Fehlbuchung deutlich schlimmer wäre.

[Ironie]Ok das überzeugt mich, das Betrügen mit rein virtuellen Werten an den Börsen ist sicherlich sehr viel einfacher, da es ja kaum jemand zu bemerken scheint. So ein minimaler Rechenfehler ist im Vergleich dazu natürlich sehr viel mehr beachtenswerter.[/Ironie]

Mal Spaß wieder beiseite, wir leben in einer Welt in der wir auf Computer nur sehr schwer wieder verzichten können. Da müssen wir uns ganz gewiss auf die Funktionsweise dieser Geräte auch verlassen können. Doch ich programmiere nur für rein private Zwecke und ich habe es auch zukünftig nicht vor einen gewerblichen Zweck damit zu erfüllen. So fühle ich mich auch in keinster Weise daran gebunden nur spezifizierte Verfahren zu benutzen. Ich vermute auch, das die meisten Programmierer ebenfalls nur aus rein privater Natur heraus Spaß daran haben ein klein wenig zu programmieren und diese brauchen für sich eben nicht wirklich eine so hohe Zuverlässigkeit das ihre Anwendung auf allen Rechner nur mit spezifizierten Verfahren läuft. Es genügt das es funktioniert, wir brauchen keinen Intel-Papst der unser Verfahren im nachherein noch segnet.

Zitat
Welche Spiele nun genau den Unrealmode benutzten ist mir auch nicht bekannt. Es gab aber zahlreiche Spiele im Zeitraum von 1990 - 1995 die den Unrealmode benutzten, das ist allgemein bekannt.
Also mir ist davon nichts bekannt und ich hab in dieser Zeit viele Spiele ausprobiert (natürlich hab ich nicht in jedes reingesehen aber bei vielen hat man bekannte Anzeichen bestimmter DOS-Extender gefunden). Also von "allgemein bekannt" kann man da wirklich nicht reden. Ich will ja gar nicht bestreiten das es nicht doch einzelne kommerzielle Programme gab die den UnReal-Mode genutzt haben aber echte Bedeutung hatte davon sicher keines.

Genau davon ist aber die Rede das eine erhebliche Anzahl an DOS-Spiele im Zeitraum von 1990-1995 den Unrealmode benutzt haben.
Ich weiss nun nicht welche Spiele für dich überhaupt bedeutsam sind, oder einmal waren. Ich habe unter DOS eigentlich sehr wenig gespielt und eher programmiert. Auch fand ich DOS-Spiele bisher nie besonders reizvoll. Heute spiele ich sehr viele mehr mit dem Spiele-Windows, denn für alles Andere ist mir Windows einfach zu unsicher. Beruflich würde ich mich daher nie mit Windows beschäftigen wollen.

Zitat
Hä, warum sollte man HIMEM.SYS (und darüber XMS-Speicher) nicht selber aktiv benutzen können (ohne EMS)?
Klar kannst Du den XMS selber aktiv benutzen (nachdem Du Deinen Block gelockt hast um auch seine physische Adresse zu kennen)

Ok, das meine ich.

Zitat
aber HIMEM.SYS benutzt Deinen Block nicht für sich.

Braucht er ja auch nicht.

Zitat
Im Vergleich zu einer linearen Adressierung im Unrealmode (beispielsweise über DS:Reg32) sind DOS-Extender aber nur sehr umständlich benutzbar.
Hast Du Dich denn damit schon mal wirklich richtig beschäftigt? Auf was für eigenen Erfahrungen beruht dieses Urteil von Dir?
Vor 10 Jahren hab ich einige große Programme mit Hilfe von verschiedenen DOS-Extendern entwickelt und das ist nicht schwieriger als würde man ein Programm für Windows oder für POSIX entwickeln, DOS-Extender sind einfach nur eine andere Laufzeitumgebung (mit spezifischen Schwächen aber auch Stärken).

Einfacher als selber den gesamten linearen Speicher im Unrealmode zu adressieren geht es nun mal nicht und bei der Verwendung von Speichermanager(ob nun XMS oder EMS) muss man Speicher erst relativ umständlich anfordern. Das kostet nicht nur Zeit, sondern bläht auch den gesamten Code auf, weit mehr als eine kleine Routine die in den Unrealmode schaltet und nur ein einziges Mal am Anfang angesprungen wird.

Zitat
Es ist einfach unwichtig ob der LOADALL-Befehl je offiziell spezifiziert wurde, er war vorhanden und das genügt um zu zeigen das es für den Unrealmode eine Unterstützung gab die beabsichtigt implementiert wurde
Den LOADALL-Befehl gab es auch auf 286, hatten die etwa auch einen UnReal-Mode?

Mein erster PC war ein 80286er, nur leider kannte ich damals den Unrealmode noch nicht. Ich kann mir aber vorstellen das man damit im Unrealmode möglicherweise 16 MiB linear adressieren kann.

Zitat
Das es den LOADALL-Befehl gab hat ganz sicher andere Gründe.

Wenn du dir hierbei so sicher bist, dann kanst du uns auch mögliche Gründe dafür nennen, anderfalls bist du dir eben auch nicht sicherer und spekulierst hier ebenso wie ich es jetzt tue.

Zitat
.... Mir genügt das.
Es gibt Bereiche wo das nicht genügt. Wenn Du z.B. für ein medizinisches Gerät eine Zulassung haben möchtest und der Prüfer sieht das Du irgend ein Bauteil außerhalb der Spezifikation betreibst kannst Du Dir sicher sein das die Zulassung nicht allzu bald erteilt werden wird. Ich hab schon mal ein medizinisches Gerät durch den Zulassungsprozess begleitet (ich hab bei einer der Komponenten den FPGA-Inhalt und Teile des Schaltplans entwickelt) und das ist wahrlich kein Zuckerschlecken.

Das glaube ich dir.

Doch das dieser Zulassungsprozess keine Bauteile erlaubt welche nicht spezifiziert wurden, das sagt über die Zuverlässigkeit nicht spezifizierter Bauteile eigentlich überhaupt gar nichts aus, bzw. nur das sie möglicherweise wegen zu geringer Nachfrage noch keine Spezifikation bekamen. Auch wenn bestimmte Bauteile nicht vermarktet werden bedeutet das ja nicht in jedem Fall, das sie nur schlecht waren.

Zitat
Eine Verantwortung für die Sachen die ich programmiert haben lehne ich grundsätzlich ab.
Alles darf jeder Anwender in völliger Eigenverantwortung benutzen.
Stell Dir vor Dein Stromanbieter würde das auch so handhaben.

Dieser Vergleich hinkt aber etwas. Ich bin zur Zeit kein Stromanbieter und wenn ich mal einer werden sollte, na dann bekommen alle Menschen von mir kostenlos Strom und am besten gleich vorort völlig dezentral und individuell so viel wie benötigt wird. Die Frage ist wohl wie lange es dauert so etwas zu entwickeln, wenn es keine Spezifikation von den Stromanbietern dafür gibt.

Zitat
Ich bin mir sicher Du findest Dinge in Deinem Leben wo es Dir doch extrem wichtig ist das die 100% Zuverlässig funktionieren bzw. das die verantwortlichen Entwickler zumindest alles menschenmögliche Unternommen haben um die Zuverlässigkeit zu hoch wie nur irgend möglich zu bringen.
Sorry, aber solange Du so eine Meinung vertrittst hoffe ich wirklich das ich nie auf Dinge von Dir angewiesen bin.


Grüße
Erik

Hilfe nein, ich bin kein Mensch der nach 100 prozentiger Sicherheit sucht. So ein Denken ist mir eher fremd. Für mich ist die Freiheit auch mal nicht so sichere Dinge tun zu dürfen weit aus wichtiger als für einen Kontrollfreak. So einer bin ich ganz bestimmt nicht, auch wenn ich eine gewisse Ordnung in meinem Leben zu schätzen gelernt habe Ich würde mich jetzt auch nicht gerade aufdrängen wollen,  so das du in irgendeiner Abhängigkeit auf mich angewiesen wärest.

100% Sicherheit  ist für mich eh nur eine fiktive Illusion und dabei sollte man meiner Meinung nach schon abwägen können wie viele solcher Illusionen man verträgt ohne selber in eine Traumwelt abzudriften. Es ist noch gar nicht so lange Zeit her da hat man sich zur Tageschau einen Anzug angezogen und dem Sprecher auch mit einem Guten Abend begrüsst, so als wenn der Tagesschau-Sprecher jeden Zuschauer ganz persöhnlich hören und auch sehen könne. Im Nachherein klinkt das jetzt eher lustig, doch das war es in Wirklichkeit zu keiner Zeit. Damals wurde dann auch der Begriff einer Elektronenstrahl-Marionette gebildet, um so einen fremdgesteuerten Menschen zu beschreiben der unter einem zu grossem Einfluss von vorgesetzten Dingen steht und dabei völlig kritikunfähig sich verhält. Vergleichsweise wie Menschen die unter einer frühkindlichen Suggestiv-Erziehung bis ins hohe Alter an den Folgen davon leiden.

Dirk

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #36 am: 29. April 2011, 20:26 »
PS.: die Art wie Du zitiert finde ich persönlich eher unschön, wenn Du schon meinen ganzen Beitrag am Stück zitierst dann kannst es auch ganz bleiben lassen denn er steht ja eh am Stück unmittelbar vor Deinem Beitrag

Deine Art ist für mich als Mitleser auch nicht schön. Beim Verfassen einer Antwort ist es sicherlich leicht den referenzierten Post in zehn bis zwanzig kleine Häppchen zu zerlegen und alle einzeln zu kommentieren. Wenn ich allerdings in einem Thema nur mitlesen will, muss ich immer wieder die Zitate lesen, um die Antwort darauf zu verstehen. Das stört meinen Lesefluss. Mir ist ein in sich zusammenhängender Text mit sorgfältig eingesetzen Zitaten lieber. Das sollte man nicht als Einschränkung (was oder wieviel man kommentieren darf) sehen, sondern als Methode einen Post ansprechend zu strukturien. Alles was sich nicht kohärent einbringen lässt ist vermutlich Offtopic und am falschen Platz.
Dieser Text wird unter jedem Beitrag angezeigt.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #37 am: 30. April 2011, 22:46 »
Hallo,

Ich möchte im Verhalten der Schatten-Register eigentlich gar keinen Unterschied feststellen. Ich bin nur überascht davon, das es dabei überhaupt einen Unterschied geben soll zwischen der Laufzeit und einem Reset.
Es kann einen solchen Unterschied geben. Allein schon, weil der Zustand nach einem Reset ein Zustand ist, den du zur Laufzeit nicht herstellen kannst.

Meine Unrealmode-Anwendungen laufen stets zu 100% zuverlässig. Das kann man von Windows und Anwendungen die dort laufen leider nicht immer behaupten, denn dafür ist selbst Windows 7 einfach immer noch zu fehlerhaft, als das man hier von einer hohen Zuverlässigkeit reden kann.
Naja, wenn du die Programme nur für dich produzierst, dann wirst du sie wahrscheinlich in einem begrenzten Biotop ausführen, außerdem bedienst du sie dann prinzipiell so, wie du sie bedienen musst, damit sie das tun, was sie tun sollen. Als Programmierer kennst du das Verhalten, als Anwender nicht unbedingt.

Nicht alles ist direkt schlüssig, nicht alles funktioniert wie erwartet und bisher hat noch keiner vollkommen idiotensichere Software produziert. Von daher halte ich die Aussage "Windows taugt nichts" für nicht ganz angemessen: Es gibt wieviele Anwender? Wieviele haben keine Ahnung und klicken alles an, was nicht bei drei auf den Bäumen ist? Wieviel komische Hardware (auch China-Billig) ist im Einsatz? Da ein Betriebssystem einigermaßen hinzukriegen ist m.M.n. eine ordentliche Leistung.

Nein du hast nicht gesagt das du einen 80386+ kennst bei dem der Unrealmode nicht funktioniert. Ich vermute nun das du keinen einzigen Rechner kennst bei dem der Unrealmode nicht funktioniert. Soweit zu der von dir erwarteten Zuverlässigkeit.
Ich habe ziemlich weit oben ein Errata von Intel zitiert. Solche Bugs werden sicherlich auch weiterhin existieren. Moderne Betriebssysteme nutzen den Unrealmode nicht mehr, DOS hat auf BIOS-Update-CDs eine Berechtigung, dort aber ohne HIMEM. Der Unrealmode wird also überwiegend nicht mehr genutzt, entsprechend behaupte ich, dass Hard- & Firmware nicht mehr in dem Maße darauf getestet werden wie früher. Es gibt in dem Bereich also potentiell mehr Bugs.

Da der Unrealmode außerdem nicht offiziell existiert, rate ich von dessen dauerhafter Nutzung ab.

Mal Spaß wieder beiseite, wir leben in einer Welt in der wir auf Computer nur sehr schwer wieder verzichten können. Da müssen wir uns ganz gewiss auf die Funktionsweise dieser Geräte auch verlassen können.
Richtig, und das geht nur im dokumentierten Umfang. Um mehr geht es hier nicht.

Zitat
Den LOADALL-Befehl gab es auch auf 286, hatten die etwa auch einen UnReal-Mode?
Mein erster PC war ein 80286er, nur leider kannte ich damals den Unrealmode noch nicht. Ich kann mir aber vorstellen das man damit im Unrealmode möglicherweise 16 MiB linear adressieren kann.
Auf dem 80286 kann es prinzipbedingt keinen Unrealmodus geben, da dessen Register nur 16 Bit breit sind. Damit kannst du sie auch durch Tricks nicht erweitern, sodaß jede lineare Adressierung von Blöcken jenseits der 64K nicht möglich ist.

Doch das dieser Zulassungsprozess keine Bauteile erlaubt welche nicht spezifiziert wurden, das sagt über die Zuverlässigkeit nicht spezifizierter Bauteile eigentlich überhaupt gar nichts aus, bzw. nur das sie möglicherweise wegen zu geringer Nachfrage noch keine Spezifikation bekamen.
Du verwechselst spezifiziert mit zertifiziert.

Bauteile, die nicht spezifiziert sind, kann man nicht zertifizieren, da deren Funktionsweise nicht bekannt (gesichert) ist. Bauteile, die außerhalb ihrer Spzifikation betrieben werden (Unrealmode), werden nicht zertifiziert, da ihre Funktion nicht garantiert ist oder gewährleistet werden kann.

Ein nicht zertifiziertes Bauteil mag trotzdem funktionieren, aber ehrlich gesagt... der Z80 ist als Nachbau des 8080 bugkompatibel - und musste es auch sein, weil sich die Software auf Bugs verlassen hat; das war auf dem 6502 ebenfalls nicht anders.

Möchtest du diese Zeiten zurück haben?

Gruß,
Svenska

freecrac

  • Beiträge: 86
    • Profil anzeigen
Gespeichert
« Antwort #38 am: 02. May 2011, 10:42 »
Hallo,

Ich möchte im Verhalten der Schatten-Register eigentlich gar keinen Unterschied feststellen. Ich bin nur überascht davon, das es dabei überhaupt einen Unterschied geben soll zwischen der Laufzeit und einem Reset.
Es kann einen solchen Unterschied geben. Allein schon, weil der Zustand nach einem Reset ein Zustand ist, den du zur Laufzeit nicht herstellen kannst.

Ich gehe davon aus das dieser Zustand ebenfalls zur Laufzeit herstellbar ist. Nur ohne Dokumentation wird es schwer.

Zitat
Meine Unrealmode-Anwendungen laufen stets zu 100% zuverlässig. Das kann man von Windows und Anwendungen die dort laufen leider nicht immer behaupten, denn dafür ist selbst Windows 7 einfach immer noch zu fehlerhaft, als das man hier von einer hohen Zuverlässigkeit reden kann.
Naja, wenn du die Programme nur für dich produzierst, dann wirst du sie wahrscheinlich in einem begrenzten Biotop ausführen, außerdem bedienst du sie dann prinzipiell so, wie du sie bedienen musst, damit sie das tun, was sie tun sollen. Als Programmierer kennst du das Verhalten, als Anwender nicht unbedingt.

Eine andere Bedienung als jene welche ich vorgesehen habe ist in meinen Anwendungen gar nicht möglich.
Eine Fehlbedienung kann man doch relativ leicht verhindern in den man z.B. nur solche Tasten direkt vom Port des Tastaturcontrollers auswertet, die auch benötigt werden und vorher wird der IRQ 1 (unter DOS) deaktiviert.  Mit der Mouse kann man auch nur auf jene Klickfelder anklicken die ich dafür ausgewählt habe und egal wo man dann klicken kann, es werden immer nur jene Dinge damit ausgeführt und entsprechende Routinen angesprungen die dafür vorgesehen sind. Ein abweichendes Verhalten ist damit völlig ausgeschlossen. Alle Mindestanforderungen des Rechners können vorher überprüft werden und wenn die Mindestanforderungen für die Anwendung nicht erfüllt werden, dann kann mit einer Fehlermeldung die Anwendung beendet werden.

Zitat
Nicht alles ist direkt schlüssig, nicht alles funktioniert wie erwartet und bisher hat noch keiner vollkommen idiotensichere Software produziert.
Meine Anwendungen funktionieren so wie ich erwarte, wenn die Minimalanforderungen an die Hardware eingehalten werden.
Ob das nun als idiotensicher bezeichnet werden kann, wenn ein Anwender gar keine Eingabe macht, obwohl eine Eingabe erforderlich wird und darauf auch hingewiesen wird, das kann ich nicht beurteilen.

Zitat
Von daher halte ich die Aussage "Windows taugt nichts" für nicht ganz angemessen: Es gibt wieviele Anwender? Wieviele haben keine Ahnung und klicken alles an, was nicht bei drei auf den Bäumen ist? Wieviel komische Hardware (auch China-Billig) ist im Einsatz? Da ein Betriebssystem einigermaßen hinzukriegen ist m.M.n. eine ordentliche Leistung.

Das Anwendungen unter Windows 7 immer noch den Kernel zum Abstürzen bringen können, ohne das man über den Taskmanager eine abgestürzte  Anwendung beenden kann, das ist für mich ein konkreter Hinweis darauf das Windows nichts taugt und bestenfalls nur zum Spielen geeignet ist. Das ist in meinen Augen handwerklicher Pfusch und keinesfalls eine ordentliche Leistung.

Zitat
Nein du hast nicht gesagt das du einen 80386+ kennst bei dem der Unrealmode nicht funktioniert. Ich vermute nun das du keinen einzigen Rechner kennst bei dem der Unrealmode nicht funktioniert. Soweit zu der von dir erwarteten Zuverlässigkeit.
Ich habe ziemlich weit oben ein Errata von Intel zitiert. Solche Bugs werden sicherlich auch weiterhin existieren. Moderne Betriebssysteme nutzen den Unrealmode nicht mehr, DOS hat auf BIOS-Update-CDs eine Berechtigung, dort aber ohne HIMEM. Der Unrealmode wird also überwiegend nicht mehr genutzt, entsprechend behaupte ich, dass Hard- & Firmware nicht mehr in dem Maße darauf getestet werden wie früher. Es gibt in dem Bereich also potentiell mehr Bugs.

Um ein Bios-Update auf meinem ASUS-Striker-MoBo zu machen braucht man nicht mal zu booten. Ein USB-Stick mit einem dort gespeicherten Bios genügt um innerhalb vom Bios-Setup noch vor dem Booten damit ein Bios-Update zu machen. Um DOS zu nutzen brauche ich keine Art der Berechtigung. Nur weil nicht jede Hardware/Firmware  zusammen mit dem Unrealmode getestet wurde, bedeutet das noch lange nicht das es hierbei potentiell mehr Bugs damit zu erwarten sind.

Zitat
Da der Unrealmode außerdem nicht offiziell existiert, rate ich von dessen dauerhafter Nutzung ab.

Offiziell darf man auch nicht bei roter Ampel die Strasse überqueren, aber das bedeutet nicht das man es nicht kann.
Wir haben hier so eine Ampel die von fast allen Anwohner eher ignoriert wird als beachtet. Es gab hier zwar auch schon einmal ein Unfall mit einem besoffenenn Fussgänger der angefahren wurde,  aber das hier jeden Tag eine grosse Anzahl Anwohner die Strasse auch bei roter Ampel überqueren, das zeigt doch sehr deutlich das Regeln nicht überall angewendet werden und es trortzdem möglich ist relativ gefahrlos auch bei roter Ampel die Strasse zu überqueren. Ob das nun offiziell an die grosse Glocke gehängt wird, oder auch nicht, das ist dabei doch eher irrelevant.

Da der Unrealmode auf den meisten Rechner mit 80386+ keine Probleme macht und auch stabil läuft , gibt es keinen Grund ihn nicht zu verwenden.

Zitat
Mal Spaß wieder beiseite, wir leben in einer Welt in der wir auf Computer nur sehr schwer wieder verzichten können. Da müssen wir uns ganz gewiss auf die Funktionsweise dieser Geräte auch verlassen können.
Richtig, und das geht nur im dokumentierten Umfang. Um mehr geht es hier nicht.

Es werden aber nicht alle Dinge umfangreich dokumentiert, weder Windows ist Opensource, noch die GraKa-Treiber von Nvidia/ATI-AMD.
So verwenden millionen Anwender täglich extrem spärlich dokumentierte Hardware/Software und trotzdem verlassen sich alle auf die Funktionsweise.
Wer also nur gut dokumentierte Dinge benutzen möchte, um sich wirklich auf die Funktionsweise hundertprozent verlassen zu können, der darf ja eigentlich weder Windows noch darin verwendete Treiber vertrauen. Das es trotzdem oft funktioniert haben wir somit nicht einer umfangreichen  Dokumentation zu verdanken. Es geht wir wir sehen auch ohne eine konkrete Dokumentation. Der Anspruch nur durch eine umfassende Dokumenation eine stabile Funktionstüchtigkeit zu gewährleisten weicht hierbei doch erheblich von den tatsächlichen Gegebenheiten ab, auch wenn dank einer exelenten Werbemaschine solche gravierenden Unterschiede wohl wenig auffallen, das hier mehr Schein als Sein vorhanden ist.

Zitat
Zitat
Den LOADALL-Befehl gab es auch auf 286, hatten die etwa auch einen UnReal-Mode?
Mein erster PC war ein 80286er, nur leider kannte ich damals den Unrealmode noch nicht. Ich kann mir aber vorstellen das man damit im Unrealmode möglicherweise 16 MiB linear adressieren kann.
Auf dem 80286 kann es prinzipbedingt keinen Unrealmodus geben, da dessen Register nur 16 Bit breit sind. Damit kannst du sie auch durch Tricks nicht erweitern, sodaß jede lineare Adressierung von Blöcken jenseits der 64K nicht möglich ist.

Ok.

Zitat
Doch das dieser Zulassungsprozess keine Bauteile erlaubt welche nicht spezifiziert wurden, das sagt über die Zuverlässigkeit nicht spezifizierter Bauteile eigentlich überhaupt gar nichts aus, bzw. nur das sie möglicherweise wegen zu geringer Nachfrage noch keine Spezifikation bekamen.
Du verwechselst spezifiziert mit zertifiziert.

Bauteile, die nicht spezifiziert sind, kann man nicht zertifizieren, da deren Funktionsweise nicht bekannt (gesichert) ist. Bauteile, die außerhalb ihrer Spzifikation betrieben werden (Unrealmode), werden nicht zertifiziert, da ihre Funktion nicht garantiert ist oder gewährleistet werden kann.

Ein nicht zertifiziertes Bauteil mag trotzdem funktionieren, aber ehrlich gesagt... der Z80 ist als Nachbau des 8080 bugkompatibel - und musste es auch sein, weil sich die Software auf Bugs verlassen hat; das war auf dem 6502 ebenfalls nicht anders.

Möchtest du diese Zeiten zurück haben?

Gruß,
Svenska

Nö.

Dirk

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #39 am: 02. May 2011, 12:19 »
Hallo,


Von daher halte ich die Aussage "Windows taugt nichts" für nicht ganz angemessen: Es gibt wieviele Anwender? Wieviele haben keine Ahnung und klicken alles an, was nicht bei drei auf den Bäumen ist? Wieviel komische Hardware (auch China-Billig) ist im Einsatz? Da ein Betriebssystem einigermaßen hinzukriegen ist m.M.n. eine ordentliche Leistung.
Full ACK!
Ich bin selber absolut kein Freund von Windows aber das schmälert in keinster Weise die Leistung ein OS zu bauen das milliardenfach täglich benutzt wird und dabei meistens recht gut funktioniert. Wenn Windows wirklich so instabil wäre wie immer alle jammern dann würde es auch kaum einer benutzen.


Ich gehe davon aus das dieser Zustand ebenfalls zur Laufzeit herstellbar ist. Nur ohne Dokumentation wird es schwer.
Ich hab selber schon ein paar mal Schaltungen entwickelt die durchs Reset in einen Zustand gebracht wurden der zur Laufzeit nicht erreichbar ist. Das ist ein absolut übliches Vorgehen in der Entwicklung von Schaltungen. Man kann in Hardware durchaus eine State-Maschine entwickeln die durchs Reset in einen State gebracht wird der später nie wieder erreichbar ist (wenn er denn einmal verlassen wurde).

Ich hab mir mal die ersten 2 Google-Treffer zu "x86 loadall" angesehen:

http://www.rcollins.org/articles/loadall/tspec_a3_doc.html: da steht z.B.
Zitat
According to Intel, each time the CPU loads a segment register in real mode, the base address is 16 times the segment value, while the access rights and size limit attributes are given fixed, "real-mode compatible" values. This is not true. In fact, only the CS descriptor cache access rights get loaded with fixed values each time the segment register is 1oaded - and even then only when a far jump is encountered. Loading any other segment register in real mode does not change the access rights or the segment size limit attributes stored in the descriptor cache registers. For these segments, the access rights and segment size limit attributes are honored from any previous setting.
So wie es der erste Satz meint kenne ich die Funktionsweise der Schattenregister auch aus den Intel-Manuals, daraus lässt sich IMHO schlussfolgern das der UnReal-Mode eigentlich ein Bug ist. Normalerweise wird bei einem Schreibzugriff auf eines der Segment-Register immer auch das komplette zugehörige Schattenregister neu geladen. Damit da nur im Real-Mode und nur für einen Teil der Schattenregister eine Ausname gemacht wird sind sicher ein paar Transistoren extra notwendig, wenn die morgen weg gelassen werden wäre die CPU immer noch so funktionsfähig wie laut Datenblatt zugesichert aber der UnReal-Mode würde nur noch so lange funktionieren bis das betreffende Segment-Register neu geladen wird (deswegen haben wir uns damals bewusst für FS und GS entschieden, in der Hoffnung das die möglichst selten von irgendwelchem anderen Code überschrieben werden und somit den UnReal-Mode möglichst lange ganz bleibt).

http://en.wikipedia.org/wiki/LOADALL: da stehen ein paar Beispiele wie der LOADALL-Befehl benutzt wurde, aber das sind im wesentlichen Beispiele für den 286 (inklusive Deiner HIMEM.SYS), auf dem 286 macht dieser Befehl auch richtig Sinn da es dort keinen offiziellen Weg gab um aus dem Protected-Mode wieder zurück in den Real-Mode zu kommen. Für den 286 hat Intel wohl auch mal eine Dokumentation für den LOADALL-Befehl verteilt damit der auch richtig benutzt werden kann. Ich vermute mal Intel hat den LOADALL im 386 vorsichtshalber neu aufgelegt weil die sich nicht sicher waren ob es dazu noch Bedarf gibt, schließlich hatte der 386 ja einen Virtual-8086-Mode und konnte auch wieder offiziell den Protected-Mode verlassen so das LOADALL eigentlich nicht mehr benötigt wird. Auch inoffiziell gab es von Intel nie eine Dokumentation zu dem 386-LOADALL-Befehl (Microsoft hat unter der Hand vermutlich trotzdem ein paar Infos bekommen und zwischen AMD und Intel gibt es schon seit vielen Jahren Patent-Austausch-Abkommen die sicher auch solche internen Infos beinhalten).

Ob der UnReal-Mode wirklich beabsichtigt war (und falls ja ob das auch vom Management abgesegnet war) oder ob der eher aus Zufall entstanden ist werden wir wohl nie erfahren. Fakt ist das dafür zusätzliche Transistoren erforderlich sind und es niemand garantiert das die nicht doch mal irgendwann raus fliegen, würde ja auch niemand vermissen.

Eine andere Bedienung als jene welche ich vorgesehen habe ist in meinen Anwendungen gar nicht möglich.
Das müssen aber sehr simple Programme sein, oder?
Sorry, aber bei Programmen in der Größenordnung eines kompletten OS (wie z.B. Windows aber auch Linux) ist eine Fehlbedienung grundsätzlich nicht auszuschließen. Selbst bei kleinen Mini-OSen, wie z.B. tyndur, gibt es sicher unzählige Möglichkeiten diese fehl zu bedienen. Solange der Computer nicht erahnen kann was der User wirklich will kann der User auch immer den Computer mit falschen Informationen füttern.

Nur weil nicht jede Hardware/Firmware  zusammen mit dem Unrealmode getestet wurde, bedeutet das noch lange nicht das es hierbei potentiell mehr Bugs damit zu erwarten sind.
Doch, genau das bedeutet das! Wenn man Bugs mit möglichst hoher Wahrscheinlichkeit ausschließen möchte muss man viel Testen und wenn man bestimmte Aspekte nicht oder nur wenig testet dann ist einfach die Wahrscheinlichkeit für übersehene Bugs höher. Jeder erfahrene Entwickler, egal ob Software oder Hardware oder irgendwas anderes, kennt diesen Zusammenhang aus seiner real erlebten Praxis.

Offiziell darf man auch nicht bei roter Ampel die Strasse überqueren, aber das bedeutet nicht das man es nicht kann.
Richtig, das bedeutet auch nicht das sofort ein Unfall passiert wenn man es doch tut. Aber das bedeutet das dieses Verhalten auf Grund von rationalen Gründen unerwünscht ist und auch bestraft wird wenn man sich erwischen lässt. Für den UnReal-Mode wird man zwar nicht bestraft aber die Gründe die gegen seine Benutzung sprechen sind im wesentlichen die selben.

noch die GraKa-Treiber von Nvidia/ATI-AMD.
Was denkst Du warum Nvidia und AMD für ihre teureren (besseren) GraKas extra zertifizierte Treiber anbieten? Diese zertifizierten Treiber enhalten auch nicht unbedingt weniger Bugs aber sie wurden zumindest deutlich gründlicher getestet und Nvidia bzw. AMD sichern zu das bei gefundenen Fehler so schnell als möglich ein Fix geliefert wird (und die rufen dafür die entsprechenden Programmierer auch mal zu einer Nachtschicht an den Arbeitsplatz wenn der Kunde wichtig genug ist).


Meine Kenntnisse über Pointer-Arithmetik in C scheinen wohl doch ein paar Lücken aufzuweisen aber meine Kenntnisse bei der Schuld-Pointer-Arithmetik sind recht gut, ich hab es sogar mal geschafft das der Schuld-Pointer auf jemand anderes zeigt obwohl ich was verbockt hab. Genau deswegen gibt es in der Welt des Geldes so erquickende Gesetze wie die der Produkt-Haftung und wer in diesem Feld dauerhaft bestehen will muss sich mit der Schuld-Pointer-Arithmetik sehr gut auskennen. Eine wichtige Regel sagt das man immer jemanden benötigt auf den man diesen Pointer zeigen lassen kann und das geht nur wenn man sich streng an die "zugesicherten Eigenschaften" hält wenn man fremde Komponenten einsetzt. Wenn ich ein Bauteil einsetze dessen Funktionsfähigkeit nur von 0°C bis +70°C zugesichert wird und das Produkt wird aber bei anderen Temperaturen eingesetzt dann bleibt der Schuld-Pointer auf mir stehen egal ob dieses Bauteil nun wirklich die Ursache für einen Ausfall war oder nicht. Sachgutachter von Versicherungen finden solche Dinge garantiert immer.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

 

Einloggen