Gravatar de Armonth

Los 4GB de RAM y los 32 bits de Windows

La historia se repite y si en su momento hubo limitaciones que obligaron a migrar de sistemas operativos de 16 bits (y los 640KB de límite) a 32 bits ahora la historia se repite.

En realidad la historia de la informática es una constante de limitaciones en el redireccionamiento y mapeo máximo disponible como ya paso no hace mucho con el estándar IDE/ATA de 28 bits que limitaba a reconocer máximo 137GB. Incluso el estándar utilizado actualmente (si no me equivoco), que redirecciona 48 bits, tiene un límite aunque bastante más lejano: 144 petabytes.

Los sistemas operativos de 32 bits sólo mapean 4GB de memoria RAM pero dado que en esos 4GB deben ser “compartidos” con otros dispositivos mapeados como puede ser la tarjeta gráfica en la práctica se dispone de 3.1GB o incluso menos si hay que mapear muchos dispositivos. Existen otras limitaciones, por ejemplo las aplicaciones en espacio de usuario sólo pueden utilizar 2GB.

Mientras tanto en GNU/Linux pese a la limitación de los SS.OO de 32 bits se puede mapear hasta 64GB (opción desactivada por defecto) añadiendo un pequeño “overhead” aunque la ganancia de RAM sale más a cuenta que el overhead producido. En Kernel Trap hay una extensa explicación en inglés de cómo gestiona el kernel Linux (2.6) la memoria.

Volviendo al hilo, debido a todo esto Internet está plagado de foros con temas cómo “Windows XP no me detecta los 4GB de RAM” y similares. Así que en resumidas cuentas tocar usar sistemas operativos de 64 bits, usar extensiones PAE1 o no decir cuánta memoria disponible hay.

Esto último es lo que ha decidido Microsoft: si miramos la lista de cambios que ofrece gHacks para el Service Pack 1 de Windows Vista vemos que ahora en lugar de reportar la memoria disponible para el sistema operativo, ofrece la instalada en la máquina.

Por un lado es un detalle insignificante pero por otro parece un movimiento hecho adrede ahora que los fabricantes empiezan a usar 4GB como cantidad básica en portátiles frente al giga actual.

La única ventaja a este “engaño” (yo diría cambio de métrica) es que en la tienda no hace mucho un cliente quiso poner 4GB con Windows XP y pese a que se le advirtió hizo oídos sordos, cómo aprenda a usar el ratón me lo veo venir pensando que lo hemos engañado.

Aunque ahora que lo pienso no sería la primera vez que veo esto en una tienda y al técnico cerrándole la boca por el sistema de ir sacando (y contando) uno a uno los módulos de RAM para que vea que, efectivamente, son 4GB.

1: Un apunte sobre el PAE es que no es muy recomendable su uso ya que puede ocasionar desde incompatibilidad con drivers hasta que el sistema operativo deje de arrancar.

