Most executables will work. The exceptions include programs that use
proprietary, ULTRIX-specific features (LAT, CI support, DECnet
support) and various system calls,
ioctl('s),
or ULTRIX kernel
semantics that are difficult to emulate (e.g. ULTRIX packetfilter) or
buggy (e.g. ULTRIX
NIS).
All ULTRIX executables are static, so no shared libraries are required for ULTRIX compatibility. However, ULTRIX is based on a 4.3BSD alpha release. ULTRIX commands and libraries are often much older than their NetBSD or even SunOS 4.x equivalents, and may require incompatible configuration files.
resolv.conf
and
svc.conf
as below:
/etc/resolv.conf
containing only those commands and put it in
/emul/ultrix/etc/resolv.conf
.
Note that the
domain search order used by ULTRIX executables may not be the same as
native binaries; there is no good way around this.
/etc/svc.conf
to select an ordered search of
NIS,
Hesiod,
or local flat-file mappings. You should create an
/emul/ultrix/etc/svc.conf
specifying either local files or bind (DNS)
lookups for all ULTRIX name services.
/etc/svc.conf
to disable
NIS
(YP).
The ndbm hashed-password file used by ULTRIX are incompatible with the db hashed-password file used by NetBSD. There is no good solution for this. NIS would be a good one, if ULTRIX NIS worked.
The API used by Xservers to talk to the kernel is currently compatible with ULTRIX 4.1. An implementation of the ULTRIX 4.2 Xws interface (used by X11R6) is in progress.
A complete list of things which fail to work in ULTRIX compatibility mode should be added here.