To my surprise, I recently found out that Windows would fail a large memory allocation even if little of said memory is to actually be used, e.g. even if you don't want the swap, you better not disable it. http://brandonlive.com/2010/02/21/measuring-memory-usage-in-windows-7/ (Basically, in Windows 7, Windows Task Manager, Performance, System, Commit, -- the sum of the physical memory plus the swap file is depicted, and a mere allocation of 2GB will immediately grow the figure by 2GB, unless such growth is restricted (e.g. if the page file is disabled), then the whole allocation would fail.)
I recall that it's also the case with OpenVZ virtualisation, which behaves the same way, thus being incompatible with Java, for example. However, I never really heard of anything like that in regards to the virtual memory of other operating systems, like FreeBSD, OpenBSD or non-OpenVZ Linux (which doesn't necessarily mean that they don't behave the same).
What's the history behind such behaviour, and how the popular systems generally behave in such situation? I mean, isn't virtual memory supposed to be unlimited on any system?