19 Comentarios (feed)

  1. Gravatar de DN DN nos comenta:

    El Windows XP esta limitado… pero no por culpa “de su arquitectura” está limitado por un simple control de licencias. Microsoft en su momento decidió que ningún usuario domestico tendría la necesidad de tener tanta RAM, y dijo… si quieres más, comprate un server… en su momento 2000 ahora 2003.

    Pero claro… es más espectacular decir que XP no soporta tanta ram porque windows está programado como el culo… en vez de decir que así como en su momento consideraron que 64k eran mucho… ahora dijeron que eran 4GB

    Domingo, 23 de Diciembre/2007 @ 2:27

  2. Gravatar de bagu bagu nos comenta:

    @DN
    Esa “defensa” que haces de MS no se sostiene: el problema radica en una limitación MATEMÁTICA de direccionamiento que afecta por igual a todos los SO de 32bits, sean Win, Linux o cualquier otro. Cada uno lo parchea como puede y funciona igual de mal en Windows que en Linux.
    Lo de las licencias que indicas no tiene ni pies ni cabeza.

    Lo único que en el post se “critica” de Windows (Vista, no XP), es el “apaño” que hacen para hacer creer al usuario que un sistema de 32bits soporta 4GB de RAM.

    A ver si leemos con más atención antes de comentar.

    Domingo, 23 de Diciembre/2007 @ 3:33

  3. Gravatar de Hereldar Hereldar nos comenta:

    Ambas cosas son ciertas, el problema es técnico y antes que arreglarlo Micro$oft prefiere timar a sus clientes pero también es sabido que si Windows tiene tantas limitaciones y problemas es por la política que siguen, les sale más rentable obligar al cliente a actualizarse a una nueva versión, previo pago por supuesto, que hacer las cosas bien.

    De todas formas para mi no es mucho problema, mi migración a Linux es casi completa y mi ordenador sólo tiene 2 Gb xDD.

    Domingo, 23 de Diciembre/2007 @ 9:32

  4. Gravatar de DN DN nos comenta:

    @bagu
    No estoy defendiendo a MS… a mi me parece muy rastrero que simplemente porque les da la gana no aceptan ordenadores con toda la memoria que su tecnología puede manejar.

    Hay varias estrategias para direccionar más memoria de la que te permite el bus de direcciones, y los Windows Server hace mucho tiempo que funcionan con más de 2GB de ram, y posiblemente el “parche” en vista sea activar una opción en el registro para que empiece a usar algún sistema de estos.

    Esta noticia la leí también en kriptopolis… pero ahí ya ni se me ocurrió decir nada porque se que cuando alguien dice “ojo que la situación es 100% normal y lógica, eso pasa en linux y en cualquier otro sistema operativo, y si windows tiene más problemas de lo normal es porque el departamento de marketing de micro$oft estaba tonto” me dirían de todo menos guapo (ya sabes, m$ malo, m$ kk, m$ troll)… en cambio se que aquí se puede hablar y dialogar.

    Domingo, 23 de Diciembre/2007 @ 10:25

  5. Gravatar de Armonth Armonth nos comenta:

    DN el problema, tal como indico en la entrada, es que la arquitectura físicamente no soporta más de 4GB y de eso hay que descontar cosas como el MMIO (el mapeo de la memoria) de los dispositivos PCI.

    Es posible que en su momento Microsoft limitase artificialmente eso pero no fue por licencias si no porque no hay soluciones perfectas: la solución del registro (”parche”) que comentas es el PAE… que lo hace más lento, inestable, algunos drivers dejan de funcionar, etcétera.

    En GNU/Linux el HIGHMEM=64GB no lo hace más inestable pero sí que es cierto que lo deja un poco más lento. En realidad lo que dices de los Windows Server es cierto: con un comando se puede activar el PAE (sin siquiera tocar el boot.ini) en Windows Server, Windows XP SP1 y Windows Vista. ¿Y Windows XP SP2? Lo desactivaron al ver que el PAE no es la solución.

    Los microprocesadores hace tiempo (desde el Pentium PRO) añaden un par de pines extra que ofrecen algo más de bits (creo que 36 bits en lugar de 32 bits) para poder direccionar hasta 64GB… pero si el sistema operativo sigue en 32 bits no hay nada que hacer salvo apaños poco estables…

    En realidad algunos artículos consideran que la única razón para elegir Windows Vista 64bits en lugar de 32bits es la del direccionamiento:

    Except in a few cases where 64-bit code is clearly faster, the primary purpose for Vista x64’s existence is to resolve the problems of 32-bit addressing space, and we’re just not at the point yet where even most enthusiasts are pushing that limit. Once applications begin to push the 2GB addressing space limitation of Win32 (something we expect to hit very soon with games) or total systems need more than 4GB of RAM, then Vista x64 in its current incarnation would be a good choice.

    Por último me alegra ver que cómo tú indicas, se puede hablar sin flameos (estos temas los trato poco por ése mismo motivo) :)

    Domingo, 23 de Diciembre/2007 @ 13:56

  6. Gravatar de Comanche Comanche nos comenta:

    Vamos a ver una cosa, yo no soy ni mucho menos quien vaya a apoyar a microsoft y su politica de software, pero este no es el tema.

    La memoria ram la podemos imaginar como una lista de folios cuadriculados donde podemos leer y escribir, pero es necesario que podamos acceder a cada sitio de una manera directa, es decir, hay que dividirla de manera llamemosle teorica para poder tener trozos mas pequeños (justamente 32 bytes que es el ancho de palabra del procesador). Es por tanto necesario que a cada uno de estos trozos de 32 bytes en que hemos “cortado” la memoria sea asociado a una direccion de memoria.
    En las operaciones de memoria, el microprocesador pide la lectura de cierta palabra COLOCANDO LA DIRECCION EN UNO DE SUS REGISTROS.

    Aja, tenemos 32 bytes de largo como maximo para asignar direcciones de memoria, luego con 32 bits de codigo binario (base 2) tenemos que podemos direccionar en total un máximo de 2 elevado a 32 palabras que es igual a 4294967296 bytes, que es igual a 4096 Mbytes, es decir 4 gigas .

    (en la practica se puede direccionar entre 3 y 4 gigas x el mapeo xo la conclusion es la misma)

    Conclusion:
    La anchura de palabra del micro de 32 bits nos da como máximo la capacidad de direccionar 4 gigas de memoria. Limitación hardware

    ¿Y Microsoft que tiene que ver en todo esto? que me lo expliquen

    de momento la solucion clara es que si quieres 4 o mas gigas de ram compres un micro de 64 bits y por supuesto migres a un sistema operativo que trabaje con esta anchura de palabra, como por ejemplo Ubuntu Linux 64 bits ;)

    Saludos

    Domingo, 10 de Febrero/2008 @ 12:56

  7. Gravatar de Armonth Armonth nos comenta:

    Comanche, yo en ningún momento critico a Microsoft porque por culpa de una arquitectura no pueda aprovechar más de 4GB (aunque poder puede que hace tiempo que los microprocesadores llevan “bits extra” para soportar 64GB o más, aunque te lo digo de memoria).

    Lo gracioso del asunto y que ha generado polémica es cómo sale del paso: en lugar de explicar que la cantidad instalada de la usada difiere por culpa de la arquitectura del hardware (para una vez que no es su culpa…) decide cambiarlo :P

    Sobre recomendar Ubuntu, yo hace tiempo que me estoy pensando el recomendarla pero eso ya es tema para otro apunte y — sobretodo — algo bastante personal y subjetivo.

    Domingo, 10 de Febrero/2008 @ 15:14

  8. Gravatar de KristoBendito KristoBendito nos comenta:

    Veo que si, aparte de que lo que se comenta es como Microsoft (para el que no lo sepa una compañía creada por alguien que estaba en un grupo y con las ideas del grupo creo su propia y compañía pues si MS KAKA). en vez de decir no, los sistemas de 32 bit no soportan mas de 4 GB y ya está, pues cojen y hacen ese apaño que se comenta arriva. Bien pero creo que cuando decís que sin Win2k3 32 bit soporta mas de 2GB o que si con linux 32 bit te llega a cojer 64 GB muy bien muy bonito todo pero realmente para que quiero 12453 GB si por ejemplo tengo un servidor de L2J, que esta escrito integramente en JAVA vale entonces como mi sistema es de 32 bit pues mi version de JAVA es de 32 bit evidentemente, por lo tanto el tamaño máximo de ram que java puede llegar a usar es de 2GB!!! entonces? es como tener 10 pen drives de 512 mb si en realidad tienes 5 GB pero como llevas un archivo de 5gb? (vale todos sabemos que se pueden partir con el win rar) pero es para poner un ejemplo de como por mucha ram que detecte, un solo proceso no puede usar mas de 2GB de ram, y si hablamos de un usuario comun quizas nunca lo necesite, pero un servidor si lo necesita, como es mi caso. Mi empresa de hosting me instala en un Intel XeoN 2,80GHz (64bits) un Fedora Core 7 (moonshine) de (32bit) cojo voy a mi server instalo el JRE y el JDK y que me encuentro cuando trato de reservar 2048mb para una parte del server que java me dice que no tengo RAM suficiente, cuando tengo 8GB de ram y nunca e superado el 10 % de uso…


    MicroSoft = BillGates = Ladrón = caca
    MicroSoft = caca

    Martes, 18 de Marzo/2008 @ 1:56

  9. Gravatar de shuanito shuanito nos comenta:

    muchas gracias chicos dejaron mis dudas super claras,.. jamas podre volver a tener xp 32 con mi nuevo compu..
    veremos que pasa con linux..

    Viernes, 9 de Mayo/2008 @ 2:43

  10. Gravatar de nestor nestor nos comenta:

    Hola compañeros

    quisiera saber si justifica colocar a un equipo con windows de 32bit (vista o xp) dos modulos de memoria de 2GB cada uno, si no los reconoce en su totalidad.

    no se si es un problema

    muchas gracias

    Viernes, 9 de Mayo/2008 @ 5:42

  11. Gravatar de niceman niceman nos comenta:

    Hola, por favor si me podeis ayudar, tengo una duda. Acabo de comprar un equipo Intel Core 2 Q9300, Asus p5k-e, nvidia 8800 gts pcx sli, con 4 giga de ram, en 2 modulos de 2 giga. Mi pregunta es: el Windows Xp 32 que quiero instalar va a funccionar peor que si le dejaria solo con 2 Giga de Ram, o no?
    Leyendo por ahi he visto que no me va a usar todo los 4G de Ram, esto me da igual, pero no quiero que me funccione mal.
    Muchas gracias.

    Sábado, 10 de Mayo/2008 @ 12:15

  12. Gravatar de Armonth Armonth nos comenta:

    nice: ningún problema, solamente que no te reconocerá (usará) más de 3GB y pico…

    Sábado, 10 de Mayo/2008 @ 19:53

  13. Gravatar de axel axel nos comenta:

    Hola amigos a ver si me sacan una dudilla
    tengo 4gb de ram ya sabemos y me queda claro que xp32 solo utiliza algo asi como 3,2gb ahora mi promblema es el siguiente estoy unando nuendo (programa de grabacio de estudio) con samples de bateria y comienzo a cargar samples que bombo que tambor y en un momento me dice que no tengo ram suficiente entonces dico como si tengo 3,2 gb pongo ctrl+alt+del y me fijo en el administrador de de tareas del win32 y en uso de pf pone 1,53gb.
    ya probe poniendo un solo modulo de 2gb y es la misma historia exacta
    ahora mi pregunta es la siguiente que pasa???????
    es que windows no puede gestionar mas memoria? o que ???
    bueno muchas gracias por responder y si me dan alguna idea porque estoy bastante caliente con esto
    saludos para todos

    Lunes, 19 de Mayo/2008 @ 5:35

  14. Gravatar de Guille Guille nos comenta:

    Buenas, el tema esta interesante, pero una pregunta llevo un rato buscando por internet la formula matematica/calculos para poder saber el tamaño exacto de ram que acepta una arquitectura, ya sea 8, 16 , 32 , 64 bits.

    Agradeceria que me lo pusierais porque de momento no lo he encontrado.

    PD: Buen blog.

    Jueves, 29 de Mayo/2008 @ 13:29

  15. Gravatar de l_lester_dj l_lester_dj nos comenta:

    No es un problema de adquitectura, ni de hadware, di de 86X o 64X ya que probe anbos y el resultado es el mismo… vasta con abrir el paint y en acerca de al final ver la memoria fisica. Por absurdo que paresca…
    Aun Mostrando en sistema los 4G solo usa 3G
    Por quien nos toman (tontos e ignorantes)
    Ofenden nuestra inteligincia..

    El resultado es el mismo tanto en vista x86 como vista x64…

    Ahora instale el server 2008 x86 y cual fue mi asombro al ver la memoria ficica entera…
    despues lo parche con una licencia de vista ultimate x86 y quede atonito al ver que la memoria bajo nuevamente por debajo de los 4G… entonses Mi conclucion e invito a todos a hacer estas pruebas… es que la supuesta limitacion de mas de 4G en los 32 y 64 es la misma digan lo que digan… y no diferente…
    y esto esta limitado al licenciaminto del mismo…

    Es decir lo que limita el uso de la memoria es el licenciamiento y no el tipo de sistema como nos lo han hecho creer y muchos han divulgado… solo repitiendo lo que otros dicen…

    Yo creo que es un engaño total y una falta de respeto a nuestro intelecto.

    Domingo, 6 de Julio/2008 @ 22:08

  16. Gravatar de Mathías Mathías nos comenta:

    Hola colegas,

    Antes que nada, muy buen blog, exelente tema a tratar y las opiniones están muy bien.

    Pero les quiería hacer una consulta, ya que en varios sitios se comenta que Windows XP de 32 bits llega a reconocer poco mas de 3GB de RAM (habiendo instalados 4GB), acá es donde viene mi duda, es esto verdad al 100%, o hay casos en que no se da así?. Me parece rarísimo que a todos los que tienen 4GB de RAM instalados les detecte 3.5 etc, etc… cuando amí habiendo instalado 4 idénticos módulos de 1 GB c/u Windows XP SP2 de 32 bits NO LLEGE A MOSTRAR EL ESCRITORIO0 QUE TIRA UN PARO DE EMERGENCIA (o pantallazo azul) Y REINICIA, ASÍ SUCESIVAMENTE… También he provado con 3GB y ahora sí inciando normalmente pero con el mismo problema pasados unos 15 o a veces 30 minutos, vuelve a reiniciar (previo pantallazo azul)… En pocas palabras mi pc está andando normalmente con 2GB de RAM ya que con 3GB tampoco había un óptimo uso… Alguien podría decirme por que razón no puedo instalar toda la RAM (aunque ésta no sea detectada en su totalidad), sin que me pase este problema de reinicio constante??

    Mi pc es un Intel Pentium Dual Core 3,0GHz (64 bits) y mi placa madre es un Asus P5ND2-SLI. Muchas gracias, salu2.

    Miércoles, 9 de Julio/2008 @ 14:32

  17. Gravatar de einar einar nos comenta:

    Compre una laptop, y me vino con Windows vista 64bit, y como me la mandaron de USA, quiero cambiarle a win vista 32bis en español, la laptop viene con 4Gb, pero en sus especificaciones dice “Up to 1 GB may not be available due to 32-bit operating system resource requirements”, lo que no entiendo bien si me conviene o no, porfavor quería sus opiniones si le cambio al 32bits, o si no tendría que conseguir vista en español 64bits, pero todavía creo que no es su hora por el tema de las compatibilidades, gracias

    Viernes, 11 de Julio/2008 @ 17:05

  18. Gravatar de calv calv nos comenta:

    Vaya tambien he tenido este problema,, puse 02 bancos de 2gb (memorias corsair)en mi pc una DP965Lt CON Intel Core2Duo 4300, y me vengo a entera q solo puedo usar hast un 75% (3.6gb) segun la pagina de www.corsarir.com

    Me siento engañado porq de esto te enteras investigando y no cuando te dan el XP 32 bits indicando sus limitaciones

    Domingo, 20 de Julio/2008 @ 19:14

  19. Gravatar de Piolox Piolox nos comenta:

    Debido a que armo maquinas a pedido, me encotrado hoy tratando de armar una maquina con 4GB de RAM. La sorpresa llego al enterarme de que NO es posible utilizar toda la RAM en los sistemas de 32 bits (XP,VISTA) si es posible en las versiones de 64 bits pero solo si el hard permite el remapeo de memoria (viene por defecto desactivado en el BIOS) y si el S.O. reconoce a los componentes (BIOS y chipset) sino solo se podra usar 3 GB y si hay muchos componentes instalados aun menos.-

    http://www.multingles.net/docs/jmt/4gbmem.htm

    Viernes, 25 de Julio/2008 @ 4:25

Comentarios cerrados