The original 8086 processor could directly address up to 1 megabyte of memory. The PC memory map allocated 640 KB of that for RAM.
The first kind of further memory expansion was classic bank-switching. Within that 1 megabyte address space, you insert a window, say 32 kilobytes, which can be set to some 32 KB section of the extra memory. Same way more than 64 KB was added to systems like the Apple II, which could only address 64 KB. It's a pain to program for this kind of arrangement.
Later, when running in protected mode, the Intel 286 would be able to directly address up to 16 megabytes of RAM, and the Intel 386 up to 4 gigabytes. Memory managers running in protected mode that could access this memory directly were created, which would handle memory for DOS applications.
Those two approaches for > 1 MB are XMS and EMS. Though I can't remember which is which!
The first kind of further memory expansion was classic bank-switching. Within that 1 megabyte address space, you insert a window, say 32 kilobytes, which can be set to some 32 KB section of the extra memory. Same way more than 64 KB was added to systems like the Apple II, which could only address 64 KB. It's a pain to program for this kind of arrangement.
Later, when running in protected mode, the Intel 286 would be able to directly address up to 16 megabytes of RAM, and the Intel 386 up to 4 gigabytes. Memory managers running in protected mode that could access this memory directly were created, which would handle memory for DOS applications.
Those two approaches for > 1 MB are XMS and EMS. Though I can't remember which is which!