Probleme mit NX-Funktion bei Windows XP SP2 RC2

Campari

Grand Admiral Special
Mitglied seit
17.10.2000
Beiträge
17.203
Renomée
156
Eines der Hauptmerkmale des kommenden Service Pack 2 für Windows XP ist die Unterstützung des so genannten <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1077715275" target="b">"No Execution"-Features</a>, welches den Prozessor davon abhalten soll, Programmcode auszuführen, der nicht als Programm gedacht war (z.B. Viren). Unter anderem werden alle AMD64-Prozessoren, inklusive AMD Opteron, AMD Athlon 64 FX und AMD Athlon 64 Prozessoren, die seit 2003 an Kunden ausgeliefert wurden, AMDs Enhanced-Virus-Protection-Funktionen enthalten.

Beim ZDNet stieß man nun allerdings auf <a href="http://www.zdnet.de/news/hardware/0,39023109,39123405,00.htm?h" target="b">Probleme</a> mit dem <a href="Windows XP SP2 Release Candidate 2">Windows XP SP2 Release Candidate 2</a> bei aktivierter NX-Funktion unter Verwendung der 32-Bit Version des Betriebssystems Windows XP. So verweigerten viele Spiele einfach beim Start einfach ihren Dienst beziehungsweise brachten das System dazu sich festzufahren. Startete man jedoch die selben Spiele unter der 64-Bit Version von Windows XP, lief alles glatt und die Spiele funktionierten reibungslos.

Wie ZDNet weiterhin berichtet, ist Microsoft das Problem mittlerweile bekannt, weshalb man davon ausgehen kann, dass der Fehler bis zur Veröffentlichung der finalen Version behoben sein dürfte.

<b>Update</b>
Wie es sich durch Nachtests <a href="http://www.zdnet.de/news/hardware/0,39023109,39123405,00.htm?h" target="b">herausgestellt</a> hat, scheint es sich hierbei nicht um ein Problem mit dem Betriebssystem zu handeln, sondern vielmehr scheint das verwendete Mainboard die Fehlerquelle zu sein. ZDNet testete zunächst mit dem Fujitsu Siemens D1607, wohingegen der Nachtest mit einem Asus K8V Deluxe ohne Ärger vonstatten ging. Interessant zu wissen wäre sicherlich ob diese Probleme mit der NX-Funktion auf eben dieses Fujitsu Siemens Board beschränkt sind oder ob auch andere Hersteller ihre liebe Mühe mit der neuen Funktion haben.

Thx rkinet für den Hinweis
 
Zuletzt bearbeitet:
uhh.. hauptsache es läuft auf der 64 bit edition ;D

dann krieg ich noch farcry gratis zum amd64 hinzu
obwohll das spiel hab ich doch schon *buck*
 
hoffentlich vergeigt das microhonk nicht... würde dem schönen feature ein bisschen die show vermasseln glaub ich.
aber is ja noch beta, wobei das vertrauen in microhonk nie geringer war...
 
Zeigt , wieviel Programmierfehler in den Spielen heute steckt.

Währe ja auch ein Wunder, wenn Microsoft, UNIX oder LINUX Programmierer Code und Daten versehentlich nicht gut abgrenzen, aber die Spielebranche Null Probleme hätte.

Tippe mal, daß Microsoft unter 64 Bit den 32 Bit Anwendungen 'Narrenfreiheit' gewährt, die kommen ja eh nicht (physikalisch) auf die Speicherbereiche des 64 Bit OS ran.
 
Evtl. hat das ja damit was zu tun, da bei aktiviertem DEP (NX) der PAE Modus mit aktiviert wird.

Diapolo
 
Original geschrieben von rkinet
Tippe mal, daß Microsoft unter 64 Bit den 32 Bit Anwendungen 'Narrenfreiheit' gewährt, die kommen ja eh nicht (physikalisch) auf die Speicherbereiche des 64 Bit OS ran.

Könntest du das mal etwas näher ausführen?
 
"AMDs Enhanced-Virus-Protection-Funktionen"

für meine Begriffe zu marketinglastig! Der Virenverbreitung hilft dieses Popelbit kein Stück, so lange jeder die per Mail erhaltenen Nacktbilder von Frau XXX sehen will.

