Reading online there seems to be some confusion over the term 'Virtual Memory'. It seems to describe either two concepts, one being each process having its own virtual address space, and the other being the idea of being able to page to a secondary drive. I assume in nearly all new OSs they implement 'both'.
My question is, do these two concepts have to be implemented together? When looking online for information they seem to be always mentioned together, but is it possible to have one without the other?
For example, I know I can disable having a swap file on my system, therefore each process still has it's own virtual address space and is still implementing virtual memory, but isn't paging to a secondary drive.
In theory, not that this would happen, but could you implement a system that uses paging but not virtual address spaces for each process, technically would this still be using virtual memory?
When we talk about 'virtual memory', which concept are we specifically talking about, or is it both?
Any help clearing up my confusion would be appreciated, thanks.