C'est celà le problème quand on se transmet des informations en pratiquant la simplification. A force de raccourcir, on en vient à tronquer l'information et à la rendre ... fausse.
En fait, les codifications des adressages en mémoire se font sur des double-mots (soit 2x2 octets = 4 octets x 8 bits = 32bits) d'où 2^32 (lire 2 puissance 32) bits, soit ... 4 Go.
De ce fait, en ne signant pas, on pourrait effectivement utiliser 4 Go pour adresser la mémoire. Mais pour des raisons de portabilité un bit d'adressage est réservé, ce qui divise par 2 la taille de la mémoire adressable sur un os32, ce qui revient à 2 Go.
Donc seulement 2 Go sont adressables pour une application, comme pour un jeu, sur un système 32b. Mais plusieurs applications peuvent être lancée en //, dans ce cas, la limite est portée à 3.12 Go.
Mais alors, quid des 0.88Go restant ? Ceux ci peuvent être utilisés pour la gestion des périphèriques.
En gros, si tu as pleins d'appli qui tournent en //, 3.12 Go de mémoire seront utilisées par elles, et si tu as plein de périphèriques de connectés en même temps que l'exécution de ces application, tu pourras monter jusqu'à 4 Go.
Sinon, il faut s'avoir que l'adressage des périphèriques, est fait suivant un adressage décroissant. C'est à dire en partant de l'adresse la plus haute vers l'adresse la plus basse. Ce qui fait que si plus les périphèriques ont besoin de mémoire, moins de mémoire reste disponible.
N'oublions pas également la mémoire prise par l'os et les applications qui tournent en arrière plan (telles Firewall, AntiSpyware, Antivirus, ...) , celà peut monter aisément à 500/600Mo.
Si tu ne disposes que d'un kit 2Go, sans même compter la mémoire utilisée par la gestion des périphèriques, tu réduis la mémoire dispo d'une application(ou jeu) à 1,4/1,5 Go max auquel il faudra enlever la mémoire pour les périphèriques.