1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
remember to set your LD_LIBRARY_PATH to include the dynamic module dirs.
if you have kept the standard configuration it means:
$ export LD_LIBRARY_PATH /usr/local/lib
start an xterm under um-viewos
$ umview xterm
The new xterm window is controlled by um-viewos.
$ um_add_module umfuse.so
$ um_ls_module
um_service 1 code 01 name "umfuse fuse "
the module umfuse has been loaded.
$ mkdir /tmp/mymnt
$ mount -t umfuseext2 ~/myimage.ext2 /tmp/mymnt
use the contents of your image myimage.ext2 inside /tmp/mymnt (as a real mount does).
Note that different users can mount different images on the same directory and
the mount is not visible outside the partial virtual machine.
$ mkdir /tmp/mycd
$ mount -t umfuseiso9660 ~/myimage.iso /tmp/mycd
enjoy the content of the iso image in /tmp/mycd.
To unmount the images:
$ umount /tmp/mymnt
$ umount /tmp/mycd
UMVIEWOS can also virtualize the networking.
$ um_add_service lwipv6.so
$ um_ls_service
um_service 1 code 01 name "umfuse fuse "
um_service 2 code 02 name "light weight ipv6 stack"
now there are two services loaded, the fuse gateway and a networking stack.
$ ip addr
ip addr
1: vd0: <BROADCAST> mtu 1500
link/ether 01:02:7d:3c:a0:06 brd ff:ff:ff:ff:ff:ff
inet6 fe80::102:7dff:fe3c:a006/64 scope link
2: lo0: <LOOPBACK,UP> mtu 0
link/loopback
inet6 ::1/128 scope host
inet 127.0.0.1/8 scope host
Several other modules can be created.
UMVIEWOS is able to redefine the semantics of virtually any system call.
$ um_mov_service -p 2 1
moves the second service to the first position (all modules captures the system calls
depending on specific conditions. e.g. the path for open, the file system type for mount,
the file descriptor for read/write). The services are linearly scanned, the first
service module that match the criteria is used. If none of the modules matches, the
system reverts to the standard system call provided by the hosting computer kernel.
$ um_ls_service
um_service 1 code 02 name "light weight ipv6 stack"
um_service 2 code 01 name "umfuse fuse "
$ um_del_service -p 2
unload the fuse module
|