Executor - using Mac applications under Linux
In the past there have been various attempts to develop emulators for the Apple Macintosh, which have had varying levels of success. With the Executor, ARDI has a candidate for Linux, NextStep and MSDOS.<br />
The Apple Macintosh enjoys great popularity most of all in the graphics trades, and also in education. Manufacturer ARDI promises that with Executor, a commercial Macintosh emulator, now available as version 2.0, you can use Mac software on a PC under Linux.
The development of Executor took place under Linux on Intel PCs. In addition, versions for NextStep (Motorola and Intel platforms) and MSDOS are available, but they won't be considered here.
The full version of the first 2.0 beta and a demo of the final version were available for testing. The latter served to check whether or not ARDI has corrected the deficiencies discovered in the beta version. For hardware we used a Pentium 90 computer (with 64 Mbytes RAM and kernel version 2.0.10) and a computer with an AMD 486DX4-100 processor (with 32 Mbytes RAM and kernel version 2.0).
Executor for Linux is available in two variants: for SVGAlib and for use under X11. Both were supplied in ELF and a.out binary format. The old Linux user kernel 1.2.13, which can still be found commercially, has to be patched for use with the SVGA version. Additionally, Executor doesn't have any sound output under this kernel.
The program doesn't just emulate a Motorola processor (a 68040), it also emulates the Mac operating system. This shows itself as version 6.0.7, but already has quite a lot of the System 7.x functions. The emulation has - along with speed advantages - the advantage of not requiring ROMs from Apple, so that there aren't any problems with copyright or getting them.
No ROMs, no problems?
However, there is only limited compatibility, because on the one hand the emulated operating system isn't at the same level of advancement as Apple's System 7.x versions, and on the other only contains documented functions. For future versions, ARDI plans that it will be possible to install an original System 7.5.x, obtained from Apple separately by the user, under Executor.
As the name suggests, Executor can run Macintosh programs, but doesn't emulate the typical Mac desktop (Finder). Instead it has a replacement for it, a browser. In some respects this doesn't come up to the standard of the original, but in other respects is better than it.
Like Finder, the browser opens a new window for each folder (as directories are called on the Macintosh) and the contents of the folder can be shown as either text or with icons. Files and programs are, as familiar from the original, copied by drag & drop, though only individually - there isn't the option of multiple selection, likewise there isn't a trash can for deleting things. Double clicking on the program icon or on the icon of a file created with a particular program, starts the appropriate application. The similarity to Finder even goes so far that the key combination Shift-Alt-F3 takes a screen shot which is put in the /tmp directory as a TIFF file.
Other keyboard tricks popular with Mac users (such as the pressed Opt key when opening folders) are not included. Running several applications in parallel is also impossible. The browser doesn't allow files to be given comments or colour marking either, though you can configure the creator and type of each file - a manipulation that's only possible by using helper applications such as ResEdit or File Typer on the Mac.
|The menu bar, called Hot Band, has a big advantage over its model, the Apple Mac's Finder.|
The browser goes beyond the Finder's capabilities with the Hot Band, a window underneath the menu bar. It has six icons in the left part and on the right hand side has a storage bar (the actual bar) for programs, files, folders, volumes, fonts and desk accessories. You can switch between the various bar types using the icons. If the user puts an object in the Hot Band windows via drag & drop, it's automatically put into the appropriate bar and can be activated from there with a double click. The Hot Band reminds you of the click start bar in OS/2 a little bit, and is a very good replacement for aliases, which lots of Mac users plaster their desktops with.
Apart from Finder (and other small things like a different cursor during the wait state), Executor presents Mac programs with the usual look and feel.
Swapping data between worlds
The programming in Executor for fully transparent access to any storage medium formatted with Apple's HFS (Hierarchical File System) has been done successfully. If at start up such a disk is in the disk drive, or one of the drives whose device name is listed in the MacVolumes environment variable, it's automatically mounted. Executor can read disks and also put a HFS file system on low-level or otherwise formatted disk and write on them. In practice though, data exchange between Mac and PC works in both directions on a diskette set up by Executor. Because of the Apple DD and SD drive's technical peculiarities (800K and 400K data formats) you're limited to using 1.44 Mbyte disks.
Whilst floppy disks can be mounted and unmounted via a command in the browser's file menu during running emulator operation, unfortunately this doesn't work with CD-ROMs and Macintosh hard drives. One of Executor's unattractive features is that it blocks the floppy drive for other processors, even when a Mac diskette hasn't been mounted. You can prevent this with the option "-nodrivesearch", but then you can't access diskettes at all from the emulated Mac.
Along with Mac diskettes and CD-ROMs, Executor can also access the Linux file system and in doing so can even save Mac files in the Linux file system. That causes the following effect: if Mountpoint doesn't put a file in the root directory, Executor is unable to access it. We experienced this problem during the test with both the ext2 and NFS file systems.
Picked up - Mac files in the Linux file system
The Apple Macintosh data system is different from almost every other computer platform through the division into various forks. If you copy a Macintosh file into the Linux file system with the browser, Executor automatically puts two files there, of which one records the data, the other being the resource fork. This way, data exchange between Linux and Mac is really simple: for example, a JPEG file can be copied from a HFS CD on to the Linux file system and be opened adjusted with xv without any problems. The Linux program only processes the data fork, the resource fork isn't touched.
This way, in terms of what happens on the Mac side, type and creator information, plus the file's icon, aren't lost. This is an effect that often occurs when swapping data between Macintosh and other computer platforms and has likely caused confusion amongst many users. The other way round of course, files in the Linux file system can be worked on with Macintosh programs. This concept of directly saving resource and data forks in the Linux file system makes setting up a container file in the PC, like with the DOS version, unnecessary. These so-called HFV (Hierarchical File Volume) files record the Macintosh files in the DOS file system, because DOS doesn't support long file names.
A further elegant method of data exchange is connecting any HFS-formatted SCSI device, internally or externally. The device name has to be put in the MacVolumes environment variables. In the test, accessing a 40 Mbytes disk, taken out of a rather older Mac, in a PC fitted with a NCR SCSI controller worked straight away.
Executor doesn't yet have an important feature, which makes the Macintosh Application Environment (MAE) from Apple for HP-UX and Solaris stand out. Above all, it is the network access that is missing, when you compare it to the competition from Apple. Even starting Linux programs from the browser, or automatically converting the end of line characters - different on Mac and Unix - when opening text files aren't supported. Swapping text files between the Mac clipboard and X11 clipboard works without problems though, even if umlauts aren't converted, though end of line characters are correctly converted.
It's also a disadvantage that under Executor you can only run applications programs, not INITs (start programs) and CDEVs (control panels). Being able to implement the missing floating point processing with the FPU program is therefore not possible. Desk accessories (programs that start from the Apple menu) work, but the support for this type of program isn't particularly well-developed, so that a large proportion of these tools can't be used under Executor at the moment. PostScript printer emulation works without problems: Executor sends the PostScript files to a filter (a shell script to be created by the system administrator) having the name executor_filter, or, if it doesn't find one, directly to lpr. The filter can contain either a Ghostscript or lpr call, which means that any printer which works under Linux can be used. As an alternative, you can provide the emulator with the name of a file in which the PostScript file is to be recorded.
By providing parameters at the program start it makes it possible for the user to use a large part of the options for adjusting the program right from the beginning. Some of them can be configured in a dialogue box during a running Executor session (Command: Shift+Alt+5).
The amount of memory available for applications (default value is 4 Mbytes) and the resolution (option "-size") and colour depth (option "-bpp") of the virtual Mac's graphics must surely be amongst the most interesting of the parameters configurable via a command line. Under X, the resolution can be chosen as desired (for example, you can start Executor in portrait format with "-size 600x800"). With colour depths though, you're limited to the values 1, 2, 4, 8, 16 and 32, though 16 and 32 proved to have no effect. The "-keyboard Deutsch" option, which causes the emulator to provide a German keyboard, only worked in our test with the SVGA version.
The refresh method for the screen ("animation" or "normal") is amongst the most important options that you have to set during running operation. In animation mode you can playback animations and multimedia presentations smoothly, though normal graphics operations do run noticeably slower. The version number of the operating system, which Executor tells the application programs it is, can also be set: that way, many programs which refuse to run due to the version number being too low, can be fooled into working with the appropriate entry.
Acid test for emulators: compatibility
The crunch question when it comes to emulators is of course: "Which software runs under the emulator and which doesn't?" Tests with recent shareware and demo CDs plus some programs from the Info Mac FTP server led to the following result: software that uses special System 7 (or a new system's) functions, or is dependent on certain system extensions (such as QuickTime) or hardware features (such as FPU) basically don't work with the current release of Executor. With the remaining programs unfortunately not all of them work.
There are applications which run reliably and are stable, such as the Lemmings game demo, powerful text editors such as BBEdit Lite 3.0, TeX-Edit and Alpha, the BinHex 5.0 encoding program, expanders StuffIt Expander and Compact Pro, plus many others. But programs crashed every now and again, ended themselves or just couldn't run certain tasks because they called up Toolbox functions which Executor doesn't provide. In the test we tried to install and start some newer demo versions of commercial software, which unfortunately didn't work at all.
The following are examples of the abortive attempts: we could install a demo of Adobe's PageMill, but then refused to run with the message that some drag & drop extensions in the system folder were needed. With the attempt to install Adobe Acrobat Reader (version 2.1) the installer program just hung. The Executor FAQ from ARDI notes that installer programs based on Apple's installer tend to result in this effect, but the reason isn't known.
An attempt to start the beta version of StarWriter 2.0 resulted in the error message "Unimplemented Trap A0DD". The results with older software were more encouraging. QuarkXPress (version 3.1.1) ran under Executor, but only with two considerable limitations: for one the program wouldn't start from the Mac SCSI disk built into the PC, because it wrongly thought it was read only. Other programs, on the other hand, started from this disk without any complaints. Secondly, a big limitation for practical use is that printing didn't work under Executor. This seemed to be because QuarkXPress needs a printer driver. Because Executor doesn't support software that's near to the system, that leads to problems. Additionally, the emulator occasionally crashed when we tried to access the Quark fold-down menus. Apart from that though, the DTP program made a stable impression and is for example suitable for changing a Quark document on the screen and saving it on the Linux computer.
An attempt to install Microsoft Word (version 5.1) again stumbled on the Apple installer, like with Acrobat. The installation program didn't crash, but said that every selected destination drive was "defective", and in doing so prevented any program installation. Copying Word and Excel files to diskettes worked without problems though. File handling (even with very large files) worked just as well as the printing. Diagrams could be made in Excel and pictures could be embedded into documents in Word, without leading to a crash. Various multimedia presentations (including sound) ran smoothly, as did many games.
|Excel 4.0 runs under Executor without any problems, even with big tables and demanding diagrams. It's only the installation that is temperamental.|
Fonts in the original Apple Bitmap Format (FONT, NFNT) can be installed or - at least as a bitmap - be printed. They are properly shown on the screen too. It's a different story when it comes to TrueType fonts, which the Macintosh has had since System 7.0. They can be installed in Executor and are shown in the font menu. However, they are replaced by other fonts both on the screen and in printouts.
The question of compatibility, to put it briefly, can't be fully answered. In the end, the only help for the potential purchaser of the emulator is to test, using the demo version freely available by FTP, whether the programs he uses work or not. The file AppNotes provides information about its ability to run programs and can be downloaded from the ARDI FTP server. This file contains a list of a whole range of known programs with information about if they run under Executor and limitations you should expect.
In contrast to older versions of Executor, the version 2.0 demo has been restricted more severely. As well as a limit of 10 minutes' running time, almost all of the hot-key combinations are blocked and every printout is plastered with the word "demo" over the actual page. Furthermore, formatting and writing to diskettes isn't possible in the demo version.
Appealing speed of work
A further question of interest in relation to emulators is that of scope and speed of the emulation. According to Speedometer, a benchmark and diagnostic program, Executor emulates an "unknown" Mac with a 68040 processor and an integrated MMU (Memory Management Unit; the MMU is responsible for administration of virtual memory), but without an FPU (Floating Point Unit, maths coprocessor). System version 6.0.7 and QuickDraw version 2.30 (32 bit) were cited. When using a newer Linux kernel (from 1.3.60) sound output is also possible under Executor.
The benchmark results are thoroughly impressive: in comparison to a Mac Classic, Speedometer certifies the SVGA/ELF version of Executor on the 486DX4-100 under Linux 2.0 to be 15.9 times faster for CPU performance, 10.9 times faster for graphics (setting "normal" for refresh method), 40.4 times faster for mathematical operations and 15 times faster for disk performance. On the 90 MHz Pentium under Linux 2.0.10 the results were accordingly a little better. Under X11 the graphics performance is better with the SGVAlib version. Altogether, the performance of Executor on the Pentium system exceeded that of the MAE 1.0 and the Quadra 700 (see iX 10/94 [[#literature 1]]) by a factor of two to three. In comparison to a Power Mac 7500/100, the program on the slowest Pentium still reached up to two thirds the Mac's performance.
|Compared to a Power Mac 7500/100 under System 7.5, Executor puts up a good fight on a Pentium 90.|
Also seen subjectively, Executor works faster than a II family Macintosh. This good impression is achieved for one by the fact that the 680x0 Macintosh code (according to ARDI) is translated into 80x86 code, and for another, that with Executor all the Toolbox calls, of which for a large part Mac programs are comprised, are available as 80x86 code.
Sometimes with hook and eye
Along with the problems of the German keyboard layout under X11, QuarkXPress thinking the mounted Mac disk was read only and errors with accesses to the file system, whose mount points aren't in the root directory, there are some other inconsistencies and points for criticism. An attempt to run the X11 and SVGAlib versions in parallel caused a system crash with the commercial Accelerated X Server (though not with XFree86).
The somewhat limited range of shipped documentation also comes up for criticism. The customer purchasing a full version gets a little CD booklet which gives information about installation and usage in its 32 pages. The index, promised on the contents page, is missing - at least with the copied example with the beta version.
If you want to access lots of external devices, you won't find the information that you have to separate the device names in the MacVolumes environment variable with a semicolon in the manual.
Altogether though, Executor is an interesting product that shows promising first signs. Some of the details have to be improved or supplemented though, so that it becomes universally useable. At this point, some improvements have to be made, which ARDI has already named. Namely a larger number of programs that run with it and a better emulation of (newer versions of) the Apple operating system. In addition, access to Apple Talk and the Linux computer's serial interfaces should also be implemented. The possibility of data exchange between Macintosh and Linux data storage devices and the speed of the emulation are already impressive though.
[+] transparent access to HFS storage devices
[+] 'Hot Band' replaces aliases references on the desktop
[-] no AppleTalk
[-] software installation is often possible only indirectly
[-] some desktop tools are missing
[-] incomplete documentation