Date: Tue, 13 Apr 1999 14:20:32 -0400 Message-Id: <199904131820.OAA01192@envy.delorie.com> From: DJ Delorie To: djgpp AT delorie DOT com In-reply-to: (message from yjtseng on Tue, 13 Apr 1999 12:14:51 -0600) Subject: Re: cwsdpr0.exe 4/13/99 References: Reply-To: djgpp AT delorie DOT com > I thought that paging and virtual memory are the same, i.e. if paging is on > then virtual memory concept kicks in. And if virtual memory is disabled then > you are not supposed to have paging and in this case linear address is the > same as physical address. :-) Paging means you're using the page directory and page tables to rearrange memory to suit your needs. For example, qemm might use paging to remap the first 64K of memory just after the 1Mb mark to simulate the A20 wraparound present in pre-286 computers. Virtual memory means that parts of your program's address space refer to memory that may be stored on some slow media (like a hard drive) or may not exist at all yet (like stack you haven't used). This allows programs to be larger than the size of physical memory. Paging without virtual memory is easy, and in fact that's what you get if you don't need to use that disk-based swap file, since all the memory you use is real memory. Virtual memory without paging is easy, and in fact that's how 286's had to do it - they had no paging, but they could swap segments out for virtual memory.