| RUMPHIJACK(3) | Library Functions Manual | RUMPHIJACK(3) |
rumphijack —
System call hijack library
used by ld.so(1)
The ld.so(1) runtime
linker can be instructed to load rumphijack between
the main object and other libraries. This enables
rumphijack to capture and redirect system call
requests to a rump kernel instead of the host kernel.
The behaviour of hijacked applications is affected by the following environment variables:
RUMPHIJACKIn case the current working directory is changed to a blanketed directory, the current working directory will still be reported with the rump prefix, if available. Note, though, that some shells cache the directory and may report something else. In case no rump path prefix has been configured, the raw rump directory is reported.
It is recommended to supply blanketed pathnames as specific as possible, i.e. use /dev/bpf instead of /dev unless necessary to do otherwise. Also, note that the blanket prefix does not follow directory borders. In other words, setting the blanket for /dev/bpf means it is set for all pathnames with the given prefix, not just ones in /dev.
For example, “inet:inet6” specifies that
only PF_INET and
PF_INET6 sockets should be hijacked, while
“all:noinet” specifies that all protocol families
except PF_INET should be hijacked.
nfssvc(),
getvfsstat(),
and all file handle calls, respectively. The file handle calls include
fhopen(),
fhstat(),
and
fhstatvfs1().
It is also possible to use “all” and “no” in the same fashion as with the socket hijack specifier.
__sysctl()
backend of the sysctl(3)
facility to the rump kernel. Acceptable values are “yes”
and “no”, meaning to call the rump or the host kernel,
respectively.modctl()
call to the rump kernel. Acceptable values are “yes” and
“no”, meaning to call the rump or the host kernel,
respectively.FD_SETSIZE for
select()
or if it opens a very large number of file descriptors. The default
value is 128.If the environment variable is unset, the default value "path=/rump,socket=all:nolocal" is used. The rationale for this is to have networked X clients work out-of-the-box: X clients use local sockets to communicate with the server, so local sockets must be used as a host service.
An empty string as a value means no calls are hijacked.
RUMPHIJACK_RETRYCONNECTSee rumpclient(3) for more discussion.
Use an alternate TCP/IP stack for firefox with a persistent server connection:
$ setenv RUMP_SERVER unix:///tmp/tcpip $ setenv LD_PRELOAD /usr/lib/librumphijack.so $ setenv RUMPHIJACK_RETRYCONNECT inftime $ firefox
ld.so(1), rump_server(1), rump(3), rumpclient(3), rump_sp(7)
| December 16, 2018 | NetBSD 11.0 |