Virtual Network Computing (VNC)CrossLoop is a shell program which uses fork and exec to invoke a VNC (Virtual Network Computing) program. The Windows version of CrossLoop now uses the UltraVNC plug-in program, a free GPL-licensed, remote control software package derived from the popular VNC software. The binaries of UltraVNC are unmodified and are included in the CrossLoop installation software.
The binaries for UltraVNC can be downloaded here: winvnc_184.108.40.206.bins.zip
Note that only the following binary files are distributed with the CrossLoop download:
Please consider making a donation to UltraVNC: Make a Donation to UltraVNC
Older Windows versions of CrossLoop use the TightVNC plug-in program, a free GPL-licensed, remote control software package derived from the popular VNC software. The binaries of TightVNC are unmodified and are included in the CrossLoop installation software.
If you use and like the FREE CrossLoop, please consider making a donation to help improve TightVNC: Make a Donation to TightVNC
Please note that the Terms of Service for CrossLoop includes two licenses. A separate license for the proprietary CrossLoop shell program and a second license, the GNU GENERAL PUBLIC LICENSE for the distributed binary of VNC. When you install CrossLoop for Windows you must accept both the CrossLoop license and the GPL for TightVNC.
CrossLoop Architecture and VNC
CrossLoop is a proprietary shell program which uses the VIP Tunnel to negotiate a connection between two peer computers. After approval has been obtained from the HOST computer to accept a connection request from the JOIN computer, an encrypted and secure connection is established between the two peer computers using the VIP Tunnel. At that point, the CrossLoop shell program invokes the plug-in program which is specified in a companion XML shell script file. In the case of CrossLoop for Windows as it is currently released (Beta Version 1.0 Build 20061101161100), the CrossLoop shell uses fork and exec to invoke the TightVNC plug-in program.
As the above CrossLoop Block Diagram illustrates there are no function calls made by CrossLoop to the VNC software (the Client/Server Plug-in Program) and they do not share any data structures. The only connection between the VIP Tunnel and the VNC is through TCP/IP.
It is important to note that the CrossLoop shell program has no internal dependencies on VNC. To illustrate this point there are several other applications which use the CrossLoop shell and the VIP Tunnel and do not include VNC. Two of the programs are: Access My Files, a simple solution to remote file access ( www.accessmyfiles.com); and Remote Desktop Search, a free service that makes it possible to remotely access all of the information indexed by your Google Desktop anywhere in the world, (www.remotedesktopsearch.com).
The CrossLoop shell program uses an XML shell script as input to specify how the shell is to fork and exec the client and server plug-in programs after a secure connection has been established. Here is the CrossLoopApp.xml shell script file distributed with the current release of CrossLoop. This file can be found in the default installation directory,
You will note in the above CrossLoop shell script that it specifies the fork and exec on Windows of either the TightVNC winvnc.exe program in the case of a HOST connection (server), or the TightVNC vncviewer.exe program in the case of a JOIN connection (client).
In essence, the CrossLoop shell and VIP Tunnel enable the VNC to perform screen sharing between two computers on separate networks through firewalls. The identical function could also be provided by a VPN connection between the two computers on separate networks using the same GPL-covered VNC program.
Frequently Asked Questions (FAQs)
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.The CrossLoop website includes both the binary and source code of the TightVNC GPL program (see above). The CrossLoop installer requires that the user accept both the CrossLoop license and the TightVNC GPL license. The download also includes a copy of the GPL license.
"2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:"Since CrossLoop does not distribute a modified copy of the TightVNC GPL software, none of Section 2 applies.
1) Install CrossLoop on a Windows computerTo demonstrate:
2) Go to the default CrossLoop installation directory:
3) In that directory you will find the following files:
4) Verify that we have not modified the binary program of TightVNC by comparing each of the files to files downloaded from the TightVNC website.
1) Go to http://www.tightvnc.com/download.htmlThe above steps prove that we have not modified a copy of TightVNC and are thus fully compliant with section 2. of the GNU GPL.
2) Download tightvnc-1.2.9_x86.zip
3) Create a directory under CrossLoop
4) Extract the ZIP file into
5) Open a Command Prompt window and navigate to the directory you created
c:\>cd "C:\Program Files\CrossLoop\Original"
6) Use the Windows FC program in a Command Prompt window to compare the binaries:C:\Program Files\CrossLoop\original>fc vncviewer.exe ..\vncviewer.exe
Comparing files vncviewer.exe and ..\VNCVIEWER.EXE
FC: no differences encountered
C:\Program Files\CrossLoop\original>fc winvnc.exe ..\winvnc.exe
Comparing files winvnc.exe and ..\WINVNC.EXE
FC: no differences encountered
C:\Program Files\CrossLoop\original>fc VNCHooks.dll ..\VNCHooks.dll
Comparing files VNCHooks.dll and ..\VNCHOOKS.DLL
FC: no differences encountered
(see http://www.gnu.org/licenses/gpl-faq.html#TOCGPLInProprietarySystem), states:
- I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?
- You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.
A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.
However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.
The difference between this and "incorporating" the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.
If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs--but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.
If people were to distribute GPL-covered software calling it "part of" a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.
We describe what we are doing in numerous locations on our website to avoid any confusion on the part of our users with respect to the rights they are receiving regarding the GPL-covered software.
- The first paragraph of our homepage on our website (www.CrossLoop.com) states:
"CrossLoop extends the boundaries of VNC's traditional screen sharing by enabling non-technical users to get connected from anywhere on the Internet in seconds without changing any firewall or router settings."
- The "How it Works" page on our website (www.CrossLoop.com/howitworks.jsp) states:
"The Windows version of CrossLoop uses the TightVNC software plug-in for screen sharing. We have included a binary distribution of the TightVNC program in the installation software of the Windows version of CrossLoop to save you the trouble of separately downloading and installing TightVNC. If you have any questions about your rights related to TightVNC (which is licensed under GPL), please see our detailed description of how we use VNC."
- The "FAQs" page on our website (www.CrossLoop.com/faq.jsp) states:
" Is CrossLoop a GPL program?No, please see the full description of the CrossLoop shell program and the VNC program here.
Where can I get the binaries and source code for the TightVNC program used by the Windows version of CrossLoop?The binaries and source code for the GPL-covered TightVNC program can be downloaded from our website here."
- The "Download" page on our website (www.CrossLoop.com/download.htm) states:
"As part of these instructions (to install CrossLoop on your computer) you will be asked to accept the CrossLoop Terms of Service. Â In some cases, the downloaded text of these Terms of Service shows an earlier Version than the definitive version which is currently Version 1.3, last revised 1/11/07 and found here. The Terms of Service includes two separate licenses. The first license is for the proprietary CrossLoop shell program and the second license is a GPL for the TightVNC program. If you have any questions about your rights to the software of these two programs, please see our detailed description of how we use VNC."
- Each page of the CrossLoop website contains a footer with a link to our VNC page which provides a detailed description of how we use VNC.
(see http://www.gnu.org/licenses/gpl-faq.html#TOCNFUseGPLPlugins), states:
- Can I release a non-free program that's designed to load a GPL-covered plug-in?
- It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.
If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.
If the program dynamically links plug-ins, but the communication between them is limited to invoking the `main' function of the plug-in with some options and waiting for it to return, that is a borderline case.
We believe that CrossLoop has not only followed the terms of the GPL, but it also has followed the spirit of GPL in making it possible for more people to enjoy the benefits of the GPL-covered VNC program and its enhanced versions such as TightVNC.