On Wed, 2006-03-22 at 14:55, Kevin Toppenberg wrote:
> Excellent link.  Thanks!  I was looking for something like this a year
> ago, and could only find Cygwin, which was too unweildy for me.
> 
> Help me understand this X stuff.  Is this conceptually different from
> VNC/VNC server?

Yes - its entirely different and VNC on Unix just another X instance
without all the capabilities of X.

In its simplest basic design, you have an X server.  An X server runs on
yourhostA and listens for a client to run.  It then displays the
programs your asking it to run on a determined display and screen. A
client is any program have has the ability to display in X.  The X
server understands calls and events. In response to these requests is
makes graphic displays and responds device events (such as a mouse and a
cursor) connected to a terminal.  The X server understands network
requests and talks TCP/IP and Unix Sockets and knows cryptography.

X can be started in many ways.  But in a simplest way assume that you
are at a console screen with nothing running but the Bourne Again
Shell.  On your counsel you want to start an X server and run an XTERM
client on it.  The XTERM client is on a mount partition under
/usr/X11R6/bin/xterm

X comes with a program called xinit to help you do this.  You can run
the following command ($ is the prompt)

$ xint /usr/X11R6/bin/xterm

Now, on a normal X86 architecture gnu/Linux system (if preinstalled
settings are normal) will give you a regular grey sreen with a single
XTERM in the upper left hand corner of the screen.  There is no window
manager so you can't move, minimize, change the size or anything else to
the xterminal.  You can, however, now run a window manager on top of the
xterm terminal.  In this environment, a child parent relationship is
created between the Xterminal and the window manager.  If you kill the
xterm, the entire window manager dies and then X itself will stop.  My
favorite window manager is wmaker so I can run this command in my xterm:

$ /usr/X11R6/bin/wmaker

now the entire working environment pops up.  If you can't find a window
manager try twm

$ /usr/X11R6/bin/twn

Kill the xterm and everything stops ... all good.

Now your X server can run more than a single display.  You can run two
displays.  On GNU/Linux run the past command again

$ xint /usr/X11R6/bin/xterm

All good and you have X running on display 0.  Type CTL ALT F2.
You are now looking at another counsel.  Log on with your username and
password.

Now lets start a Second Instance of X in display 1

$ xinit /usr/X11R/bin/xterm -display :1 -- :1

This is the more generalized command as the previous one.  In ALSO
starts X, a new instance of it, and it establishes display 1.  The X
server now assigned to display 1 is now running the program xterm again,
this time it is being told to display itself on the X server running on 
display 1..

Now - do a CTL ALT F7

That is your X Server Display 0

Do a CTL ALT F8

That is your X Server Display 1

Do and CTL ALT F3.  This is a new counsel.  Log in again

Now try:

$ xinit /usr/X11R/bin/xterm -display :0 -- :2


What does this do?

It starts X up and you are now looking at display 2 on CLT ALT F9 - BUT
YOU SEE NO XTERM?  Where did your XTERM go?

Your X Server passed it off the the X Server running on display 0.

Do a CTL ALT F7

And you should see it there.

Now, X can open client programs from a remote host as well.  It has its
own networking protocols BUT, most sane GNU/Linux systems limit access
for remote system execution calls, for all the obvious reasons.  If you
have a VPN, you can use blow open a system behind your gateway and use
the native X protocol.  More normally you need to use something like SSH
(or maybe I don't know how to do it better :) ).


Lets say you have two systems.  Host www2 and stat29.  And lets say that
you set up RSA private and public key cryptography between the two boxes
so you don't need a password to authenticate with a password.  You can
do this quickly with a variation of the following comments

$ ssh-keygen -b 1024 -t rsa  <==== DO NOT GIVE A PASSWORD FOR THE
PRIVATE KEY

$scp ~/.ssh/id_rsa.pub  [EMAIL PROTECTED]:~/.ssh/authorized_keys

now you should be able to ssh into the remote host without password
authenticaiton

ssh -l you remote_host

exit the remote host and now we are ready to run remote programs to a
new X Server

$ xinit ssh -l ruben -X www2 /usr/X11R6/bin/xterm -- 2

substituting your user name and host names, and you should see the
xterminal from a remote host running on your local X server controlling
display 2.

the -X in ssh forwards to X ports through your encrypted tunnel.  Let
ssh take care of the display information for your client program since
your running through the port.

Kill it and then try it with your favorite window manager

$ xinit ssh -l ruben -X www2 /usr/X11R6/bin/wmaker -- 2

In theory, X can run any program from any were and display it anywhere. 
X makes no assumptions that your computer has only 1 keyboard, one
screen and one mouse.  X is designed to be as usable on big iron as it
is on a PC. 

Ruben

    


You can tell your X server to run X term on a different display, display
0 for example.





>   Is the app running on the local computer instead of
> the server?
> 

either or both.  Conceptually, X is a networked application server
> Thanks again
> 
> Kevin
> 
> 
> On 3/21/06, Theodore Ruegsegger <[EMAIL PROTECTED]> wrote:
> > Marc Aylesworth wrote:
> >
> > > Also Cygwin has a X server that works on windows so there
> > > is X on Windows.
> >
> > A little-known but excellent X server for Windows is
> > XDeep/32. It's "freeware" (proprietary, but available as a
> > binary at no cost). Trivial to install and use:
> >
> > X-Deep/32
> > http://www.pexus.com/
> >
> > When I'm forced to use a Windows box (for example, by our
> > Citrix VPN when I connect to work from home), I run X apps
> > on my GNU servers and use XDeep/32 to display them on the
> > (Windows) Citrix server. I tunnel X through ssh thus:
> >
> > * Start XDeep; use the localhost (127.0.0.1) network
> >   interface--it's the most conservative. Ssh will handle
> >   getting the X traffic there.
> >
> > * For the ssh connection, use PuTTY (be sure to enable X
> >   tunneling). Start any X application. It should "just
> >   work", displaying neatly on the Windows box.
> >
> > * To have managed windows in XDeep, go to Options/Window
> >   Modes: Multiple Window Modes and select Multiple MS Window
> >   Mode.
> >
> > As with Exceed or any other X server, you won't see anything
> > on the desktop until you actually open an X client
> > application.
> >
> > Cygwin/X is, of course, Free (as in FLOSS). From the website,
> > it sounds a bit bigger than just an X server:
> >
> > Cygwin/X
> > http://x.cygwin.com/
> >
> > A variant of Cygwin/X that's probably simpler to install is
> >
> > XWinLogon
> > http://www.calcmaster.net/visual-c++/xwinlogon/
> >
> > Ted
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> > that extends applications into web and mobile media. Attend the live webcast
> > and join the prime developer group breaking into this new coding territory!
> > http://sel.as-us.falkag.net/sel?cmdlnk&kid0944&bid$1720&dat1642
> > _______________________________________________
> > Hardhats-members mailing list
> > Hardhats-members@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/hardhats-members
> >
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd_______________________________________________
> Hardhats-members mailing list
> Hardhats-members@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hardhats-members



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to