universes in the kernel

Carl S. Gutekunst csg at pyramid.pyramid.com
Wed Sep 6 02:32:02 AEST 1989


In article <1989Sep4.220954.5497 at tubsibr.uucp> petri at tubsibr.UUCP (Stefan Petri) writes:
>As far as I can see out of these manuals, the only difference
>between the universes is when following conditional links in the file system,
>and this view-of-the-universe has worked fine for me so far, but now :

There are two parts to the dualport.

- Conditional symbolic links are evaluated at run time, based on the current
  "universe" of the process. The universe is a number in the process's u-area.

- There are two complete and independent set of system calls -- a complete
  BSD set, and a complete System V set. (Look in /usr/include/syscalls.h.)
  System call numbers are coded into the libraries, and the libraries are of
  course bound to the program by ld.

In other words, the universe in which a program is compiled (and loaded) will
determine which system calls it uses. The runtime 'universe' will determine
which file trees the program "sees." Examples:

	ucb cat /usr/include/stdio.h

		The Berkeley 'cat' lists the Berkeley stdio.h.
	
	ucb /.attbin/cat /usr/include/stdio.h

		The SVR3 'cat' lists the Berkeley stdio.h.
	
	att cat /usr/include/stdio.h

		The SVR3 'cat' lists the att stdio.h

As far as kill(2) is concerned, the two calls are completely different inside
the kernel, though I'm not really up to figuring out why.

<csg>



More information about the Comp.sys.pyramid mailing list