> but not the data. Then the RAM area inside the unused address space in > the middle of the segment is not wasted. > > process1: |data+heap> <stack| > process2: |--data+heap--> <--stack--| > |<-------------------- 64K ----------------->| > |<-------------------- 64K ----------------->| > > As many can overlap as it fits, with some extra margins for the stacks. > The same works of course for combined code+data+heap too. Very clever! You stil then need to know the stack sizes and automatically trap and move which means you need to call a helper on function entry or alloca, but that's not difficult. It doesn't work in protected mode, which ELKS supports but for real mode that would work beautifully. The ELKS format basically turns the traditional arrangement around with a predefined stack size rather than heap size, and stack at bottom, so the heap can then expand upwards without mess. Alan -- To unsubscribe from this list: send the line "unsubscribe linux-8086" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html