Headless YellowDog

yellowdog-general at lists.terrasoftsolutions.com yellowdog-general at lists.terrasoftsolutions.com
Mon Oct 11 17:36:08 MDT 2004


On Monday 11 October 2004 18:44, 
yellowdog-general at lists.terrasoftsolutions.com wrote:
> > Genericaly something is a server if it provides some sort of
> > service.  In X,
> > the service that the X server provides is an interface to a monitor,
> > keyboard, and mouse.  So your X server running on your
> > computer manages the
> > monitor/kdb/mouse and the various programs your run (X
> > clients) use that
> > service.
> >
> > In most cases there is only one X server running on a system.
> >  It is possible,
> > but not very common, to have a computer with 2 monitors, 2
> > keyboards, and 2
> > mice that two people can use at once.  When you run a X
> > client program, you
> > need to tell it which display to use.  That is specified as
> > system:display.screen, where system is the hostname or IP
> > address, and
> > display is the display number (starting with 0).  I'll ignore
> > screens for
> > now.  Both 'display' and 'screen' can be omitted and you get
> >
> > :0 for example.
> >
> > This refers to the first display on the local system.  BTW
> >
> > :0.0 is the same
> >
> > as :0 and unix:0 is also the same is :0.   If you set your
> > display to :1 that
> > refers to the senond display on that system.
>
> A more precise definition, since I have never seen a system that has two
> physical keyboards and mice, is that the system allows for multiple X
> servers simply by numbering them sequentially. In the case of PC's, there's
> usually the concept of virtual consoles. On Sun's, there's a single
> keyboard and mouse but I can attach several different display adapters to
> the system with a monitor (screen) on each.

I remember on Suns a long time ago that you could get cards that had a video 
and keyboard plug on them to do just what I was describing.  Tehn you coul 
dhave two local people usin gthe box at once.

> In your above example, you said "'display' and 'screen' can be omitted" but
> I think you meant system and screen. You have to have at least display,
> i.e., :1 or :0, the others will be inferred (localhost:0.0).

You are right, that should have been "system and screen"

> > Now bring VNC into the picture.  The VNC server is a X server
> > that doesn't
> > manage any monitor/keyboard/mouse.  It just makes it look
> > like it does to any
> > X client program that connects to it.  In order to be able to
> > see and control
> > anything in that virtual X server you need a VNC viewer
> > program.  The VNC
> > viewer connects to a X server (not the vncserver) and
> > displays a window.  It
> > also makes a connection to the virtual X server (VNC server).
> >  The VNC server
> > tells the VNC viewer what to display in the window it created
> > on the other X
> > server.
>
> Not exactly, because you have to make sure you are talking about the right
> scenario. In all cases, the client always connects to a VNC server
> component. In the case of stand-alone vncserver, it has already forked its
> own X session, so it mediates between the X session and the client. In the
> case of an X session on the console using the VNC module, the VNC module is
> run under control of the X session, not the other way around. This has
> importance because of the way the screen is handled.

I find that a bit confusing.  How about this?

- The VNC viewer does connect to the VNC server (but not that same way a X 
client would connect to it).
- The VNC server is Xvnc (vncserver is just a wrapper to make it easier to 
start).
- The viewer talks directly with the virtual X server in the stand alone case
- The viewer talks directly with the vnc X module (which is part of the 
non-virtual X server) when using that feature, but this looks the same to the 
viewer.
- The viewer (assuming it is an X application) makes another connection to the 
X server it will use for a display.

> > If you startup vncserver on a system already running another
> > X server (most
> > likely on display :0) then vncserver will need to use some
> > other display.
> > Unless told otherwise it'll grab the next available one i.e.  :1.
> >
> > > I understand that I don't need to connect to the local X
> >
> > session on the
> >
> > > server in the basement, but VNC can start it's own X session. Great!
> > >
> > > Next point: I would like to display the VNC session on my
> >
> > YDL box in a
> >
> > > separate console (or virtual terminal?), like MOL can be run in a
> > > separate console. I haven't managed that just yet. I only can have a
> > > window in my existing X session on my YDL box. What magic should be
> > > performed here ?
> >
> > Whenever you display a VNC session, you need to run a VNC
> > viewer.  As it is
> > another X client, it'll need to talk to a X server.  So you
> > cannot directly
> > display the VNC session on another virtual console.  But you
> > can run another
> > X server on that virtual console.
>
> On Linux, the typical VNC client is an X client. That is not the case on
> other platforms. You don't need to run *another* X server to use the
> client, though. You can just run it in the existing X session.

True, but not relevant to the original question asking about displaying the 
VNC viewer in another virtual console.  For that you need another X server 
for the VNC viewer's display.

> > This is a slight variation of the multiple
> > monitor/keyboard/mouse previously
> > mentioned.  Lets say you already have a X server running (:0)
> > and it is on
> > virtual console 7.  You can run another X server on another
> > virtual console.
> > Run "startx -- :1" (that's 2 dashes). This will startup an
> > new X server (:1)
> > on the next available virtual console (8 probably).  Now you
> > can switch
> > between the two with ctrl-alt-f7 and ctrl-alt-f8.
> >
> > Now in your second (:1) X server on vc8 run your vncclient
> > and point it to
> > your vncserver running on some other box.  Make it full
> > screen and now you
> > can switch back and forth between your regualr desktop and
> > the VNC one by
> > using the usual VC switching (ctrl-alt-Fx).
>
> Why do you need to run another X session just to run the viewer? If you
> wanted to do this, it would make more sense to just run it this way:
>
> xinit /usr/bin/vncviewer -- :1
>
> because there's no need for a window manager if you're just using the
> client.

That will work, but it is still another X session (X server).



More information about the yellowdog-general mailing list