Allein gegen Buffer Overflows und ähnliche Angriffe nützt dieses Feature!
 
Original geschrieben von PuckPoltergeist
Könntest du das mal etwas näher ausführen?

also, man kann das NX-Feature bzw. sein Gegenstück in der 64 Bit Welt ja selektiv einsetzten.

Ein 32 Bit Programmfehler oder Buffer Overflow ist für das 64 Bit OS völlig egal, eine 32 bit Software kommt nicht ans 64 Bit OS heran. Im Prinzip könnte Microsoft für die Adressbereiche, die von 32 Bit Software belegt ist (also die Spiele) das NX-Feature deaktiviren, da dort überflüssig.

Im 32 Bit Windows muß standardmäßig aber möglichst viel per NX-Bit überwacht werden, da ja das OS im Prinzip voll zugänglich ist.

Soweit meine Vorstellung dazu.
 
Original geschrieben von Curacao
"AMDs Enhanced-Virus-Protection-Funktionen"

für meine Begriffe zu marketinglastig! Der Virenverbreitung hilft dieses Popelbit kein Stück, so lange jeder die per Mail erhaltenen Nacktbilder von Frau XXX sehen will.

Allein gegen Buffer Overflows und ähnliche Angriffe nützt dieses Feature!


Also .vbs & Co. zu blocken oder Sicherheitslücken bei der Bearbeitung von BMP zu stopfen läuft ja parallel bei Microsoft. Dafür benötigt man kein NX-Feature.

Aber, ob bei Microsoft, UNIC oder LINUX, tückische Bugs und Einfallstore lauten immer wieder 'Buffer overflow' als Ursache und Angriffsmethodik. Natürlich könnte man Compiler optimieren oder Programmcode strenger kontrollieren vor dem Launch, nur ABS 'NX-Bit' hilft eben, wenn nur noch eine Notbremsung geht.

Es klingt also sehr plausibel, daß ein großes Problem mit dem NX-Bit erledigbar ist, und das Feature ist ja in der 64 Bit Profiwelt eh Standard.
(sätestens mit den Desktop IA64 hätten wir es eh bekommen ...)
 
UPDATE 23. Juni 2004

Nach weiteren Tests im ZDNet-Labor hat sich herausgestellt, dass die Probleme nur mit bestimmten Mainboards auftreten. Das D1607, welches auch in den Deutschland-PCs zum Einsatz kommt, zeigt die beschriebenen Fehler. Mit dem Asus K8V Deluxe laufen die Spiele problemlos. Möglicherweise kann ein Bios-Update Abhilfe schaffen.

Möglicherweise wird der PAE-Modus vom FSC nicht korrekt angesteuert. Dieser ist nötig, um unter Windows XP 32 Bit SP2 die Data Execution Prevention (DEP) über den NX-Befehl anzusteuern.

http://www.zdnet.de/news/hardware/0,39023109,39123405,00.htm?h
 
Original geschrieben von rkinet
also, man kann das NX-Feature bzw. sein Gegenstück in der 64 Bit Welt ja selektiv einsetzten.

Ein 32 Bit Programmfehler oder Buffer Overflow ist für das 64 Bit OS völlig egal, eine 32 bit Software kommt nicht ans 64 Bit OS heran. Im Prinzip könnte Microsoft für die Adressbereiche, die von 32 Bit Software belegt ist (also die Spiele) das NX-Feature deaktiviren, da dort überflüssig.

Im 32 Bit Windows muß standardmäßig aber möglichst viel per NX-Bit überwacht werden, da ja das OS im Prinzip voll zugänglich ist.

Soweit meine Vorstellung dazu.

Wo steht denn geschrieben, dass 64bit Anwendungen immer oberhalb von 4GB im RAM liegen? Und das 64bit OS muss unterhalb der 4GB-Grenze liegen, wenn 32bit-Software laufen soll.
 
Original geschrieben von PuckPoltergeist
Wo steht denn geschrieben, dass 64bit Anwendungen immer oberhalb von 4GB im RAM liegen? Und das 64bit OS muss unterhalb der 4GB-Grenze liegen, wenn 32bit-Software laufen soll.


32 Bit Adressen # 64 Bit Adressen

