Path: utzoo!mnetor!uunet!portal!cup.portal.com!doug-merritt From: doug-merritt@cup.portal.com Newsgroups: comp.sys.amiga Subject: Re: Unix on the Amiga Message-ID: <5122@cup.portal.com> Date: 5 May 88 17:39:00 GMT References: <517@viscous> <51577@sun.uucp> <1923@sugar.UUCP> Organization: The Portal System (TM) Lines: 23 XPortal-User-Id: 1.1001.4407 Peter da Silva remarks that he doesn't think that the Unix fork() call to create a duplicate child process will ever be implemented on the Amiga. The reason to doubt this is that the *right* way to implement it depends on having sufficient memory management to give each process its own address space, so that you can copy the parent to the child, and have all pointers behave. However, there is a way to do it. There've been zillions of discussions about this over in the minix group, and it's actually been implemented in the Atari ST version of Minix. You just swap the child process in every time it gets cpu time (i.e. copy it back to the same place in memory it used to be in). Inefficient, and wastes memory, but it works. There are certainly problems with doing this with general processes under AmigaDOS (I'd imagine that AmigaDOS could scribble on the wrong copy of a process). But it works with the Amiga *hardware*. It conceivably could even work under AmigaDOS, if you thought it out carefully enough, possibly restricting the way in which the forked() process used AmigaDOS services. Doug ucbvax!sun!cup.portal!doug_merritt