Book Excerpt: Using Windows Applications with JDS

by Tom Adelstein

Editors' Note: The following is an excerpt from Exploring the JDS Linux Desktop, a new book co-authored by Tom Adelstein and Sam Hiser and published by O'Reilly and Associates.

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.

Remote Desktop Protocol

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.

Figure 1. Built-In Remote Desktop Client for Windows

Figure 2. Interaction Between JDS and Windows Terminal Server Using RDP

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

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.

WINE provides:

  • 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

  • TCP/IP networking

  • 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.

VMWare

EMC Corporation owns and distributes this software package, which emulates a virtual machine on Linux. Information can be found at www.vmware.com.

VMWare runs an Intel x86 compatible operating system in parallel to your currently running operating system. You could use JDS and simultaneously run Windows XP, Windows 2000, or Windows NT in a virtual machine on the same screen. In fact, you can run many different operating systems at once, all on top of the native one. This can be useful for intensive testing of software on different operating systems.

VMWare requires a commercial license, which costs approximately $200. You also need a licensed copy of the version of Windows you want to run. You may also suffer a performance hit, because VMWare creates a virtual computer on your operating system.

Win4Lin

NeTraverse, of Austin, TX, owns and markets the product called Win4Lin. NeTraverse products come from a technology developed primarily by the original SCO Group called MergeTM. NeTraverse allows you to run a version of Windows 95/98/ME in Linux. Compared to VMWare, this has a performance advantage. The cost of Win4Lin runs to approximately $100, and you also need a license for the version of Windows you want to run. More information can be found at netraverse.com.

WINEX

TransGaming provides a branch of WINE that enables gaming solutions. The company's objectives are to work with the most successful game developers toward multiplatform releases of the most popular games, and to enrich the gaming experience for end-users by providing games on those platforms on which they wish to play. Those platforms include Linux and JDS. WINEX supports such games as Marble Blast Gold, the SIMS, and Kohan. Although JDS users want to have games available, the topic requires a broader coverage than we can provide here. More information can be found at www.transgaming.com.

CodeWeavers Crossover Office

CrossOver Office uses WINE for its implementation of the Windows APIs (application program interfaces). APIs let a platform offer hooks that applications (such as Microsoft Office) understand and can run on.

The advantages of CodeWeavers CrossOver Office include:

  • Low cost ($39.95 for home users)

  • Native Linux code

  • Added functionality in Linux web browsers

  • Ease of installation for Windows applications

  • The ability to launch applications from the main JDS menu

  • Integration: applications open in JDS Windows and appear native to Linux

  • Ease of use

The product can be downloaded from the Internet or purchased on a CD-ROM. In Figure 3, you can see how simple installation of CrossOver Office is. To install it, we opened a Terminal window, and then typed:

ls

