A 32bit address bus can address 4 GB memory. When 32 bit OSs became available 4 GB was thought to be more than anyone would ever need (the same as they thought about 640 KB with DOS) and the address space was arbitrarily divided with 2 GB available for the OS and 2 GB available for applications. Since the OSs at the time did not require much memory you were limited to slightly more than 2 GB of useful memory. You can now use the /3GB switch in Boot.ini to make 3 GB available to applications. It is still doubtful if it is worthwhile in most cases to have more than 3 GB, or even more than 2 GB, because most applications can not use more than 2 GB and even a bloated OS such as WinXP will not use much of the memory reserved for it.