ForwardCom: Proposal for forward compatible instruction set architecture (2018)
forwardcom.info
forwardcom.info
Looking at /proc/$PID/maps for firefox, it contains well over 100 noncontiguous map ranges. The address 0x11b000000000, for example, is not mapped to anything, but addresses above and below it are.
You can handle the heap growing by just allocating a new page for it somewhere in free memory. Your heap doesn't have to be contiguous.
In this case, I think the Forwardcom solution is to add another entry in the memory map for the next 2*n bytes of heap space.