The differences in memory management between Windows 3.x and 98/95/NT are so extreme that no simple comparison is possible. Under DOS (and Windows 3.x), only the bottom 640KB of memory was readily accessible, and extended memory managers were required to use any memory beyond the first megabyte. Under both Windows 98 and NT, with 32-bit addressing, memory is effectively flat up to several gigabytes.
There is, however, one important difference between Windows NT and 98. Where NT works in an imagined logical address space of 4GB, Windows 98 is limited to a mere 2GB address space. However, since both of these are well beyond what we can reasonably expect to see physically installed on machines in the near future, these limitations are more imagined than real and, for most practical purposes, both 98 and NT can be assumed to use the same memory address limitations. Also, the memory management APIs for both systems perform essentially the same functions.
Where a difference is visible, however, is when an application attempts to address memory that does not belong to the application. Under Windows NT, where memory access is very tightly regulated, the effect of an invalid address is that the system kills the application. Under Windows 98, however, there are no such protections and an errant application can disrupt other applications or crash the system.
NOTE
See Chapter 19 for more information about the memory management API.