|Editions | myCNN | Video | Audio | Headline News Brief | Feedback||
Emulate Mac OS on your Linux box
(IDG) -- Have you ever had a large number of desktop publishing files on a Mac-formatted Zip disk and wanted to transfer them to your Linux box? Did you ever want to copy a movie trailer from a Mac CD-ROM or use data from Mac hard disks? You probably know that it can be painful.
The problem is that all storage media in the Macintosh world use their own file system called HFS (Hierarchical File System), which can make it hard to access Mac-formatted disks. It's not a problem unique to Linux users -- the same issue arises if you use Windows or other Unix OSs. Linux users are, however, in a better position than most because there is an HFS file system driver available in kernel 2.x.x that allows Linux to mount storage devices that use HFS. Unfortunately, you still can't decompress or decode the Mac-specific archive formats BinHex (files with the .hqx extension), StuffIt (.sit), CompactPro (.cpt), or self-extracting archives (.sea).
And there is still another problem -- all Mac files are logically divided into two parts: the data fork, which contains binary code, and the resource fork, which contains all the application resources such as icons, dialog boxes, fonts, and Finder flags. Thus, simply copying, say, Mac graphic files to a Linux file system will almost always corrupt them. But there is a solution. It's Executor, a commercial application that allows you to run applications written for a Macintosh on your Linux box. It also lets you read and write to Mac-formatted floppies, hard disks, and CD-ROMs, as well as other media like Zip and Jazz disks.
Executor comes from ARDI (Abacus Research and Development, Inc.), a small company that developed this product over ten years. ARDI's president and founder, Cliff Matthews, has explained many times that Executor cannot be a Mac substitute because Apple will not license its Mac OS code for use on non-Apple hardware. So if you want to develop software that can run Mac applications on a PC, you need to do it without Apple. The main problem is Mac ROM -- every Macintosh includes a ROM memory chip that contains code that is integral to the Mac OS. It's illegal to decompile, copy, sell, or exchange this software because it's copyrighted and Apple is very sensitive about its code.
How Executor works
The way Executor works is similar to Wine (the Windows program execution environment for Linux). Executor translates on the fly all API calls into native Linux x86 code. That's different from VMware, which isolates the emulated OS in its own virtual environment (or virtual machine). Executor works much harder than Wine, because Executor not only implements the Macintosh Toolbox API (as Wine does with the Windows API) but also translates alien binary code into native x86 instructions. Moreover, Wine is able to use installed Windows OS components like dynamic link libraries (DLLs). Executor cannot use Mac OS system software, so many problems with compatibility arise, as you will discover below. The good news is that Executor's approach simplifies installation, reduces costs (you don't need to buy the original OS), and is quite speedy.
Executor is extremely fast when compared to other Mac emulators, because it translates all 680x0 code and Mac Toolbox calls into native 80x86 code. Most applications that run under Executor seem to run faster than they do on a comparable Macintosh. When creating Executor, ARDI programmers didn't reverse engineer the Mac OS, but used publicly available Mac OS and Mac Toolbox specifications and the well known (to Mac programmers) Inside Macintosh manuals. This is why most compatability problems arise when apps use undocumented functions or violate specs.
Executor emulates the Motorola 68LC040 processor (without FPU) and implements a large portion of Mac OS System 7.0 software. You can also switch to System 6.0.7 to get better compatibility if need be. Executor supports 256 colors at 640 by 480, 800 by 600, and 1,024 by 768 resolutions. Hardware requirements for running Executor are moderate enough to run smoothly on any Pentium machine with at least 16MB of RAM. Executor for Linux comes in three flavors, two for the X Window System (one using SDL library and another for Xlib) and a SVGAlib version for *nix consoles. Executor is easy to install (there are RPM and .deb packages available) and ready to use immediately after installation.
Executor is able to read HFS-formatted CD-ROMs and Mac SCSI disks without any problems -- although it doesn't mount them on the Linux file system. Executor can also read and write 1.4 MB Mac-formatted floppy disks. Unfortunately, if you have some old Mac 800 KB floppies, you're out of luck. You can't read them because of hardware limitations in PC floppy drives, and there is nothing you can do with that.
You can create a special file for Executor to use as a virtual Macintosh hard disk in Executor. This is necessary when you want to install applications (such as HFV file). Mac programs can be installed just as they would on a real Macintosh (although some installers will die), or you can simply drag the icon or folder from the CD-ROM and drop it on the virtual Mac drive. There is sound output available under Executor. Another nice feature is that Executor can print directly to PostScript printers, to a PostScript file (for later viewing) or use the Ghostscript PostScript interpreter available in all Linux distributions. The demo version of Executor doesn't emulate the command-key functions commonly used in the Macintosh world, and every printed page has the word demo on it. Furthermore, you can't format or write to diskettes and hard disks.
Executor has its own user interface, called Browser, which is similar to the Mac's Finder, but without the trash can, control panels, and famous Apple menu. Executor comes with some Macintosh apps (shareware or demo) including Lemmings, Ultimate Solitaire Demo, Risk, StuffIt Expander, Tex-Edit, MacBreadboard, and Speedometer (a benchmarking program).
The greatest advantage of Executor -- freedom from Mac OS -- can also be its biggest drawback -- the lack of compatibility. Because Executor doesn't run the original Mac OS, it can't use some components that are highly integrated with it, such as INITs or CDEVs. Thus, you won't be able to use extensions such as QuickTime, ATM, and Open Transport.
Executor uses original Apple bitmap fonts (FONT and NFTNT data in the resource fork), as well as TrueType fonts (used in Mac OS starting from System 7.0). Support is limited. You can install TrueType fonts, and they show up in the font menu, but then are replaced by bitmap fonts on the screen and in printouts.
You may also have problems with the HFS+ format used for hard disks in Mac OS 8.5 and later (the Linux kernel doesn't recognize HFS+ either).
But the biggest Executor disadvantage (at least for me) is the lack of networking support -- especially Ethernet. This is absolutely necessary, and ARDI says that it will be the company's next target. Another issue is AppleTalk networking. It's still popular in the Macintosh world but is almost useless in the PC and Unix arena because it needs a special, expensive AppleTalk hardware interface. Thus, Executor will probably never support AppleTalk.
What applications can it run?
Executor is able to run only Motorola 68k binaries. Of course, you can use well-known, classic software like MacWrite or MacPaint, but you're out of luck if you want to use the newest software such as 3D games or later versions of Adobe Photoshop. There are many applications that run reliably on ARDI, such as the popular text editors BBEdit and Alpha. Encoders and expanders like BinHex 5.0 and StuffIt Expander should also work cleanly. Some programs work only when Executor runs in Mac OS 6.0.7 compatibility mode. Other applications will not work at all because they use specific Mac OS system functions or need to access Mac OS system extensions like QuickTime, which is required by modern games and multimedia applications.
Despite the compatibility problems and limitations, you should be able to work with Microsoft Word 5.1 and Excel 4.0 (which runs excellently), Quicken 6.0, Claris Works 4.0, FileMaker Pro 4.0, QuarkXPress, Adobe Illustrator, and Adobe Photoshop 4. You can even run older versions of MPW (Macintosh Programmer's Workshop -- the standard development environment for Mac OS) and many older software titles for kids. The best solution is to download a 30-day demonstration version of Executor 2.1x from ARDI's FTP server (see Resources) and see how well your app runs before you buy. You can also check out the compatibility database at ARDI's Website (see Resources) and get many hints about running different applications.
ARDI is presently working on Executor for PowerPC, which will run PowerPC Mac applications under Linux/PowerPC. Executor for PowerPC's main target is non-Apple PowerPC machines, like those from IBM, though it can also be useful for people who run Linux-based servers on PowerPC Macs and don't want to install Mac OS at all. ARDI also plans to include the option to run the original Mac OS system software inside Executor (so it will then emulate "only" Macintosh hardware). Mac OS is available from Apple for less than $100. That should ensure better compatibility for more demanding customers.
Alternatives to Executor
Of course there are also other Mac OS emulators available for Linux, but remember, all of them require ROM files containing the Macintosh ROM memory dump. You can use them only if you are a legal Macintosh owner. The most known are vMac and Basilisk. vMac emulates Classic Mac. The most notable feature of Basilisk is that it supports networking through a special kernel module so you can set up a virtual network (as in VMware). If you only want to copy files, there is also HFS Utilities, the hfsutil package that allows access to HFS volumes. It contains several command-line programs for manipulating the HFS file system and a Tk-based front end for browsing and copying files. It's another story if you want to use Linux as an AppleShare file and print server in your Macintosh network. Then the best choice is the free Netatalk server package (you can find a link to "AppleTalk Services Under Linux," a nice tutorial on Netatalk, in the Resources section).
Executor's offer of seamless data exchange between Mac and Linux and the speed of its emulation make it an excellent solution for Mac/Linux users. In spite of all its problems, Executor has two meaningful advantages -- you don't have to recompile the kernel to get immediate access to Mac disks, and you can decompress, decode, and convert files using native Macintosh tools, then safely transfer those files to Linux.
ARDI Executor for Linux costs $75 ($35 for full-time students), which is cheaper than the Windows version.
Linux livin' large on mainframe
RELATED IDG.net STORIES:
Is playing PC games on your Mac worth the hassle?
|Back to the top||
© 2001 Cable News Network. All Rights Reserved.|
Terms under which this service is provided to you.
Read our privacy guidelines.