Die 32 Bit Softwarewelt bekommt einen 'normalen' 32 Bit PC mit 32 Bit OS vorgegaukelt durch ein 32/64 Bit OS.

Wo das OS dann tatsächlich werkelt ist egal.


Später einmal (auf Raumschiff Enterprise, wenn ein historisches 32 Bit Propgramm eingespielt wird) ist der 4 Gbyte Adressraum (soll voll vorhanden sein, ohne Abzug durch PCI-Adressraum oder OS-Bereiche) eine Teilmenge eines deutlich größeren Bereiches sein.


Solche Techniken, in Software only, sind übrigens uralt. Es gab schon Z80 Emulatoren zur 386er Zeit, wo das alte OS und die alte Software friedlich auf PC-BIOS und PC-DOS Funktionen zugreifen konnten (Nachtrag: Auch schon beim guten, alten C64 und auch Atari ST).
Jetzt aber alles 'hardwarebeschleunigt' auf Echtzeitgeschwindigkeit durch die x64 CPU; geht halt nichts über bewährte Technik.

MS verfährt so bei allen Windows Funktionen, ob Massenspeicher, Netzwerk API, Sound oder DirectX. Es wird dann keine 'echten' 32 Bit Betriebssytemfunktionen mehr geben, alles wird weitergereicht ohne Zeitverzug.
 
12.05.2004 22:59 zu dieser Zeit verfasste ich folgendes:

http://www.planet3dnow.de/vbulletin/showthread.php3?s=&threadid=161524

Da kannte das noch keiner, war aber SP2RC1.

Ich hab jetzt den RC2 drauf und hab das Demo jetzt noch mal ausprobiert. Jetzt geht es.

Mainboard: Asus K8V Deluxe SE

War das jetzt die Schuld von MS oder haben die nur die NX-Routinen entschärft, weil fast jede Software schlampig programmiert ist?
 
Original geschrieben von rkinet
32 Bit Adressen # 64 Bit Adressen

Die 32 Bit Softwarewelt bekommt einen 'normalen' 32 Bit PC mit 32 Bit OS vorgegaukelt durch ein 32/64 Bit OS.

Wo das OS dann tatsächlich werkelt ist egal.


Später einmal (auf Raumschiff Enterprise, wenn ein historisches 32 Bit Propgramm eingespielt wird) ist der 4 Gbyte Adressraum (soll voll vorhanden sein, ohne Abzug durch PCI-Adressraum oder OS-Bereiche) eine Teilmenge eines deutlich größeren Bereiches sein.


Solche Techniken, in Software only, sind übrigens uralt. Es gab schon Z80 Emulatoren zur 386er Zeit, wo das alte OS und die alte Software friedlich auf PC-BIOS und PC-DOS Funktionen zugreifen konnten (Nachtrag: Auch schon beim guten, alten C64 und auch Atari ST).
Jetzt aber alles 'hardwarebeschleunigt' auf Echtzeitgeschwindigkeit durch die x64 CPU; geht halt nichts über bewährte Technik.

MS verfährt so bei allen Windows Funktionen, ob Massenspeicher, Netzwerk API, Sound oder DirectX. Es wird dann keine 'echten' 32 Bit Betriebssytemfunktionen mehr geben, alles wird weitergereicht ohne Zeitverzug.

Und von wem wird es weitergereicht? Nicht zufällig vom OS?
Mal davon abgesehen ist ein Speicherschutz a la NX hinflällig, wenn er nicht für alle Programme gilt. Zum einen befindet sich im unteren Bereich des 64bit-Addressraums auch der 32bit-Bereich, zum anderen müssen ja nicht zwangsläufig die 64bit-Anwendungen überschrieben werden.
Es ist nunmal kein emulierter Rechner, in dem die 32bit Anwendungen laufen. Die befinden sich ganz normal neben allen anderen Anwendungen. Somit ist auch kein zusätzlicher Schutz zum "normalen" Speicherschutz gegeben.
 
Original geschrieben von PuckPoltergeist
Es ist nunmal kein emulierter Rechner, in dem die 32bit Anwendungen laufen.

JAIN

Die Geschwindigkeit ist zu 100% vorhanden, die 32/64 Bit Koexistenz ist aber deutlich mit einer Softwareemulation verwandt.

