Book Excerpt: Using Windows Applications with JDS
You have now become conversant with the core programs of the Java Desktop System. Although you can see the power of the many Linux applications available on JDS, you may still have a need for software used on Windows computers. JDS can run Windows programs by using:
Remote Desktop Protocol (RDP) clients, which connect to a Windows Terminal Server
Native Linux Windows emulators
Virtual servers, which run on the GNOME desktop
We examine each of these, with the greatest focus on the use of native Linux Windows emulators.
In the past, people who had conflicts between software and operating systems would partition their hard drives and dual boot. If they needed to use Visio for drawing flow charts, they would boot into Windows, but if they ran a suite of Enterprise Applications, they would boot back into Linux. People consider dual booting tedious and unproductive.
Several solutions assist people to use Windows and Linux software together; most of these are found on the Linux side. In this chapter, we introduce you to the major solutions and offer installation details for a promising and popular solution: CodeWeavers' CrossOver Office.
We define emulation as a process of imitation (simulation) of one computer system by another. The imitating program, or device (emulator), accepts the same data, executes the same programs, and achieves the same results as the system it imitates.
JDS comes with a built-in client that can connect to a Microsoft server to run Windows applications. Known as the RDP, the protocol was developed to provide remote display, keyboard, and mouse connections and print streams over a network for Windows-based applications running on a Windows server. The print streams, keyboard input, and mouse clicks transmit over the network between the server and the terminal emulation software. Each user logs on and sees only his or her individual session, which the server manages transparently, independent of any other client session.
The JDS client runs with the X Window System and the GNOME desktop. Microsoft Terminal Services delivers the Windows desktop and the Windows-based applications to a wide variety of desktops, including those that normally do not run Windows. Through emulation, this allows the same set of applications to run on diverse types of desktop hardware.
Figure 1 shows the native JDS client, which connects to a Windows Terminal Server (WTS). This allows you to run your Linux desktop and Windows programs without having to dual boot. Figure 2 depicts the architecture that allows JDS to run WTS applications.
WTS is used in large organizations, as its costs run very high. Aside from the cost of the hardware, Windows Server licenses, and Client Access Licenses (CALS), each user requires a WTS license, and each application requires licenses for people wanting to run the application. The value proposition of RDA sits with the user who uses a thin client solution.
Other solutions we discuss in this chapter provide access to Windows applications for far less money for individual users and provide and perform just as well.
WINE is the most used open source solution to run Windows software with JDS. WINE is an open source implementation of the Windows Application Program Interface (API). Windows applications run on WINE (the interface), which in turn runs on Linux. This produces an environment in which JDS and other Linux systems can run Windows applications side by side with native Linux applications.
For example, WINE allows you to share your desktop space between MS Word and Evolution, overlapping their windows, launching them, and minimizing them utilizing the desktop and window management features you've been using. The cutting and pasting tools, for instance, move text between the two applications in the same manner as they do between two JDS applications.
Since WINE is written in Linux code, it runs natively in JDS; therefore it consumes little memory, and it doesn't require a major investment. Windows' software performance is not diminished. In fact, some people report that a Windows application, running over WINE, offers a more responsive experience than the same application running on the Windows operating system, because Linux is such an efficient multitasking operating system.
WINE does not come bundled with JDS. If you want to use it, you have to add it. You can install it from its source code and run it from the command line (open a Terminal window, as shown in Chapter 5) or through one of the available commercial implementations.
Not all applications that run on Windows run on WINE. Many applications need special support, and WINE is being upgraded over time to support more and more of them. Currently, the most popular applications that can run on JDS, while utilizing WINE, are MS Office applications, Lotus Notes, Photoshop, Quicken, and Visio.
WINE does not require Microsoft Windows to operate, as it is an alternative implementation consisting of 100 percent Microsoft-free code that operates through the Linux kernel. WINE provides both a development toolkit (Winelib) for porting Windows source code to JDS and a program loader, allowing many unmodified Windows programs to run on JDS. However, running proprietary Windows applications does require a license from the software vendor--it's illegal to take an unlicensed copy of the software and install it on your system, whether you're using WINE or anything else.
Support for running many of the most popular Win 95/98, NT/2000/XP, Windows 3.1 and DOS programs
X11-based graphics display, including remote display to other systems running X
DirectX support for games
Support for sound and alternative input devices
Printing through a PostScript interface driver to standard Unix/Linux PostScript print services
Support for serial modem devices
Support for scanners, CD writers, and more
Now, let's look at the commercial implementations of WINE and other solutions that, like WINE, do not require dual booting.
- Brent Laster's Professional Git (Wrox)
- Smoothwall Express
- Returning Values from Bash Functions
- Bash Shell Script: Building a Better March Madness Bracket
- Learning to Program the Arduino
- Own Your DNS Data
- Machine Learning Everywhere
- Simple Server Hardening
- Tech Tip: Really Simple HTTP Server with Python
- SSH Tunneling - Poor Techie's VPN