next up previous contents
Next: 12.2 System Calls Up: (X86) Processor-specific Fluke Interface Previous: (X86) Processor-specific Fluke Interface

12.1 Address Spaces

There are two types of address spaces in Fluke on the x86: standard and nonstandard. A standard address space is one in which ordinary Fluke code can run, and therefore places some restrictions on the use and layout of the address space. A nonstandard address space cannot be used to run ordinary Fluke code, but can be used as intermediate spaces for memory mapping, or for code running in the special emulation mode. Nonstandard address spaces are currently not implemented.

A standard address space is either 1GB or 2GB in sizegif: if user code attempts to create regions or mappings that fall outside that area, the result is undefined. In addition, the address range between 0x04000000 and 0x04400000 (64MB and 68MB) is reserved for the Fluke entrypoint area, described below in Section 12.2; user code must not attempt to create regions or mappings overlapping this area. Finally, it is recommended that programs confine their address space use to the low 256MB range if possible; this will permit better optimization on Fluke implementations that combine multiple virtual address spaces on a single underlying linear address space using x86 segmentation.

A nonstandard Fluke address space is 4GB in size and imposes none of the restrictions of standard spaces except the basic page-granularity restrictions for mappings. In particular, there is no Fluke entrypoint area in a nonstandard space; the entire contiguous 4GB is available for application use.

The minimum page size for the x86 architecture is 4KB (4096 bytes).



Utah Flux Research Group