Meines Wissens nach wird weder der PCI-Adressraum noch die 64 Bit-Programme/Daten in die 32 Bit Welt eingeblendet (daher volle 4 GB für die 32 Bit Programme) noch irgendwelche OS-Puffer etc.
64 Bit Programme und das 64 Bit OS gibt es aus Sicht einer 32 Bit-Applikation nicht. Die sehen ein Schlaraffenland von 4 Gbyte Speicher, zur alleinigen Verfügung. Mehrere 32 Bit Programme müssen sich aber dann wohl den einen 4 GB Adresraum teilen.
Es gibt die Funktionsaufrufe für die 32 Bit Software, das wars aber auch. Was da geschieht hat keinen Einfluß auf die 64 Bit Daten oder Programme, nur (korrekte) Funktionsaufrufe.

Daher deutlich ähnlicher einer früheren Emulation, obwohl Hardware dahinter steht.
 
intelhasser hat ja schon gesagt, dass es etwas ähnliches gibt, das mit dem NX-Feature zu vergleichen wäre...
 
doofe frage, kann ich unter 64bit xp-beta alle 32-bit proggz (inkl. games) installieren und alles funzt wie bisher?
 
Zuletzt bearbeitet:
Original geschrieben von muesli
doofe frage, kann ich unter 64bit xp-beta alle 32-bit proggz (inkl. games) installieren und alles funzt wie bisher?


1:0 21. Minute - Ballack


also ob unter der Beta alles läuft, kann ich nicht sagen, ne Beta hat immer noch versteckte Macken.


Technisch gibt es keinen Grund, daß 32 Bit Software / Programme/ Games nicht unter 64 Bit laufen sollten.

Spiele profitieren zudem von den leistungsfähigeren 64 Bit Treibern der Grafikkarte und auch DirectX in 64 Bit.

Software muß schon sehr konfus programmiert sein, um nicht zu funktionieren.

Im Prinzip ist Win64 und x64 dafür gedacht, daß der riesigen Bestand an 32 Bit Software problemlos bis zum Ende von Windows oder der Welt weiter funktioniert. Alles, was nicht geschwindigkitskritisch ist - wie Office - wird eh in 32 Bit auf Jahre bleiben und problemlos funktionieren.
Also, keine Extra-Software für Win64, ein typ. Win64 System wird noch in Jahren einen bunten Mix aus beiden Welten bieten.
Der Umstieg von 16 auf 32 Bit Windows war da wesentlich einschneidender, das entfällt völlig.

Fazit: Ein Normalanwender wird nicht merken, daß er 64 Bit nutzt, außer eben doch gute Performance in vielen Bereichen.
 
21:26h deutschland-tschechien 1:1, holland - lettland 2:0 de ist draussen....

also ob unter der Beta alles läuft, kann ich nicht sagen, ne Beta hat immer noch versteckte Macken

bei MS ist kein unterschied zwischen beta und voll-version erkennbar...gibt es schon eine full-version?

...Games nicht unter 64 Bit laufen sollten
s-o-l-l-t-e hilft nicht weiter, tut es oder tut es nicht!?

Spiele profitieren zudem von den leistungsfähigeren 64 Bit Treibern der Grafikkarte und auch DirectX in 64 Bit.

64bit bedeutet, daß mehr speicher angesprochen werden kann, mehr nicht und auch nicht weniger. selbst unter xp32 kannst du schon 2gb dranhängen, nützt dir aber WO und WANN etwas!?
 
Deutschland auf dem Heimweg - müssen Ruderboot nehmen ...


Man kann in jede Software Bug einbauen, die irgendwann zutage treten.
Es gibt aber keinen Grund, daß Games nicht unter Win64 laufen.

----------------------------------


http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1693940#post1693940


64bit bedeutet, daß mehr speicher angesprochen werden kann, mehr nicht und auch nicht weniger.

Es gibt schon erste vielversprechende Benchmarks, aber anscheinend muß erst klar und deutlich die I32 'versenkt' werden, bis 64 Bit als 'Turbo' anerkannt wird.
Wenn ein Treiber noch Hardware beschleunigen kann, dann werden 64 Bit Treiber den IA32 Treibern überlegen sein.
Dies ergibt sich theoretischen Überlegungen und wird sich in den Final-Benchmarks auch so zeigen.
Der größere Adressraum ist bei x64 eher 'Abfallprodukt', im Design steckt Performancesteigerung im oberen einstelligen bis unteren zweistelligen Bereich im Schnitt.
 
