Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!sri-spam!mordor!lll-lcc!ames!ucbcad!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU.UUCP Newsgroups: mod.computers.68k Subject: Re: forking around Message-ID: <8703112147.AA23679@cory.Berkeley.EDU> Date: Wed, 11-Mar-87 16:47:35 EST Article-I.D.: cory.8703112147.AA23679 Posted: Wed Mar 11 16:47:35 1987 Date-Received: Fri, 13-Mar-87 00:10:34 EST Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 16 Approved: info-68k@ucbvax.berkeley.edu You cannot fork() in the UNIX sense of the word without an MMU period. There is no way for the system to know which variables contain pointers, or even which address registers currenty contain pointers, and thus without an MMU to map a COPY of the data and stack segments (assuming the code segment is not self modifying) to *exactly* the same address on the forked process, you simply cannot do it. Now, there is one possible solution, but it involves making ALL pointers relative to some segment, and also means a program must always make references in one instruction (e.g. you cannot take the effective address of something and then indirect through it). Something you could do, though is a combination fork+exec call. -Matt