Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!auspex!guy From: guy@auspex.auspex.com (Guy Harris) Newsgroups: comp.unix.misc Subject: Re: Porting AT&T System V Release 4 to multiple cpus Message-ID: <5032@auspex.auspex.com> Date: 4 Jan 91 19:55:44 GMT References: <16843@cbmvax.commodore.com> <1990Dec29.010014.6787@robobar.co.uk> <16951@cbmvax.commodore.com> Organization: Auspex Systems, Santa Clara Lines: 28 >There is still a lot of code that is shared. But there probably should be more code that's shared; what stuff got added to the stream head on the 386 port, and what is the justification for adding it only on the 386? And there are other cases of bogusly unshared code: Did they fix "setregs()" so that the ONLY thing it does is the machine-DEPENDENT portion of post-"exec" initialization - i.e., did they move stuff such as fiddling signal state and close close-on-exec files, which sure as hell ain't machine-dependent (POSIX, the SVID, etc. *require* that stuff) out into its caller? Did they get rid of the notion of starting process 1 by copying a small lump of machine-language code into the data space and jumping to it, and instead do it SunOS-style, by faking an "execve()" call (which means that you can print an error, instead of having the lump of code loop infinitely, if it can't get "/sbin/init", and also means that you can pass arguments, such as the "-s" argument which, in SunOS, means you booted the system single-user; the S5 "init" could be tweaked to do a more BSDish form of booting)? (Yes, BSD currently does it in the same bogus fashion; I expect this will be fixed for 4.4BSD.) At least the new VM subtantially reduced the extent to which machine dependencies permeate essentially machine-independent code....