This is a toy project which provides "real remote execution". That means, operations like accessing the file system (the only one implemented now) can be sent to another host transparently. It uses the
LD_PRELOAD mechanism to achieve this.
GCC and Clang work. Only posix'y OSes is supported.
To run the
cat application which reads a file from remote location, run the following:
# on remote (file access side) ./server # on local (cat execution side) LD_PRELOAD=./libremotec.so LOCAL_PATHS=/dev:/usr/lib REMOTE_SERVER=remote.ip.addr LIBREMOTEC_DEBUG=1 cat /etc/resolv.conf
The result should give some idea about what's going on:
open() on remote file /etc/resolv.conf opened /etc/resolv.conf, local 2048, remote 5 fstat() on remote fd 2048 read() 131072 bytes on remote fd 2048 # Generated by resolvconf nameserver 192.168.0.1 read() 131072 bytes on remote fd 2048