Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site ucbvax.BERKELEY.EDU Path: utzoo!watmath!clyde!cbosgd!ihnp4!ucbvax!info-atari From: dan@BBN-PROPHET.ARPA Newsgroups: net.micro.atari Subject: Re: Unix without an MMU Message-ID: <8601071721.AA03900@ucbvax.berkeley.edu> Date: Tue, 7-Jan-86 12:05:41 EST Article-I.D.: ucbvax.8601071721.AA03900 Posted: Tue Jan 7 12:05:41 1986 Date-Received: Wed, 8-Jan-86 09:07:41 EST Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 22 Mark Crispin's message did indeed list all the practical or semi-practical ways to implement Unix w/o an MMU. The people who responded to his message don't seem to understand what the Unix fork() system call does; the Amiga TOS method will not work in Unix. The fork() system call, remember, generates a new process which is an EXACT COPY of the old process. Any pointers in the old process's data are copied to the new process. But the semantics of fork() require that those copied pointers now magically point to the COPY of the data in the NEW PROCESS. Mark's message listed all the possible ways this could be accomplished w/o MMU, save one, which is to somehow figure out which random words of data in the data space are pointers and readjust them at fork time. This is quite impractical, as anyone who knows something about C will realize. As an aside, the Sage IV 68000 system had no MMU, and did run Unix. Or rather, it ran IDRIS, the Unix look-alike (which does have a Unix-style fork()). I don't know which of the methods Mark listed they used, but I suspect the first one: running only one process at a time in memory, and swapping it out before starting another one. At any rate, let the Sage IV be the existence proof that you CAN run Unix w/o an MMU, and let Mark's message be the explanation of how, and let's get on with topics more closely related to the 520 ST, which I don't believe will ever run Unix (though something else from Atari might). Dan Franklin (dan@bbn-prophet.arpa)