Is dat zo?
Per applicatie heeft Win32 (Dus zeker XP) 4GB geheugen tot haar beschikking. Dit is een lineaire space.
Dit is verdeeld in twee gedeelten. Eerste gedeelte, applicatie geheugen, 2GB. Tweede gedeelte Microsoft gedeelte, 2GB. In het eerste gedeelte is de eerste 64KB gereserveerd. Hier mag een programmeur niet aankomen. Het bovenste gedeelte (>2GB) mag een programmeur ook niet aankomen.
Let wel. De 4GB is virtueel! En per applicatie. Dus Explorer heeft 4GB, IE heeft 4GB, tweede instantie van IE heeft ook 4GB.
OS onderdelen en drivers zijn gespiegeld in bovenste gedeelte (>2GB). Daar mag je niet zo maar aankomen. Service pack 2 heeft op die adressen invloed. Daarnaast worden de .DLL bestanden geladen binnen de lage 2GB. Door de jaren heen kon je er
bijna van uitgaan dat enties voor API functies van bijvoorbeeld USER32.DLL, SHELL32.DLL etc. altijd op het zelfde adres werden geladen. Hiervan hebben een aantal programmeurs gebruik gemaakt om bijvoorbeeld interprocess communicatie te implementeren (of virusse, trojans etc.) of parasiet threads op andere processen te implementeren.
Helaas is het een bestaand feit dat MS zegt dat je gebruik moet maken van de app loader om de entrypoints te laten linken tijdens het laden van je programma. Iedere programmeur welke dit handmatig codeerd is dus een su**el. Hoe knap het soms ook lijkt.
Nu kan het zijn dat de volgorde van de exports is aangepast in een .DLL van MS door SP2. So what, als een app goed is geschreven heb je daar geen last van.
Kortom, we kunnen nu op MS gaan zeiken dat het niet werkt, maar eigenlijk moeten we roepen.
Leverancier van dat pakket, zorg voor een "Compliant" versie. Om even verder te kijken. Je hebt een leuke tool van Microsoft "Application Compatibility Checker". Er zijn applicaties die daar niet doorheen komen en toch worden aangeschaft door bedrijven. Bovendien zijn er ook bedrijven die het niet nodig vinden om een oud Exact pakket te upgraden omdat de 1996 versie nog zo lekker werkt.
Dat oude software, dirvers en hardware tot nu toe heeft gewerkt is een kwestie van puur geluk en heeft niets te maken met een gedegen onderzoek en software beleid bij een bedrijf. Het is niet het probleem van MS maar een gevolg van de laksheid van beslissers en IT staf bij een bedrijf dat na SP2 applicaties niet meer werken.
Overigens nog een extra klein argument om SP2 te gebruiken:
Netwerk belasting bij enumeratie van shares en folders op een share is met meer dan 80% afgenomen! Zie
hier.