use shm_open instead of a plain open: it's the most portable way to ensure we allocate something in tmpfs
add a way to shm_open&mmap the GC file in 'non-gc-mode', which means that you can read the memory but not doing new allocations