ARG_MAX| Shells | whatshell | portability | permissions | UUOC | ancient | - | ../Various | HOME
"$@"| echo/printf | set -e | test | tty defs | tty chars |
)| IFS | using siginfo | nanosleep | line charset | locale
2011-01-01 (see recent changes)
Each universe is simulating a separate environment with commands, headers and libraries. There's (certainly) only one Kernel, though.
Sequent DYNIX 3.2.0 offers two universes:
Siemens SINIX V5.2 (predecessor to ReliantUnix) offers three universes:
ucb": 4.2BSD-like, and for administration only
xopen", aka "
att": SVR3-like, allegedly conforming to XPG3
sie" (like siemens): SystemIII-like , or SINIX-V2.1-like
sieuniverse exists for backwards compatibility.
sieuniverse was interesting for me, because the original implementation only ran on special hardware.
How to enter a universe
$ att command
$ ucb command
You launch a single process in a universe by calling a command named like the according universe.
Each process, and all its children if they don't switch again themselves, run in this universe. You don't switch universes system wide.
If you call the command without any arguments, it behaves as if you spawn a new login shell.
The mechanism to emulate several environments at the same time is as follows:
Important directory hierarchies (like /bin) are available
in several variations, one for each universe.
The original directory is a symbolic link to the actual destinations.
The link is a socalled conditional link and consist of several components, separated by blanks.
Such a link resolves transparently to one of the destinations, depending on which universe you're in.
Conditional links are created with the "
-c" flag of
Example for the link to
ln -c ucb=.bin att=/usr/att/bin /bin
/bin -> ucb=.bin att=/usr/att/bin
/lib -> ucb=.lib att=/usr/att/lib
/usr/bin -> ucb=.bin att=/usr/att/usr/bin
/usr/include -> ucb=.include att=/usr/att/usr/include
/usr/lib -> ucb=.lib att=/usr/att/usr/lib
/usr/pub -> ucb=.pub att=/usr/att/usr/pub
ucb-part is relative to the dirname, that is,
/bin -> ucb=/.bin sie=/usr/sie_root/bin att=/usr/att/bin
ucbuniverse, with the "
-c" flag of
ucbuniverse solely exists for administrational purposes.
I haven't found the tape with the manpages yet, which are
unfortunately not installed on my machine.
Meanwhile I assume that the mechanism on SINIX is sufficiently equivalent to DYNIX.