Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A flat address space is a single, linear range of addresses that software can use to refer to memory locations. Unlike segmented addressing, which forms a location from a segment and an offset, a flat model presents addresses as values in one range. “Flat” describes this address view; it does not mean that physical RAM is contiguous, that paging is absent, or that every process shares the same memory.

What does “flat address space” mean?

In a flat address space, addresses are arranged as one continuous, ordered range, typically represented by increasing integer values. Software refers to locations within that range directly rather than combining a segment identifier with an offset. The range is determined by the processor architecture and its address width.

For example, the RTEMS Project’s CPU Architecture Supplement 6.2, dated 19 December 2025, describes most of its targets as using 32-bit addresses from 0x00000000 to 0xFFFFFFFF, representing a 4 GiB address range. Some smaller RTEMS-supported targets use 20-bit or 24-bit addresses. These are architecture-specific examples, not a universal size or a statement about how much physical RAM is installed. See the RTEMS CPU Architecture Supplement 6.2.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How is flat addressing different from segmented addressing?

Aspect Flat address space Segmented addressing
How a location is identified One address within a linear range A segment identifier combined with an offset
Software-visible organization One ordered address range Multiple segments, each addressed with an offset
What the model tells you How software views and refers to addresses How an address is formed from its segment and offset

The distinction is about address formation and the software-visible organization of memory. It does not by itself establish how much memory exists, whether addresses are translated, or whether applications are isolated from one another. Processor architectures can also retain segmentation mechanisms internally while software operates with a flat model; the Intel 80386 documentation describes a four-gigabyte flat space mapped to physical address space using address-translation mechanisms. See the Intel 80386 Programmer’s Reference Manual.

Does flat mean physical RAM is contiguous?

No. A flat address range describes the addresses software sees, not the arrangement of physical memory chips or the guarantee that every address corresponds to installed RAM. Some addresses may be unavailable or mapped to other uses, depending on the system.

A system may also translate a flat address into a physical location. RTEMS notes that a board support package can configure memory-management-unit (MMU) translation while retaining a flat memory model. A flat address space therefore does not imply direct physical addressing or the absence of an MMU.

Can a flat address space use paging?

Yes. Paging divides an address space into pages and can operate beneath the software-visible flat range. Berkeley CS162 explains that an operating system can give each process the illusion of a large, flat address space while breaking it into pages. The address view can be linear even when the system translates addresses and manages memory in page-sized units. See the Berkeley CS162 virtual memory lecture.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Does flat mean processes share memory?

No. Flatness alone does not determine whether processes share an address space or receive separate, protected spaces. That depends on the operating system and its configuration. Oracle’s ChorusOS documentation, for example, describes a MEM_FLAT model in which the kernel and applications share one unprotected address space, as well as protected configurations with separate virtual spaces. See the Oracle ChorusOS memory model documentation.

So when a system is described as “flat,” check two separate questions: what address range does software see, and how does the operating system handle translation, sharing, and protection?

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.