MESSAGE
DATE | 2006-03-22 |
FROM | Ruben Safir
|
SUBJECT | Subject: [NYLXS - HANGOUT] Re: [Hardhats-members] Mac,m Linux, CrossOver and stuff (was: Ope
|
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 you-at-remote_host:~/.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 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-at-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-at-lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/hardhats-members
|
|