The physical memory of the server is divided into 4 KB blocks, called pages. When a NLM program wants to store information in memory, it requests memory pages that are contiguous, so that all the information can be stored in a sequential group of pages.
As contiguous blocks of memory pages are allocated and then made free, small segments of memory are often left over. After a while, there are many such isolated pieces of memory too small to be used. This situation is called memory fragmentation. When memory is fragmented, the server often cannot satisfy memory requests even when a lot of memory is available.
NetWare's logical memory addressing scheme helps to prevent memory fragmentation. The memory management subsystem provides a logical space manager that lists logical memory addresses from 0 to 4 GB. The logical space manager lists addresses up to 4 GB even if the server contains only the minimum 256 MB of RAM.
When an NLM program needs a contiguous block of memory, the operating system finds a set of logical, contiguous addresses in the logical space. Because the logical space has so many logical addresses (one million entries, one for each 4 KB page), the operating system can almost always find the contiguous logical memory addresses the NLM program needs. Then the operating system allocates physical memory which might or might not be contiguous. The operating system then binds the logical addresses to the physical addresses.