File: simple_tutorial

package info (click to toggle)
umview 0.8.2-3
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye
  • size: 5,472 kB
  • sloc: ansic: 67,309; sh: 11,160; ruby: 914; makefile: 424; python: 141
file content (71 lines) | stat: -rw-r--r-- 2,111 bytes parent folder | download | duplicates (6)
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