Porting AT&T System V Release 4 to multiple cpus

Guy Harris guy at auspex.auspex.com
Sat Jan 5 06:55:44 AEST 1991


>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....



More information about the Comp.unix.misc mailing list