Sebastian B?hrwrote: > Hello! > I read that during the Amiga (oh no, not again ;-) ) press conference > QNX was demonstrated. They had two computers running QNX. Then the guy > moved a application running on comp1 to comp2 just by dragging the > window? Can somebody explain these technology? I don't know how to > understand this. This is a feature of Photon. There are two different ways to do this. One is to have the two different computers each have a video driver into the same Photon space. That Photon space would reside on one cpu, but the application that is being demonstrated would not neccessarily need to be on that node. Moving the window around in Photon space would cause it to appear and dissappear in the video screen of the different computers. Another way to cause this to occur is a Photon Jump gate. In this case you have separate photon spaces on the two computers, and a window in one that jumps to the other. To understand this little piece of magic, you have to understand a little about how QNX and Photon operate. A Photon application basically receives and emits events. A typical received event would be a mouse click. A typical emitted event would be a draw event. What a Photon program is started it must first establish communication with the Photon kernel. It then receives and emits these events by using QNX's message passing to the kernel. The jump gate causes the Photon application to switch to another Photon kernel running on another cpu. This all works quite easily as QNX's message passing works transparently over a network. While the former looks more impressive (it's possible to move that window between a Win95, a Unix, and a QNX system), the latter seems technically more impressive to me. In this demonstration what becomes clear is that while the "server" application can't move, the "client" photon can. This could mean that as one moves geographically, one's applications could follow one around. -- Mitchell Schoenbrun --------- maschoen@pobox.com ---------------------------------------------------------------------------------------------- Mitchell Schoenbrun wrote: : Sebastian B?hr wrote: : > Hello! : > I read that during the Amiga (oh no, not again ;-) ) press conference : > QNX was demonstrated. They had two computers running QNX. Then the guy : > moved a application running on comp1 to comp2 just by dragging the : > window? Can somebody explain these technology? I don't know how to : > understand this. : This is a feature of Photon. There are two different ways to do this. : One is to have the two different computers each have a video driver : into the same Photon space. That Photon space would reside on one : cpu, but the application that is being demonstrated would not : neccessarily need to be on that node. Moving the window around in : Photon space would cause it to appear and dissappear in the video : screen of the different computers. : Another way to cause this to occur is a Photon Jump gate. : In this case you have separate photon spaces on the two computers, : and a window in one that jumps to the other. To understand : this little piece of magic, you have to understand a little about : how QNX and Photon operate. A Photon application basically : receives and emits events. A typical received event would be a : mouse click. A typical emitted event would be a draw event. : What a Photon program is started it must first establish communication : with the Photon kernel. It then receives and emits these events : by using QNX's message passing to the kernel. The jump gate causes : the Photon application to switch to another Photon kernel running : on another cpu. This all works quite easily as QNX's message : passing works transparently over a network. To add here: a graphics display driver also receives events, and in this case renders them onto the screen. An implication is that an embedded system does not need hardware to display graphics on, just a program which catches render events and passes them on to the real device somehwere on the net. Event regions can be transparent or opaque, so by putting a region between an app and the apps graphics region one can ditto or grab the app depending on whether this new region is transparent or opaque. This also simplifies building things like a screen saver/lock. : While the former looks more impressive (it's possible to move : that window between a Win95, a Unix, and a QNX system), : the latter seems technically more impressive to me. : In this demonstration what becomes clear is that while : the "server" application can't move, the "client" photon : can. This could mean that as one moves geographically, : one's applications could follow one around. : -- : Mitchell Schoenbrun --------- maschoen@pobox.com -- David L. Hawley D.L. Hawley and Associates 1(503)274-2242 Software Engineer dlhawley@teleport.com ======================================================================== From: Barry Millman Newsgroups: comp.os.qnx Subject: Re: Explaining: moving a window from one comp to another Date: Thu, 19 Nov 1998 11:38:37 -0500 To: "Sebastian Bähr" I explained this to a Windows-based neighbor of mine, and he responded "why would they do this." The answer is that they did not! MS Windows has, what we may call one coordinate space...the size of your display area. The Photon coordinate space (in PIXELS) is from (-32k, -32k) to (+32k, +32k). Sitting right in the middle is (0,0). Typically your first viewport sits at (0,0) to say (799,599) for 800 x 600 resolution. If you were a MS Win user, that's all you would have. You can put a million (exaggerated) windows in this area in Photon, as you could in MS Win. BUT Photon's coordinate space is much bigger. We have viewports (consoles or whatever you want to call them). If you switch to console (viewport) 2 by pressing Ctrl-Alt-2 (or other ways...) then your screen is looking at (800,0) to (1599,600) or whatever. Maybe I got the numbers messed up, but think of 9 little squares arranged in a 3x3 area. Each square size is the resolution of your machine. So as you switch from one console to another you are switching the part of the coordinate space you are viewing. Now, it's easy for you to imagine that if I have a window in Viewport 1, if I drag it to the right, then it will extend into viewport 2's space. I can drag a window from one viewport to another still on the same machine. But remember this....I am just dragging the window around a big coordinate space. OK? OK. Now QNX, unlike the MS stuff is fully network distributed. Photon, beautifully architected to match the beautifully architected QNX, is also network distributed. So let's start up another node. I don't want to run Photon on that node (someone else in this thread mentined about the jump gate, but that lets another photon runner view someone elses space). You are interested in the dragging of the windos. Node two is running, but now I start a graphics card driver. (These come with Photon...). There are a zillion parameters to the graphics drivers, but two are of interest here: 1. What PHOTON SERVER (ie, on what node) do you want to get events (info) from. Well I want to see what's on Node 1, so I will say 1. 2. Where in the coordinate space do you want this to map. Since my display is 800 by 600, I will map at (800,0) for my upper left display corner. When (if) this runs, your node 2 display is now looking at node 1, but in the coordinate region starting at (800,0). It's looking at Node 1's second viewport. Previously we talked about sliding a window around the coordinate space. Well, if I slide a window to where node 2 graphic driver is looking, I now see the window on Node 2. That is, in general how the "feature' is implemented. What about the rest of the coordinate space (above and to the left of (0,0)). See Star Trek Voyager...we both call it the Delta uadrant, except that in Photon it is 3 quadrants. Barry Sebastian Bähr wrote: > > Hello! > > I read that during the Amiga (oh no, not again ;-) ) press conference > QNX was demonstrated. They had two computers running QNX. Then the guy > moved a application running on comp1 to comp2 just by dragging the > window? Can somebody explain these technology? I don't know how to > understand this. > Thank you. > > SB -- -----------------=================----------------- You CAN create High-Performance QNX-Based Systems! Please visit us at http://www.igetitnow.com ---------------------------------------------------