Neohack.
No es ningún error de Windows. Sencillamente es WINDOWS. Ya deberías saber que no es un s.o, sino un saco de despropositos y una estafa hablando claro.
La arquitectura x86 tiene un limite de uso de memoria de 2GB. Esté limite se amplia con los micros x86-64bit. Para los micros x86-32bit existe el llamado PAE (physical address extension).
Linux lo soporta desde al menos el kernel 2.2 que yo sepa, y puede emular más de 4GB y más de 64GB.
En el trabajo tengo un dual xeon con 4GB de ram y Windows XP Professional SP1. Lo tengo usando 3GB porque si activo el modo PAE la mitad de los controladores funcionan mal y los programas petan al arrancar. Para más hinri desde microsoft dicen que con el SP2 en modo PAE se han detectado fallas. ¿quieren decir con eso que con el SP1 funciona bien? ja-ja
Por si esto no fuera suficiente, debes saber que Windows XP y nigún windows, al menos de los que yo he probado es capaz de paginar más de 2GB por proceso. Gravisimo limite si tratan de venderlo como un s.o para workstation. La mayoría de software de CAD y DCC requieren manejar grandes volumen de datos. He aquí la razón por la que desde hace muchos años existen (verdaderas) plataformas de 64 bits (hablo de Sparcs, MIPS, RISC, etc)
Concluyendo, te diré que el hardware tan solo es capacidad, un contendor y el software es el contenido. No sirve de nada tener capacidad sino tienes nada con que llenarlo y llenarlo de forma eficiente.
En otras palabras, el software es lo más importante. La programación lo es todo.
Tienes ejemplos a patadas. ¿porqué un paquete como Blender ocupa 10MB empaquetado, mientras otros paquetes com Max, Maya, o XSI, ocupan de 300MB en adelante?? No creas que Blender está muy lejos en cuanto a capacidad, funciones y herramientas de estos. Lightwave también era de los ligeritos (40MB)
Yo no sé programar, pero hace años cuando hacía mis chorradillas en QuickBasic, vi cómo al hacer una función, se podía acelerar en función de la maquina que la iba a ejeuctar, simplemente cambiando un valor numerico. Es decir, por ejemplo una función que te dibuja un rectangulo en pantalla se puede regular su tiempo de dibujado según si lo va a hacer calcular 386 o un pentium, y perceptualmente tardarán el mismo tiempo. Esto es muy primario y los programas son extremadamente complejos, pero sirve para que te hagas una idea de cuanta importancia tiene el software, sea de bajo nivel (drivers) o de alto nivel (aplicación de usuario).