Most Windows and many UNIX applications have a graphical user interface. If your workplace demands that you run such a UNIX or Windows application, it is possible to do so by running the application on a UNIX or NT server and have the GUI appear on your Mac. In a completely general case, the client computer need not have any operating system, Mac OS or otherwise. Called a network computer or thin client, such terminals don't have any of their own applications and only run applications from the central server. Booting a roomful of iMacs from a central Mac OS X Server is a comparable situation. A number of companies make terminals for Windows or UNIX servers.
X Window System
The UNIX world's version of such an environment, the X Window System, has been around since the early 1980s. The open, cross-platform X Window System manages a windowed graphical user interface between a client and a server in a distributed network.
Typically, the client user logs into a UNIX machine -- using a Telnet connection and appropriate terminal software -- and starts an application that can communicate with a machine running X Windows. The application then sends screen display information to the client's machine, which the client has identified to the UNIX machine. The client machine runs an application that listens for and displays the graphical interface instructions. (Technically, the client-server relationship is reversed. On your Mac, you will run an X display server, and the application on the UNIX machine acts as a client that makes screen display requests of your X server. I mention this only to explain why the software packages I'm about to mention are referred to as X servers.)
There are three readily available X Windows applications. MacX from Apple and eXodus from White Pine are two commercial packages. MI/X is a freeware version from Micro Images.
Windows Terminal Server
Because the X Window System is an open, cross-platform solution that has been around for fifteen years, it only makes sense that Microsoft chose not to use X Windows for Windows NT Server, Terminal Server Edition. The idea behind the Windows Terminal Server is the same as with the X Windows System: The application runs on the Windows Terminal Server, and a client system interacts with the application remotely. The client may be another computer -- Windows Terminal Server supports Windows NT Workstation, Windows 95/98, Windows 3.11 -- or a Windows-based terminal device.
Even if an organization has Windows client computers, it can benefit from running Windows applications remotely by making system administration easier. The administrator has to configure only the central server, not every client system.
For a mixed-platform environment, such as the San Diego Supercomputer Center, the MetaFrame or WinFrame software from Citrix extends the Windows Terminal Server and allows Mac OS, UNIX, OS/2 Warp, and other systems to run applications from the server, as shown in Figure 7-6. With MetaFrame or WinFrame on the Windows Terminal Server and the free Citrix ICA (for Independent Computing Architecture) client on client systems, the Mac can become a Windows terminal. The ICA protocol sends only keystrokes, mouse clicks, screen updates, and audio across the network.
Citrix reports that the ICA software allows clients to run remote applications over even a dial-up connection. From my experience, the apparent Windows application performance depends on the speed of the Windows Terminal Server, which is to be expected. A heavily loaded server will likely feel sluggish even over a fast network connection.
To use a standard X Window System connection to a Windows Terminal Server or Citrix MetaFrame server, Network Computing Devices offers NCD WinCenter, which installs on top of Windows NT or on top of MetaFrame. NCD WinCenter allows any system that supports X Windows to run Windows applications -- no special client software needed.
Remote Control
The advantage of running applications from a UNIX machine using X Windows and Windows using Windows Terminal Server or Citrix products is that more than one user can be running those applications. However, if you are a solitary user in this situation -- maybe you have a Mac at home and a Windows machine at work -- you have a few other options.
Timbuktu Pro from Netopia gives you remote control of one computer from another. Install Timbuktu Pro on your Windows machine at work and your Mac at home, and you can run Windows applications from the comfort of your home office.
A comparable, free, and multi-platform option is the Virtual Network Computing software from AT&T's Cambridge Laboratories. VNC also requires that software be installed on both the application server -- possibly a UNIX, Windows 95/98/NT, or even Mac system -- and the UNIX, Windows, Mac, or Java application client. On UNIX, VNC acts as an enhancement to the X Window System. You must log in to the UNIX machine, start the VNC server, and then start your UNIX applications. Because UNIX is, by default, multi-user, more than one UNIX user can start a VNC server on the same machine. On a standard Windows or Mac OS machine, which allows only one logged-in user, VNC works more as a single-user remote control environment. Table 7-3 lists Mac software for X Windows, Windows NT Terminal Server, and remote control of systems.
Non-Mac Operating Systems
If you're not part of an organization that has a central application server, the ability to run Windows or UNIX software from a server doesn't do you much good. And a slow server may not be your favorite option if you need to use a Windows or UNIX application regularly. The next option is to have your Mac emulate a Windows environment. Emulation is the Nirvana of the digital world: You can simulate physical hardware -- such as an Intel Pentium chip -- entirely in software. You can also run UNIX and Linux operating systems directly on your Mac hardware.
Windows Emulators
In the Windows emulator arena, there are two major contenders and two upstarts. The upstarts, at the time of writing, aren't ready for the big leagues just yet. Both the Blue Label PowerEmulator and MacBochs are getting better, but you should give them a shot only if you don't mind fiddling with the idiosyncrasies of early releases.
The two major contenders here are Insignia, makers of SoftWindows and RealPC, and Connectix, makers of VirtualPC. The two companies have taken different approaches to the task of emulating a Windows or DOS machine.
Insignia's products run the PC operating system -- Windows 95/98 for SoftWindows, DOS for RealPC -- by replacing the drivers that DOS or Windows use with versions that interact with the Mac OS. In other words, SoftWindows hands off Windows and DOS hardware commands to the Mac OS.
VirtualPC by Connectix takes emulation one level deeper. VirtualPC emulates a PC at the hardware level, so Windows or DOS can use their native driver software and "see" the right PC hardware. You can purchase VirtualPC with either DOS or Windows.
Note that both companies offer versions that include only DOS -- RealPC and VirtualPC -- as well as versions that include Windows 95/98 -- SoftWindows and VirtualPC (with Windows). The DOS versions target gamers; many PC games bypass the performance overhead of Windows and run right from DOS. The Windows versions are more useful for so-called "productivity" applications -- the software you have to use at work that needs Windows.
Now for the Great Debate: Which is better, SoftWindows or VirtualPC? The answer depends on whom you ask. Both are comparable in terms of performance, but SoftWindows seems to be faster on older Macs, while VirtualPC can be faster on fast new G3 machines. Both also offer good (and getting better) compatibility, but the vagaries of the PC world mean that eventually you'll run into some piece of software that conflicts with something.
As a rule, most reviews of both products rank them as acceptable for what they are: workarounds for not having a PC when you want or need to run a Windows or DOS application. Each works well for casual use. However, if you demand top-of-the-line PC per-formance for your games or other applications, you need a top-of-the-line PC, not an emulator. Table 7-4 provides links to Windows emulators.
UNIX and Linux for Mac
Unlike Windows 95/98/NT, which must be emulated, your Mac hardware can run UNIX and Linux as a non-emulated operating system. In most cases, you can choose between the Mac OS or Linux/UNIX during startup and sometimes switch between the two without rebooting. In this category, there is one UNIX virtual machine, two flavors of the BSD UNIX system, and two variants of Linux for the Mac. Table 7-5 points you to the relevant Web sites.
A word of caution: UNIX is not designed as a user-friendly operating system, and while there are some nice Mac touches in some of the UNIX and Linux versions for Mac, you should be aware of the learning curve. If you are a novice, you may not want to experiment with UNIX on your primary Mac system.
MachTen. Let's start with Tenon Intersystem's MachTen, a UNIX virtual machine for PowerPC and older 68K-based Macs. MachTen is a small family of fifteen shared libraries consuming about 1.2MB of memory. With MachTen, you can operate as if you're on a UNIX machine running the Mach kernel and BSD 4.4. A major advantage of MachTen is that you can switch easily between the Mac OS and the MachTen UNIX environment, because MachTen runs as another Mac OS application. For the same reason, MachTen is probably the safest version of UNIX for non-experts.
NetBSD and OpenBSD. NetBSD and OpenBSD are two open-source projects to develop and distribute UNIX-like operating systems based on the BSD 4.4 system. Both initiatives have versions for 68K-based Macs and the PowerPC architecture. NetBSD, however, cannot share the hard drive with the Mac OS. OpenBSD should be able to, but expect to spend some time repartitioning your hard drive prior to installing OpenBSD. Again, you should attempt this on your own only if you are familiar with UNIX and comfortable with the intricacies of your hardware. And, please, back up your hard drive before you try this.
MkLinux and LinuxPPC. Originally started by Apple and the Open Software Foundation, MkLinux runs a Linux environment on top of the Mach microkernel, while LinuxPPC is a monolithic Linux OS. Both versions of Linux should run the same applications without changes, and both will co-exist with the Mac OS, letting you choose between the Mac OS and Linux when you boot your system.
You might choose between them for several reasons. If you have an older NuBus-based Mac, MkLinux is the only Linux that will work. If you have a Mac clone, LinuxPPC is the better option. If you own a PCI-based Mac, you can choose between LinuxPPC and MkLinux. And because MkLinux incurs the overhead of using the Mach kernel, MkLinux might be a tad slower than LinuxPPC.
Other Emulators
Since it's possible to emulate the latest and supposedly greatest operating system from Microsoft, you'd think that it would be possible to emulate older computers -- perhaps that Apple II that you used in high school. And as a matter of fact, it is.
For emulating just about anything besides a Windows or DOS PC -- from a Commodore VIC-20 (I had one of these!) to a ColecoVision game system or a Texas Instruments calculator -- visit the emulation.net site of John Stiles, a truly amazing spot for developing the ultimate in crossplatform environments. Check Table 7-6 for more resources.