Path: utzoo!utgpu!water!watmath!clyde!att!pacbell!ames!pasteur!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!portal!cup.portal.com!doug-merritt From: doug-merritt@cup.portal.com Newsgroups: comp.sys.amiga Subject: Re: Amiga UNIX Message-ID: <6761@cup.portal.com> Date: 22 Jun 88 14:33:33 GMT References: <211@laic.UUCP> <3663@cbmvax.UUCP> <1872@sugar.UUCP> <134@ssdis Organization: The Portal System (TM) Lines: 32 XPortal-User-Id: 1.1001.4407 Erik Johannes writes: >For a 68k system, one must >have an MMU or a 68020 (68030) which has a built in MMU. Nominally, yes. The other way to do it is via software support. It is quite feasible to construct compilers/assemblers/linkers etc which force all data storage to be in a separate memory area than text, and which uses base-register addressing to get at that data. You can then do the same sort of thing as on an 80286...just reset the register used for base addressing and you've got yourself a new data space. But AmigaDOS facilities use a lot of absolute pointers within the users' "address space", so making fork() work for regular AmigaDOS processes would be very difficult, to say the least. But if you ran Minix instead, then you could get fork to work. The one thing that would still be missing is that a program could still conceivably accidentally set a "segment register" incorrectly and start zapping other "address spaces". This could be minimized by careful compiler code generation, but presumably *could* happen anyway. Whereas on the 286, the MMU will not allow you to poke around in the wrong segments. So on 68K systems, you *can* implement fork(). You just have to do it with the right OS, and you don't get MMU protection. Doug -- Doug Merritt ucbvax!sun.com!cup.portal.com!doug-merritt or ucbvax!eris!doug (doug@eris.berkeley.edu) or ucbvax!unisoft!certes!doug