For a 32bit OS you can theoretically address 4GB of memory, but when running a 4GB system with a 32bit OS hit you’ll probably hit a barrier around roughly 3GB. For Windows XP there’s no way of solving this unfortunately as far as I know, which is a shame cause 800MB was not being utilised. For Ubuntu there is, my former colleague Patrick pointed me out to this and it works great, thanks again for me helping me:
sudo apt-get install linux-server linux-headers-server
So what it does is installing the Ubuntu server kernel which includes PAE support. PAE stands for Physical Address Extension and it increases the address size from 32bits to 36bits which means you can address up til 64GB. For more info on PAE read this wiki.