~marionnet-drivers/marionnet/trunk

Viewing all changes in revision 525.

  • Committer: Jean-Vincent Loddo
  • Date: 2020-04-15 15:50:14 UTC
  • Revision ID: loddo@lipn.univ-paris13.fr-20200415155014-pxjn04vt7u03y2wt
Second version of marionnet with a support for X11-forwarding not based on the ghost interface eth42. This version works well but is not completely finished on the marionnet's code side (however, what is missing are details). On the other hand, it lacks to build new virtual machines exploiting this new X11-forwarding system based on pseudo-terminal. The little script "uml/guest/make-tarball-for-guest-system.sh" builds easily a tarball, with all the stuff (/etc/init.d/marionnet-{relay,dummy-xserver}, /usr/bin/marionnet-dummy-xservice), ready to be extracted in the root directory of the guest filesystem.
Here a short summary of the mechanism:

                   HOST SIDE                 |          GUEST SIDE
                                             |
[] <======-marionnet-fork-or-thread-======>[]|[]<=========-socat-=========>[]
unix/inet                     pseudo-terminal|serial port    /tmp/.X11-uix/X0
X11 server socket            Ex:"/dev/pts/29"|Ex:"/dev/ttyS4"     unix socket
Ex:(inet 127.0.0.1:6010)                     |

The "socat" service is launched by marionnet-dummy-xservice, once the connexion established by marionnet-dummy-xserver (itself based on socat). 
To tell the story in more details, marionnet-dummy-xserver accepts connections from the Unix socket "/tmp/.X11-unix/Xd" (corresponding to DISPLAY=:d.0) and, for an accepted connexion, starts the script marionnet-dummy-xservice that do the job. Basically, this job is nothing more than a "socat" service (/usr/bin/socat, see "man socat") connecting this socket to an available (simulated) serial port in the range /dev/ttySx. The UML kernel will be kind enough to provide an associated pseudo-terminal (/dev/pts/x) on host side, and marionnet.native, running on host side, will provide the rest of connection from the good pseudo-terminal to the real X11 server. The marionnet-dummy-xserver is itself implemented with /usr/bin/socat (instead of another "native-program" of this repository) in order to facilitate the installation of all the necessary stuff in the guest GNU/Linux systems.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: