> >Quoth Geert Uytterhoeven: >> b. Use 2 separate stacks: >> 1. The standard stack for return addresses (jump to >> subroutine), so you can relocate all addresses (pointers >> to code) when moving/copying the code, >> 2. A second stack for storing data (mix of "pointers" >> and other variables), which you don't touch when moving >> (remember, all pointers are actually offsets relative to >> the base register). > >What about other pointers to code (vtables, app-defined variables, etc)? >I don't think you can rely on everything being in the stack. > >Although as long as processes aren't modifying their own code (which >can't always be guaranteed, but isn't common) then there's no need to >copy the code at all. Just point both parent and child at the same code >but copy their data segment (and keep data pointers relative to the base >register).
This is good because I only need to get mono going . Once running everything will be C# and no fork. Worst case I can deal with a big startup overhead. The existing uclinux apps are a huge bonus from the nothing I start with as a green field OS. Regards, Ben _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev