The Photon microGUI is really as old as the hills, and wasn't always as pretty as we see it today.
First off, what is Photon? Well, Photon is the modular GUI developed for the Neutrino kernel and the QNX operating system. Photon was desigined with the same principles as the entire OS: to be small and be portable. No one likes a bulky user interface that won't fit on anything. If you wish to compare something to Photon for the sake of comparing it, I've found a good comparason is with X11 and the Linux Kernel; that is, compare Photon to X11 (The user-interface), and the Neutrino kernel to the Linux kernel (the heart of the OS).
The QNX OS has gone through three distinct phases: QNX2, QNX4, and QNX6 (Also known as The QNX Realtime Platform). It has appeared in many different forms, including PhDitto, Phinx and Phindows.
QNX2 didn't have any real version of Photon, it has (or had) what was known by anyone who was in the know at the time as "QNX Windows," which had a similiar look and feel to Sun's OpenLook and wasn't really a Photon ancestor so much as something thrown together.
QNX4 was around in 1990, and it was the first version of the OS to actually contain Photon (Photon 1.x). It was gray, and not very pretty to look at—but it served its purpose well. It was fast and could run on most 386's and up. QNX4 is the OS that we see on the demo disk mentioned above by talon kale.
QNX6 is the current version of the OS, and it currently contains the latest generation of Photon (Photon 2.x), and it is amazingly sweet—primarily due to the work of the great William (Bill) Bull of BeOS fame. The public got its first real glance at it when both QSSL (Makers of QNX and Photon) and Amiga anounced they were going to partner to relase a new end-user desktop containing QSSL's Neutrino (the kernel at the time and presently) and Photon technologies. You can still see many a theme and skin based on the early and never-released prototypes.
Photon 2.x, much like Photon 1.x, is modular and portable. The basics:
- io-graphics: A resource manager for /dev/photon, your video card, and its driver. The three intercommunicate to draw what you see on your monotor. If your driver supports hardware acceleration and something wishes to utilize it (e.g. Quake 3), io-graphics will take advantage of this however possible.
- pwm or other window managers: The photon window manager, draws the windows and their styles as well as the desktop.
- Shelf or other basic user-interface: Much like explorer is the user-interface for windows, shelf is the user-interface for pwm and Photon. Basically put, you can put things on "Shelves" around your desktop—like drawers, launch buttons, clocks, etc.
- devi-hirun and input resource managers: These, along with Photon, handle the inputs. Usually resource managers (like devu-mouse, devu-kbd, etc) will be started before devi-hirun so that it can interact with them.
- Basic Applications, widgets, and Plug-ins, etc.: Includes text editor ("ped"), Photon file manage ("pfm"), Photon dialer ("phdialer"), Voyager Web Browser ("voyager"), etc.
When QNX developers realized that there might be a need to update a system remotely in a graphical (and fast) way, Ditto, PhDitto, Relay, and PhRelay were born. These applications had basically your average client/daemon relationship, which allowed for real control of the system. With PhDitto, a user could connect to any system (provided they had a connection to it) and use it as if it were on their own monitor—and without massive lag. This is because PhRelay and Relay don't send huge pictures of the desktop to be played like an interactive movie: they communicate with raw Photon calls and only send raw bitmap data when absolutely necessary. PhDitto and PhRelay (as well as Ditto and Relay) only exist because of QNX's modular archetecture, as all they have to do is replace one part (in this case the way the system communicates with /dev/photon) with another form of that part.
Phinx and Phindows work much the same way, except that they allow Photon to be accessed from any system running X11 (e.g. Phinx, or Photon in X) or any system running Windows (e.g. Phindows, Photon in Windows). Again, they just replace or swap some components for alternates (for example, the kernel, neutrino, and the display interface, photon, are not in any real way connected—much like X11 and the Linux kernel, or, to a lesser extent, Windows and DOS).
Another cool thing about Photon is XPhoton: This is basically a compatability layer that converts X11 calls into Photon native calls, meaning X11 apps can run seamlessly in a photon based envirnoment.