Original geschrieben von rkinet
Meines Wissens nach wird weder der PCI-Adressraum noch die 64 Bit-Programme/Daten in die 32 Bit Welt eingeblendet (daher volle 4 GB für die 32 Bit Programme) noch irgendwelche OS-Puffer etc.

Ok, dann können 32bit-Anwendungen keine Peripherie mehr nutzen. ;D


64 Bit Programme und das 64 Bit OS gibt es aus Sicht einer 32 Bit-Applikation nicht. Die sehen ein Schlaraffenland von 4 Gbyte Speicher, zur alleinigen Verfügung. Mehrere 32 Bit Programme müssen sich aber dann wohl den einen 4 GB Adresraum teilen.
Es gibt die Funktionsaufrufe für die 32 Bit Software, das wars aber auch. Was da geschieht hat keinen Einfluß auf die 64 Bit Daten oder Programme, nur (korrekte) Funktionsaufrufe.

Daher deutlich ähnlicher einer früheren Emulation, obwohl Hardware dahinter steht.

Und Speicherschutz gibt es dann auch nicht mehr. *lol*
 
Original geschrieben von rkinet
Spiele profitieren zudem von den leistungsfähigeren 64 Bit Treibern der Grafikkarte und auch DirectX in 64 Bit.

Das kann nicht funktionieren (DirectX), weil das bei der unterschiedlichen Registerzahl knallt. Außerdem haben Treiber keinen/kaum Vorteil von der 64bit-Architektur, was ich aber schon in einem anderen Thread ausgeführt habe.
 
@Puck
rkinet hat schon recht ;)

DOS Progs müssen auch nicht innerhalb 1MB laufen, dafür gibts den Virtual86 Mode. Und genauso gibts was Vergleichbares für AMD64, wo das OS schnell zwischen beiden Modi wechseln kann.

Ein 32bit Programm sieht alle seine gewöhnlichen 32bit Funktionen, aber dahinter (an der Speicheradresse) verbirgt sich dann nur eine kleine Routine die die Zugriffe in die 64bit Welt des Kernels weiterreicht.
DirectX betrifft das genauso, und Parameterübergabe per Register ist praktisch sowieso nicht im Einsatz, außer vielleicht im neuesten Embedded Linux Kernel ;)

Du denkst doch nicht, dass bei WinNT ein komplettes DOS nebenher läuft wenn man in der Konsole irgendwas mit DOS startet?
Löst ein DOS Prog einen Interrupt aus gibts eine Exception die den 32bit Teil vom OS auf den Plan ruft. Der erledigt das, was normalerweise der 16bit Code machen würde und dann geht das Programm weiter.

So ähnlich sieht es auch bei 32bit Progs unter AMD64 aus. Das OS könnte zb. eine Page nicht besetzten (ergo lößt ein Zugriff eine Exception aus) und dann eben bei Zugriffen darauf die Exception abfangen und die Funktionalität in 64bit realisieren.

Nur gibts dafür bestimmt noch einen saubereren Weg als eine Exception.
 
Original geschrieben von intel_hasser
@Puck
rkinet hat schon recht ;)

Nein hat er nicht.


Ein 32bit Programm sieht alle seine gewöhnlichen 32bit Funktionen, aber dahinter (an der Speicheradresse) verbirgt sich dann nur eine kleine Routine die die Zugriffe in die 64bit Welt des Kernels weiterreicht.
DirectX betrifft das genauso, und Parameterübergabe per Register ist praktisch sowieso nicht im Einsatz, außer vielleicht im neuesten Embedded Linux Kernel ;)

Deshalb müssen die Addressen trotzdem 32bittig sein, welche zurückkommen. Wieso sollte ein 64bit-DirectX darauf Rücksicht nehmen?


Du denkst doch nicht, dass bei WinNT ein komplettes DOS nebenher läuft wenn man in der Konsole irgendwas mit DOS startet?

Genau das bestreite ich ja. Es gibt keine Emulation oder gleichzeitig laufen eines alten Systems.
 
Zurück
Oben Unten