to show the name of the .rpm package that contains CrossOver Office (in our case, it's cxoffice-2.1.0-1.i386.rpm):

su

Password: (root password typed here)
rpm -i cx

followed by pressing Tab, so we are reminded of the full name again.

Figure 3. Installation Sequence of CrossOver Office

We finished by typing the full name and pressed the Return key to start installation.

Once CrossOver Office is installed, Windows applications integrate directly with the desktop on JDS. In Figure 4, you can see the CrossOver menu, which we selected from the Launch menu with Applications > CrossOver. You may now install further Windows applications by choosing Applications > CrossOver > Office Setup.

Figure 4. CrossOver Office Menu

Also notice that your Windows applications launch from the main menu. For example, in Figure 4, the Windows Applications menu item is shown at the bottom of the center menu.

CrossOver Office provides Windows plug-ins for Linux browsers. The plug-ins work on JDS and integrate with Mozilla. You can also add Microsoft Office viewers to compare (for example) the looks of a StarOffice document with a Microsoft document before you send it out.

The CrossOver plug-ins also integrate with the desktop to let you open Word, Excel, or PowerPoint, using any viewers or applications from Microsoft Office that you installed. You can open attachments directly from your mail client. CrossOver Office uses native Windows plug-ins.

For example, Apple makes a native Linux plug-in for QuickTime, but it does not support a movie format used by many web sites. That format is called the Sorenson movie format. With CrossOver Office plug-ins, you can view material, using all the QuickTime movie formats.

Starting CrossOver Office the First Time

After you install CrossOver Office, notice that the installation script adds menus to the Gnome applications menu. At that point, select Office Setup to run the first time configuration script. After the initial configuration completes, you see a screen similar to the one in Figure 5.

Figure 5. Preparing to Install a Windows Application

When you select the Install button under "New software," you see a screen similar to the one in Figure 6, which lists many Windows programs from which to choose.

Figure 6. Windows Software List

If you don't see a program listed, you can select "Install unsupported software." For example, you can try downloading a program called WinSCP from winscp.sourceforge.net/eng. Developed under the Windows format, it works perfectly with CodeWeavers on JDS and allows you to have visual Secure FTP and Secure Copy on your JDS distribution.

After we selected Internet Explorer 6 and clicked Next, CodeWeavers Office downloaded and opened DCOM 95 for installation. We accepted the option, and a license agreement opened for us to accept or decline. Figure 7 shows the results after we selected Internet Explorer 6 to install. The figure presents a screenshot of the agreement you would see if you decided to follow this example.

Figure 7. First License Agreement for Installing Internet Explorer

CrossOver Office installed DOM95 and downloaded the setup program for the Browser and Internet Tools. In Figure 8, you can see the End User License Agreement (EULA) for Microsoft's IE browser. The CodeWeavers program downloaded and stepped through the installation process without user intervention.

Figure 8. End User License for Internet Explorer

The installation program used by CodeWeavers incorporates non-Microsoft code. The retrieval of Internet Explorer and the various Internet tools, Outlook Express, and the various components occurs similarly to the way it would during a Windows installation. Once we accepted the Microsoft EULA, CrossOver Office presented us with the screen, shown in Figure 9. We chose the Typical set of components and the installation process continued.

Figure 9. The Selection Screen of Options for Internet Explorer

Interestingly, the CodeWeavers Office installation seems familiar to Microsoft Windows users. If you purchase off-the-shelf Windows applications, notice that the installation follows the same steps it would in Windows, even though it's happening in native Linux code. Once all the Internet Explorer code downloads, CrossOver Office begins installing each component, which includes only native Windows code. (See Figure 10.)

Figure 10. Simulated Windows Reboot

After completing installation, CodeWeavers simulates a Windows reboot, as shown in Figure 11. We do not have to shut down JDS; CrossOver Office continues the installation, as indicated in Figure 9.

Figure 11. Post-Reboot Installation Screen

In contrast to Figure 5, the CrossOver Office Setup screen, shown in Figure 12, now indicates that four programs have been installed. The first entry is Microsoft Internet Explorer 6 SP1 and Internet Tools.

Figure 12. CrossOver Office Setup Status

After installation, we can select Internet Explorer from the desktop and run Google, for instance. Results appear in Figure 13.

Figure 13. Internet Explorer Running in WINE

In Figure 14, you can see that Internet Explorer runs in native Linux code. The real test, however, remains. Can Internet Explorer display a complex web site such as Fox News and provide both video and audio context with Windows Media Player?

Figure 14. Internet Explorer Running Windows Media Player 7.0

We navigated to the Fox News web site and chose Windows Media Player to view a video. The web site popped up a screen asking us to download Macromedia Flash and Windows Media Player, Version 7. We obliged and Internet Explorer installed each plug-in on the fly, after which it began playing the video. Figure 14 shows the screen after we installed the plug-ins and watched the video. We selected the stop button to take the screenshot.

Using Windows Applications with JDS

In this chapter, we discussed using software written for Microsoft Windows platforms on JDS. In the past, people have had difficulty bridging gaps between the Linux and Windows platforms. Several solutions exist, which allow you to run Windows applications on Linux without rebooting. In Chapter 10, we discuss JDS applications such Acrobat Reader, Real Player, and the GNU Image Manipulation Program (GIMP). These applications add additional functionality to JDS for working with Portable Document Files (PDFs), audio and video formats, and image editing in native Linux, without emulation.

Tom Adelstein lives in Dallas, Texas, with his wife, Yvonne, and works as a Linux and open-source software consultant with Hiser+Adelstein, headquartered in New York City. He's the co-author of the book Exploring the JDS Linux Desktop and the upcoming book Essential Linux System Administration, to be published by O'Reilly and Associates. Tom has been writing articles and books on Linux since early 1999.

Sam Hiser is a GNU/Linux consultant and migration specialist based in New York City. He was volunteer Marketing Project Lead and consultant to Sun Microsystems for the OpenOffice.org development project through its 20-millionth download. Along with Adelstein, Hiser founded JDShelp.org, a community site providing support and resources to users of the Java Desktop System around the world.

Load Disqus comments