I came across the following on http://tldp.org/LDP/tlk/mm/memory.html
If the faulting virtual address is invalid this means that the process has attempted to access a virtual address that it should not have. Maybe the application has gone wrong in some way, for example writing to random addresses in memory. In this case the operating system will terminate it, protecting the other processes in the system from this rogue process.
Now, my doubt is related to this phrase
"faulting virtual address is invalid".
What is exactly meant by this? How can a *virtual address be invalid*? After all, any 32 bit value (on a 32 bit machine) would correspond to some 'valid' address in the virtual address space.