Macintosh Application Environment 3.0 - White Paper
Macintosh Application Environment 3.0
The virtual Macintosh for UNIX® systems
Users of RISC-based workstations running UNIX® have traditionally enjoyed the performance benefits of UNIX , which supports tools that are well-suited to the jobs of accomplishing technical, scientific, or other computationally intensive tasks. However, these users also need to perform tasks such as desktop publishing, spreadsheets, word processing, e-mail, task scheduling and other business applications as part of their work. The right tools for these jobs are inexpensive, industry standard productivity applications, and there is a very limited selection of these tools available on UNIX.
Macintosh Application Environment (MAE) is a software product from [[Apple Computer]] designed to offer workstation users the Macintosh "look and feel" and associated ease-of-use and productivity benefits by providing a "virtual Macintosh" environment within a UNIX X window. MAE supports most off-the-shelf Macintosh programs, including spreadsheets and word processors, as well as desktop publishing and graphics applications. And with its seamless integration into the host UNIX environment, MAE allows users to:
- Exchange data between X Windows and Macintosh Environments;
- Launch UNIX applications from within the Macintosh environment;
- Manage UNIX files and the UNIX file system with the Macintosh Finder; and,
- Access UNIX system services, including TCP/IP networking via support for MacTCP.
Version 3.0 is the most recent release of the Macintosh Application Environment. The new release incorporates several new enhancements and features designed to make it more flexible, easier to use, and significantly faster.
Beginning with the User Experience, this paper provides an survey of MAE while focusing on the new features provided in MAE version 3.0. The next section, System Architecture, provides a detailed summary of the sophisticated technology behind these new features and better performance. The final section, System Administration for MAE, illustrates how MAE fits into the UNIX environment.
What is the Macintosh Application Environment?
MAE allows users to run applications for the Mac® OS on their UNIX workstations. MAE version 3.0 does this by providing full support of Macintosh System 7.5.3 in an X window. Moreover, the system is optimized to take maximum advantage of the RISC CPU architectures present in supported workstations (for details, please see the section entitled The Macintosh 68040LC Emulator).
To the user, MAE appears to be a fully functional Macintosh environment contained in an X window, providing an experience that is virtually identical to that of using a standard Macintosh computer based on a Motorola 680X0 (68K) microprocessor. To the host UNIX system, MAE appears to be a self-contained X Window System application. The Macintosh graphical interface appears just as it does on a Macintosh computer; files are seen, copied, and opened as on a Macintosh computer; applications run as if they were running on a Macintosh computer; and printers and servers are selected using the Chooser utility.
MAE is standards-based, and supports UNIX-based workstations equipped with X Window System version 11, release 5 or later. (Please see the section entitled On what systems does MAE run? for currently supported workstations.) It also supports any window manager that adheres to the X Window System standard and the Interclient Communications Convention (ICCCM), including for example: Motif(tm), HP VUE®, OPEN LOOK®, and CDE. MAE is the only Macintosh environment for UNIX workstations that is developed and supported by Apple Computer.
Benefits of MAE
MAE maximizes the efficiency of the UNIX user by supporting simple navigation and management of both Macintosh and UNIX file systems, and by providing:
- Enhanced productivity through shrinkwrap Macintosh applications. MAE supports most of the productivity applications and tools long enjoyed by users of Macintosh systems. In fact, MAE supports more of these applications than any other platform capable of running Macintosh applications in a UNIX workstation environment.
- Copy-and-paste of text and graphics. Allows you to transfer text and graphics between MAE and other X Window System applications via the copy-and-paste tools in the MAE Toolbar.
- AppleTalk support. Lets you share files with other Macintosh and MAE users, access AppleShare servers, print to AppleTalk printers, and run groupware and e-mail applications. MAE also lets you print to UNIX Postscript printers.
- MacTCP. This greatly improved facility provides the MAE user with full TCP/IP connectivity and supports Internet applications.
- Support for NFS and AFS. MAE supports both NFS and AFS (Andrew File System) to provide access to the highly distributed file systems typical of workstation environments. NFS/AFS support allows you to easily access appropriate files within such environments via the Finder.
- Drag-and-drop or double-click UNIX command execution. To execute UNIX commands, the user merely "drags" the icon of a file or directory and "drops" it onto the icon of a UNIX command. For example, if you drag the icon of a directory to the ls icon, a separate X window displays a list of the files in that directory. The user can also double-click on a UNIX binary and it's executed in a separate X window.
New features of MAE version 3.0
- Faster. This version incorporates numerous enhancements and optimizations for greatly
improved performance. For most operations version 3.0 is at least twenty percent faster
than version 2.0. These improvements include:
- Enhanced emulator performance.MAE version 3.0 code has been greatly refined to provide much better overall performance. Among the most significant of these enhancements are greatly improved condition code handling and increased integration of floating point operations in the emulator.
- Optimized remote X Window System graphics support. The system's remote graphics capabilities have been augmented by redesigning the imaging pipeline to support a cached, parallel process that uses more efficient X Window System operations than those used in previous versions of MAE. For most operations, bandwidth use is reduced by a factor of 10. This change results in greatly reduced network bandwidth utilization, rendering MAE version 3.0 both more network friendly, client-server capable, and making it feasible to display MAE on any remote X Window System display.
- Easier to use. In response to user requests, MAE version 3.0 incorporates two key features
that make it much easier to use than earlier versions, including:
- Support for Macintosh System 7.5.3 features. MAE version 3.0 supports the
complete base of Macintosh System 7.5.3 functionality including, for example:
- Enhanced Finder. Offering improved file finding functionality, the value of this feature is further amplified by version 3.0's file system improvements.
- Apple Guide. This feature provides built-in assistance for Macintosh users who may not know exactly how to perform certain tasks.
- Macintosh PC Exchange. By allowing users to open, modify, and print DOS and Windows files, this feature expands the useability of MAE in the heterogeneous environments typical of those networks that include UNIX workstations.
- AppleScript. This functionality allows MAE power users to create time-saving shortcuts similar to those made possible by UNIX shell programs.
- Support for multiple independent volumes (MIVs) and additional file system
improvements. Multiple independent volumes (MIVs) are objects that allow users to
define any UNIX file system, directory, or subdirectory as an independent volume.
Volumes so defined appear on the Macintosh desktop as if they were standalone disk
drives. This enhancement provides a more natural, or more Macintosh-like, interface to
users, particularly when they are installing Macintosh applications software.
In addition to MIVs, the MAE version 3.0 supports more natural mappings between Macintosh aliases and UNIX symbolic links, both in local file systems and across the network.
- Support for Macintosh System 7.5.3 features. MAE version 3.0 supports the complete base of Macintosh System 7.5.3 functionality including, for example:
- More Flexible. This new version of MAE is more flexible than its predecessors and
generally appears more Macintosh-like both to applications software installers. Major
enhancements supporting this greater flexibility include:
- Better applications compatibility. In addition to improvements in MacTCP and AppleTalk, MAE version 3.0 includes heuristics that automatically and appropriately handle different file formats (AppleDouble and AppleSingle) in different contexts, while simultaneously providing the user with greater control over how these contexts are interpreted.
- Greater security for shared files. MAE version 3.0 supports an enhanced range of options that allow system administrators and users greater control over file sharing and volume access, both locally and remotely.
- Floating license management. MAE version 3.0 is equipped with the world's leading license management software-FLEXlm from GLOBEtrotter Software, Inc. This software allows system and network managers numerous options in providing individual and group access to software over the network. In the provided default configuration, MAE version 3.0 provides the most flexible and least constrained possible use of floating licenses: any user can launch MAE at any time as long as a license is available.
- NFS file system improvements. Although previous versions of MAE did not permit NFS automounts through the Finder, version 3.0 provides a means to automount NFS file systems on demand from within MAE by means of Macintosh aliases. Automounted volumes are displayed on the MAE desktop as MIVs.
On what systems does MAE run?
The Macintosh Application Environment 3.0 currently runs on UNIX platforms from Hewlett-Packard (HP 9000 Series 700 workstations running HP-UX 9.0.x, HP-UX 10.10 or later) and Sun Microsystems (SPARCstations running Solaris SPARC 2.4 or later). Please see the section System Administration for MAE for more detail on supported platforms.
The User Experience
What is it like to use MAE version 3.0 on a UNIX workstation? The short answer is: Almost exactly the same as using the Macintosh interface on a Macintosh computer. In this section, however, the focus is on the differences between the MAE interface and the Macintosh interface. Prospective users who are not familiar with the standard Macintosh interface may want to refer to the MAE Guide available in the Help menu.
Probably the most significant difference between using MAE and a Macintosh interface is that in MAE, users can take advantage of features that result from the interaction of the Macintosh system with the UNIX system. For example, in addition to using Macintosh productivity applications, UNIX users can use the Macintosh Finder to navigate the UNIX file system. And UNIX commands can be launched from within MAE.
Once MAE has been installed on a UNIX workstation (see the System Administration for MAE section for more information on installing MAE software), the user may launch it at any time by typing mae on the command line in an appropriate terminal window. Optionally, the user may also launch MAE from within a UNIX shell script, by clicking on an appropriately configured MAE icon, or by clicking on an appropriately defined MAE entry in an X Window menu. A system administrator can easily set up these alternatives to the command-line launch procedure.
The MAE window by default is set at a size of 640 x 480 pixels, which is equivalent
to a Macintosh 14 inch screen. This size can be dynamically adjusted. The principal
difference between the MAE interface and a standard Macintosh interface is the presence
of the MAE Toolbar, which extends across the bottom edge of the MAE X Window.
Using the MAE Toolbar
The tools in the MAE Toolbar control interactions between MAE and the host UNIX environment. The user may also access these features via the Toolbar Menu, which is displayed by pressing the third, or rightmost, mouse button when the pointer is positioned within the MAE window. The Toolbar can be optionally hidden by means of the Hide Toolbar option in the Toolbar pop-up menu.
The interactions controlled by MAE Toolbar features involve removeable media volume management (i.e., floppies and CD-ROMs), capture of screen images, movement of data between MAE and the X Window System environment, contained pointer positioning, and access to MAE Toolbar Help.
- Mount Floppy/CD.
- UNIX workstations do not automatically detect the
presence of a floppy or CD-ROM disk when either is inserted into an
appropriate drive. The Mount Floppy/CD tool allows users to notify MAE
that such a disk has been inserted. If MAE finds an initialized high-density
floppy disk or a CD-ROM when this button is clicked, MAE mounts the
disk and the appropriate icon appears on the desktop.
- Select from Screen.
- The Select from Screen tool lets a user select an area of
the screen and capture an image of it in the Macintosh Clipboard. You can
select any graphic on the screen, even a 3-D graphic or surface model, and
paste the image into a Macintosh application that accepts graphics in PICT
format by choosing Paste from the application's Edit menu.
- Export to X and Import from X.
- These tools facilitate the interchange of
data between X Window System and Macintosh application documents. For
example, to import text or graphics from an X Window System client to a
Macintosh document, open and activate the appropriate X application and
select the text and graphics you wish to import. Follow the X application's
procedures for copying, and click the Import from X button in the MAE
Toolbar. Then paste the desired data into the Macintosh document by using
the standard Paste command. The procedure for exporting to X is simply the
inverse of the importing procedure.
- Contain Pointer.
- The Contain Pointer tool prevents you from moving the
cursor outside the MAE window. This feature is particularly useful when
you intend to work extensively within MAE, and do not want to
inadvertently inactivate the MAE window since this could result in the
disappearance of the MAE window behind other active X windows. The
button toggles this feature on and off.
- Toolbar Help.
- Toolbar Help displays a series of Help dialog boxes that describe MAE Toolbar functionality.
Configuring MAE for the UNIX Environment
Another MAE component used for affecting interactions between MAE and the host UNIX/X Window System is the MAE General control panel, accessible via the Control Panels entry in the Apple pull-down menu.
The MAE General control panel supports:
- Finder Window Update. The Finder needs to be updated when changes occur anywhere in the UNIX file system. However, if the Finder is updated too frequently, the process can be degrade the workstation's overall performance. Finder Window Update is a user-configurable feature that helps to reduce MAE overhead on the host system by reducing the frequency with which an instance of MAE checks for changes in the UNIX file system.
- Hidden UNIX files. This options allows UNIX "dot files" (i.e., files whose names begin with a period [.] or "dot") to be displayed on the MAE desktop. If the checkbox in this option is not checked, these hidden UNIX files are not displayed.
- Mac OS colors. This patent-pending MAE feature reduces the "flash" that occurs when the cursor moves between MAE and other UNIX applications that are using different color tables. When the Approximate option is selected, MAE uses the color in the color table that most closely approximates the corresponding color in the Macintosh palette. This option typically results in less color flash when the cursor is moved. When the Exact option is selected, the Macintosh color table is substituted for the UNIX color table, resulting in greater flash when the cursor is moved. This option is appropriate for use with color-intensive applications in which exact color matches are required.
- Temporary Installer Volume (TIV). This feature creates a virtual Macintosh HFS disk
within the UNIX file system. A TIV is most useful when the installer of a Macintosh
application attempts to install that application directly to the root ('/') directory, and that
directory has insufficient space or access privileges for the application.
TIVs have been superseded by MIVs, but are still supported for backwards compatibility. (For additional details on MIVs, please see the Installing Macintosh Applications and The UNIX/X Windows Platform sections of this document.)
- Trash. This option permits the user to set the minimum file size used for the Fast Delete feature. When you put a file into the MAE trash, MAE makes a copy of it, unless it originated in your home directory. However, if a file equals or exceeds the size set in this option, the Fast Delete feature deletes it without making such a copy.
- Cycle saving via Processor Slowdown. Processor Slowdown is a user-configurable feature that helps to reduce MAE overhead on the host UNIX system by reducing the computation requirements when MAE is inactive.
Installing Macintosh applications
Once MAE is configured for the UNIX environment, the next step in setting up the system is to install some Macintosh applications. MAE supports several techniques for accomplishing application installation.
Installing with the application's installation utility
The easiest installation procedure is to simply install the application with its included installer, as described in the application's documentation, from a floppy disk, a CD-ROM, or an AppleShare server. Some application installers allow you to choose the installation destination drive and/or folder. In MAE, such installers would allow you to choose, for example, your home directory or a folder within your home directory.
Some installers, however, let you specify only a volume, and not a folder, as an installation destination. If you are installing software with this type of installer, you may want to use the new MIV feature to define a subdirectory as a volume. Once this is done, you can instruct the installer to place the application on the defined volume, and the software will be installed into the correct directory. Please note that your home directory is by default a MIV, so you may not need to create a new one to install application software.
Installing by copying from a Macintosh computer
You can also copy application files from a Macintosh computer directly to MAE using a network server (AppleShare). This provides a particularly fast and easy way to copy an application to the MAE environment, since you can use the Macintosh Chooser to select a Macintosh file server on the network. You copy the application to your system just as if you were on an AppleTalk network.
Opening UNIX files
You can use MAE to open UNIX text files or application documents, run UNIX commands, and launch X Window System applications. In most cases, you can double-click a file icon or a UNIX command icon. Text files appear in a terminal window in the default text editor; if you double-click a UNIX command icon, the results of the command appear in a terminal window. You can customize which command or application is launched, using the MAE File Launching control panel.
Using the Launcher
As discussed above in the section entitled Benefits of MAE, MAE supports drag-and-drop execution of UNIX commands. Frequently used programs can also be launched by means of the Launcher utility. With a minimum of preparation, consisting primarily of placing application aliases into appropriate folders, users can customize the Launcher control panel so that it displays the icons of the most frequently used programs. To launch a file, you simply open the Launcher control panel and select from the program icons that have been installed.
AppleTalk support offers a way to connect MAE to a wide range of system services including file sharing, printing, and groupware applications such as e-mail and meeting scheduling.
AppleShare networking allows you to share your files selectively with other users, link programs for purposes of sharing data, and access files shared by others (users or servers). Accessing files shared by others is accomplished via the Chooser. You begin by clicking the AppleShare icon, and continue by selecting an appropriate zone from the Chooser's list of AppleTalk zones. Once a zone is selected, the Chooser displays a list of servers available in that zone. To establish a connection to a server, simply double click on the name of the server.
Connecting to a printer via AppleTalk
The Macintosh Chooser also lets you select a printer that is connected to the AppleTalk network. You begin by clicking the appropriate printer icon, and continue by selecting an appropriate zone from the Chooser's list of AppleTalk zones. Once a zone is selected, the Chooser displays a list of printers available in that zone. To establish a connection to a printer, simply click on the name of the printer. To print all or part of a document on the selected printer, you use the standard Print command in the Macintosh application.
Printing to a UNIX PostScript(tm) printer
MAE can also be configured to use lp(1) or lpr(1), so you can send print commands from an application running in MAE to a UNIX PostScript printer. Specifying a UNIX print command allows you to print from Macintosh applications without requiring an AppleTalk connection to your printer.
To connect to a UNIX printer, click on the LprWriter icon. When you first connect to a lpr printer, you need to tell MAE what kind of printer you are selecting, using the Setup Button. In the Setup Print Command dialog box you then select the Printer Description (PPD) file and UNIX print spooling command that are appropriate for the UNIX PostScript printer you want to use.
Support for sound and QuickTime
MAE 3.0 provides the standard sounds, from system alert sounds to sampled sounds, that are supported on the Macintosh computer by means of a modified Sound Manager. Sound support can be configured through the Sound control panel. MAE 3.0 supports all of the sound sampling rates available on the host platform.
Similarly, users of MAE 3.0 can play QuickTime videos inside their MAE window, with the included QuickTime extension. The speed and quality of QuickTime video is dependent on the speed of the host platform and the quality of the QuickTime video itself. MAE includes the most recent version of the QuickTime Movie Player application.
The MAE user experience is provided by sophisticated technology designed to provide optimum performance of the emulated Macintosh environment in the host system context. This section covers that technology for readers who are interested in understanding how MAE works.
The block diagram below illustrates the principal constituents of the Macintosh Application Environment system architecture. The shading, or lack thereof, indicates the principal sources of the system's components. While this section discusses all of these components in turn, it focuses on the unshaded sections that comprise the heart of the MAE system, namely, support for the UNIX interface and native code acceleration and the Motorola 68K emulator. These are the system elements responsible for integrating the Mac OS with UNIX and for delivering MAE's highly optimized performance characteristics. To provide some context for understanding the relationships between these elements, the following discussion provides an overview of how MAE works within the UNIX environment.
How MAE works
When MAE is launched in a UNIX environment, two UNIX process are started. These processes are called mae and macd. mae is the process attached to the X window containing MAE; it is responsible for providing the "look and feel" of the Macintosh interface. macd is a UNIX demon, an auxiliary process launched by mae to provide services best handled by an independent program.
To UNIX, mae looks like any other X Window System application process that the UNIX scheduler is responsible for managing. MAE is capable of running multiple Macintosh applications, with the ability to switch between them arbitrarily and even to have some of them perform processing in the background. However, because all this occurs within mae, the running Macintosh applications will not appear in a list of UNIX processes. UNIX commands executed from within MAE, on the other hand, are forked directly by the UNIX OS as independent processes, and do appear in UNIX process lists. If the UNIX command is an X Window System client, it creates one or more X windows that are also independent of the MAE window.
MAE contains an implementation of the Macintosh Process Manager. This software manages the loading and unloading of all the Macintosh applications that the MAE user may execute. Memory space for use by the Process Manager is made available by the mae process at initialization. The default size of the memory region is 16 MB, but the user can expand it either by using the memory command line option to the mae command or by using the MAE Memory control panel from within MAE.
The configured memory size is directly analogous to the physical memory that would be present in an actual Macintosh computer and determines the maximum size and number of Macintosh applications that MAE can run at a single time. While the standard UNIX features of process memory protection and preemptive multitasking guarantee the integrity of other UNIX processes running on the same workstation as MAE, the Macintosh applications running within MAE all share a common memory region and must adhere to the cooperative multitasking paradigm that is required of all Macintosh applications.
Irrespective of whether MAE is executing Macintosh system or application code, all the executed commands are converted to the underlying, or "native," RISC code by means of 68K emulation. Some code blocks are translated to native code automatically by dynamic compilation. Other code blocks take advantage of manually entered native code patches. And some commands are converted to UNIX system calls which are then executed by the native UNIX OS.
Macintosh 680x0 Applications
At the top of the MAE architecture, the user interacts with software applications designed to run on Macintosh computer systems based on Motorola 680x0 microprocessors. MAE provides the underlying technology that allows application processes designed for a 680x0 Macintosh to run smoothly in the MAE environment, even though the host system is running a UNIX X Window System environment.
Macintosh Toolbox and ROM-based Functionality
Applications take extensive advantage of the Macintosh Toolbox and ROM-based functionality, present in the layer below them. This functionality includes, for example, support for graphics (QuickDraw) and the Macintosh windowing system, files system management and support (the Finder), I/O management, the Macintosh Process Manager, etc.
Three examples of emulated functionality and Macintosh/UNIX integration made available to Macintosh applications by this level of the MAE architecture are the Finder, emulated Macintosh graphics, and color flash reduction, which is closely related to the Macintosh graphics subsystem. System components within this layer interact with the OS Interface via the 68K emulator.
The Macintosh Finder provides an intuitive approach to file system management and support. Within MAE, it interacts with the UNIX OS interface emulator to provide similar support for both Macintosh and UNIX file systems in the emulated Macintosh environment. By masking much of the complexity associated with navigating the native UNIX file system, the MAE Finder potentially provides a significant productivity enhancement to the UNIX workstation user.
MAE Graphics Support
Because the UNIX workstation has no physically Macintosh compatible video card or monitor, MAE must simulate this hardware in order to emulate Macintosh software support for graphics within the X Window System environment. In version 3.0, this simulation has been vastly improved by using parallel processes and server based image caches. Together, these approaches result in significant new efficiencies.
To accomplish the hardware simulation, MAE takes advantage of the fact that virtually all Macintosh applications make calls to the Macintosh graphics standard (called QuickDraw) for their graphics operations. The system creates a virtual Macintosh monitor, a frame buffer, and whenever an application makes a QuickDraw call, QuickDraw updates the virtual monitor and tells mae which part of the frame buffer changed.
In previous versions of MAE, the modified portion of the frame buffer was passed to the X Window System to send the graphics to the X Server. In version 3.0, however, rather than passing the frame buffer to the X Window System, mae converts the changes to appropriate xlib calls and simply sends these calls to the server (Path 2 in the diagram below). The frame buffer is referenced only in extraordinary cases, such as when the MAE X window is uncovered (Path 1 in the diagram below). This approach results means that graphics display in MAE version 3.0 requires only about ten percent of the bandwidth required by the same function in version 2.0. This savings is especially important when there is heavy MAE use over a network, and such usage is far more likely given the floating license policy newly available in version 3.0.
In addition to more optimal bandwidth utilization, the MAE version 3.0 image pipeline incorporates other improvements. Chief among these is the caching of glyphs and icons on the server.
Mac OS Colors*
"Color flash" refers to the display of unexpected colors and a screen flash that happens when the cursor is moved among X Window System applications with different color tables. It occurs when the hardware cannot support the number of colors that must be displayed concurrently, as sometimes happens when running an X Window application that uses its own color table.
Many X Window systems can have only one color table active (that is, actually installed into the hardware color table) at a time. Applications like MAE that use a color table other than the X Window default color table, display the unexpected colors characteristic of color flash when the active window is changed.
The Mac OS Colors option works by using a patent-pending algorithm that attempts to keep the color definitions in its own color table in synchronization with the default color table. By default, the algorithm maintains a "best possible match" to the X Window color table on an ongoing basis. However, this feature also supports an Exact option which replaces the X Window color table with the appropriate Macintosh application color table. The Exact option is intended for use primarily with color-intensive applications.
SuperSelect provides the foundation for the MAE toolbar's Select from Screen tool. It is a platform-independent, patent-pending algorithm that permits capture of an arbitrary rectangular section of a computer screen. Basically, SuperSelect works with different pixel resolutions and color maps by normalizing the selected region with respect to the MAE color map, and placing a snapshot of the normalized region into a buffer with 24-bit color resolution.
Macintosh/UNIX Scaffolding and OS Interface
This component of the MAE architecture supports the seamless integration of the Macintosh and UNIX environments. In addition, it contains the manually identified and defined native code patches that are equivalent to code blocks frequently encountered in standard Macintosh system and applications code. These native code patches are permanently installed at system start-up time, and help provide the performance optimizations found in MAE. This component also provides the mechanism by which key Macintosh operating system calls are converted to their UNIX equivalents.
The Macintosh 68040LC Emulator
MAE offers broad application compatibility due to its state-of-the-art Motorola 68040LC emulator. Advances in the emulation technology have vastly increased the performance speed of Macintosh applications running in the MAE window. This emulator technology handles 680x0 (68k) instructions initiated by the application by reading the application's 680x0 code and translating these instruction to the equivalent instructions for the host's RISC processor. In essence, the MAE emulator works as a "virtual Macintosh CPU" on your workstation. Macintosh applications that use 68K code operate in the virtual CPU and behave as though they were running on a native Macintosh CPU. This emulation is transparent to both the application and the user.
In addition to the instruction translation that is normal in emulated environments, MAE incorporates two patent-pending state-of-the-art features that together serve to greatly enhance emulator performance:
- Dynamic Compilation.Dynamic compilation refers to a process by which frequently
traversed blocks of 68K code are automatically identified, translated to their native
equivalents, and linked into the emulator's translation table, obviating the need for
instruction-by-instruction processing when these blocks are subsequently encountered.
Dynamic compilation delivers enormous performance enhancements by:
- Eliminating dispatch loops for instructions contained with dynamically compiled blocks,
- Eliminating the need for unused condition code calculations, and
- Increasing the localization of the instructions within the host system's cache.
Dynamic recompilation represents a major way in which MAE is optimized to take advantage of the workstations RISC architecture.
- Reduction of Memory Footprint.Within Macintosh system and applications code, there
are instructions and sequences of instructions that are effectively identical except for the
references of their operands. For example, the instructions that result in the addition of the
contents of two registers are all effectively the same, irrespective of which specific
registers they refer to.
To reduce the memory footprint of MAE, these redundant blocks of code were eliminated by creating "template" routines that generates variants of these codes during runtime. These templates eliminates pregenerating similar blocks of code and effectively reduce the memory footprint, which increases the performance of MAE during runtime.
The UNIX/X Window System Platform
Accessed primarily via the OS interface, the UNIX/X Window System platform, the part of the MAE architecture provided by the workstation vendor, is principally responsible for providing file system and networking support.
MIVs and File System Management
MAE maps file activities from within MAE to standard UNIX file-manipulation routines, and displays all effects in standard Macintosh fashion within the MAE window. The new Multiple Independent Volumes (MIVs) feature provides several improvements that make using MAE more Macintosh-like in how it presents the UNIX file system, especially home directories and remote file systems.
With MIVs, users can define any UNIX file system, directory or subdirectory as an independent volume on the Macintosh desktop. There are two types of MIVs:
- Static MIVs. Defined by the system administrator or the end user, static MIVs appear on the Macintosh desktop at system startup time. By default, each user has one static MIV which is his or her UNIX home directory.
- Dynamic MIVs. Dynamic MIVs are automatically mounted by the system whenever an MAE user crosses a file system mount point. For example, if a user accesses a remote host, then that host's file system appears on the MAE desktop as a new volume. In short, dynamic MIVs allow UNIX remote file systems to behave very much like AppleShare volumes.
Another way in which MAE version 3.0 is more Macintosh-like than its predecessors is in its handling of UNIX symbolic links. In version 3.0, these links appear as Macintosh aliases. In addition to being more Macintosh-like, this handling prevents looping from occurring within a given file system during operations such as Find File and desktop rebuilds. Loops can occur because Macintosh operations assume a strictly hierarchical directory tree without cycles, and UNIX symbolic links can introduce cycles into the hierarchical structure.
In version 3.0, filesharing stops when a symbolic link pointing outside a shared directory is encountered. Finally, version 3.0 improves NFS compatibility by allowing users to automount file systems simply by double clicking on aliases. These automounted volumes then appear on the Macintosh desktop as MIVs.
UNIX enforces access permissions for files and directories. MAE uses these underlying UNIX permissions and maps them to semantically correct Macintosh privileges. To accommodate permission differences for file operations, the MAE Finder File menu includes a new menu item: UNIX File Permissions. MAE presents the user with the actual UNIX permissions using the Macintosh interface.
All files and folders created within MAE receive default UNIX permissions. In MAE, users can view UNIX permissions but cannot change them unless they have the necessary UNIX privileges. UNIX File Permissions allows users to set appropriate permissions, as shown in the following illustration.
In MAE version 3.0, these security provisions are further augmented by new file sharing security features available to system administrators. These new features make inter-MAE file sharing more amenable to UNIX security procedures. By using them, system administrators can disable all file sharing between MAE users if they so desire. By default, the system allows users to share directories they own. And if a system administrator wants, the environment can be configured to support sharing of any visible directory, in conformance with the Macintosh standard. Suboptions include the ability to prevent users from granting guest access and the ability to prevent sharing users from seeing an entire disk.
Networking Services: AppleTalk and MacTCP
- AppleTalk. AppleTalk for MAE 3.0 consists of two parts: an emulated part that works
with Macintosh 68k system calls and a native part that integrates into the host system
kernel. Together these components act as an interpreter between the MAE emulation layer
and the underlying UNIX system. Because most AppleTalk connections take place within
the Chooser, selecting a printer or file server over the network is virtually identical to
selecting such devices when they are directly connected to a standard Macintosh
computer. Details on supported features are in the AppleTalk Support section of this
AppleTalk for MAE maintains the Macintosh Toolbox APIs as described in Inside Macintosh: Networking. The integration of AppleTalk into the underlying UNIX system takes place using a number of protocols that correspond to the layers of the ISO OSI model.
For example, at the Physical Layer, MAE uses the networking hardware (such as Ethernet or FDDI) provided as standard equipment in supported workstations. At the Data Link Layer, AppleTalk's Link Access Protocol provides data link access control, packet transmission/reception, and addressing capabilities. MAE 3.0 supports the EtherTalk Link Access Protocol (ELAP), which provides AppleTalk connectivity over an Ethernet data link. And at the Network Layer, the Datagram Delivery Protocol (DDP) offers "best effort" socket-to-socket datagram delivery over an AppleTalk internet. AppleTalk for MAE uses UNIX Streams to configure these protocols into the UNIX kernel. (Solaris includes Streams, and HP-UX release 10.x includes STREAMS/UX. MAE includes STREAMS/UX for use with HP-UX 9.0.x.)
Once installed on a workstation, AppleTalk allows the supported workstation to function as an independent node on an AppleTalk network. All AppleTalk services function just as they do on a Macintosh computer. Each individual resource, a file server or a printer, for example, appears as a simple named entity. To change networks where there are several interfaces, the user selects an interface using the Network Control Panel which is depicted below.
- MacTCP. MacTCP is a software driver and API that implements the TCP/IP protocols
within the Macintosh operating system, allowing the user to make use of utilities such as
Telnet or Fetch. On a Macintosh computer, the user controls MacTCP using the MacTCP
control panel. On MAE, however, the TCP/IP protocols are implemented through the
UNIX interface, and the MacTCP control panel simply displays the IP address. Since
MAE supports the MacTCP API, Macintosh applications using MacTCP function just as
on a real Macintosh.
NFS Heartbeat offers a way to break out of hung system calls to ensure that MAE will continue running even when trying to access an inaccessible server. For example, before the implementation of this feature if an NFS server is hard-mounted and a user tried to access this server, the MAE process would previously have blocked indefinitely, leaving the user without the ability to back out of the operation. With NFS Heartbeat, MAE 3.0 can detect this condition, and return control to the user.
In essence, NFS Heartbeat works by sending signals to the macd helper process in the UNIX system. If MAE stops sending signals to the helper because of a system hang-up, the helper automatically sends a signal to break out of the hung system call. The system stack is unwound to the point where the system was hung up, MAE continues to work gracefully, and the user is able to continue working without needing to reboot.
System Administration for MAE
To ensure that network users are able to make full use of the new features of MAE 3.0, system administrators need to address a number of issues concerning performance, compatibility, and administration. Major features such as AppleTalk and MacTCP mean that MAE users are able to navigate the network with increased ease, and system administrators can make access to the network even easier for MAE users by configuring the appropriate network services.
Installing MAE on the system
Individual users can install the Macintosh Application Environment on their workstations using the MAE Installer. The installer is a powerful, yet easy-to-use, installation utility designed to meet the needs of both novice and expert users. If users select the Easy Install option, they only need to answer three questions before the Installer begins to copy files to the workstation. If a user is uncertain how to respond to an Installer question, the Installer provides context-sensitive, on-line help. Please note that AppleTalk installation requires root access to the workstation. If a user does not have such access, than he or she may request that a system or network administrator install AppleTalk.
Requirements for running MAE
The following resources are required to run MAE on a Solaris SPARC or an HP-UX system:
- A UNIX workstation that supports MAE (see below for supported configurations)
- A minimum of 39 megabytes (MB) of free disk space. (To install the entire MAE package, including AppleTalk, the on-line documentation, and the demonstration applications, requires approximately 75 MB of total disk space.)
- A minimum of 32 MB of RAM (48 MB recommended)
- An X Window server, Version 11, release 5 or beyond
- The Macintosh Application Environment CD-ROM or the same content downloaded from the MAE Web site
- A CD-ROM drive, or access to one over a network (if installing from a CD-ROM)
- A PostScript-compatible printer or an AppleTalk printer, if printing from MAE is desired
- A FLEXlm license key (instructions for obtaining a full license key are included with the
product), and a demo license key can be obtained from the MAE Web site,
For Solaris users:
- SPARC system running Solaris SPARC 2.4 or later.
For HP-UX users:
- HP 9000 Series 700 running HP-UX version 9.0.x, or HP-UX 10.10 or later.
- STREAMS/UX installed first if the user plans to access AppleTalk. (STREAMS/UX is included with MAE for AppleTalk support on HP-UX 9.0.x.)
- The Hewlett-Packard Audio Server, if audio output is desired.
Although MAE will run on any workstation equipped with the minimum hardware and software requirements, the following platforms are recommended for best performance:
- SPARCStation 10/51, 5, 20, or faster.
- HP 712, 715/100, or faster.
Compatibility and licensing
MAE 3.0 is compatible with the Macintosh System 7.5.3. Floating license administration is provided by inclusion of FLEXlm in MAE. To provide maximum flexibility for system administrators, all MAE 3.0 licenses are floating licenses. For additional information, please see the Macintosh Application Environment 3.0 System Administrator's Manual.
Improving performance when running MAE
System administrators should note the following tips for maximizing MAE performance:
- Put the System Folder on the local machine. The MAE Finder and Macintosh applications use resources from the System Folder frequently. If a user's System Folder is on a remote machine, recommend that he or she move the System Folder to the local machine.
- Set the Finder Window Update option to a high value. The Finder Window Update option in the MAE General control panel determines how often the Finder checks for new files that were created outside of MAE. For example, if you created a text file in your home directory (using a utility such as vi), and your home directory was open in MAE, you wouldn't see that file until the next Finder check occurred. If you do not need frequent Finder checks, you can improve performance by setting this number to a high value (such as 120 seconds) and turning off Finder Window Update when the Finder is in the background.
- Run fewer copies of MAE. The more copies of MAE running on a single workstation, the slower each copy will be. You might want to try running MAE locally even if the local machine is typically slower than the remote machine.
- Run in a small memory partition. Use the minimum amount of memory needed to run desired applications, by using either the -memory command-line option or the Memory control panel.
- Leave "Mac OS Colors" option in its default setting: "Approximate". This prevents MAE from allocating extra memory for a graphics buffer.
Configuring non-Macintosh hardware
Because MAE runs on non-Apple hardware, it provides alternate ways to configure various keyboards, mouse devices and monitors. For example, UNIX workstation keyboards do not have an equivalent to the Macintosh Option and Command keys. MAE supports system configuration utilities that allow the user to configure non-Macintosh hardware for Macintosh applications.
Customizing the keyboard
Each UNIX vendor supports its own family of keyboards. Although USA keyboards for MAE-supported UNIX platforms are comparable in layout to standard Macintosh keyboards and to each other, some international keyboards for MAE-supported workstations are significantly different in layout from international Macintosh keyboards. In many cases, the key sequences these keyboards use to input accented and other special characters are different as well.
The MAE Keyboard control panel provides a key-mapping function that retains as much of the UNIX keyboard mapping as possible, while at the same time offering Macintosh keyboard functionality. The result is that the workstation keyboard still behaves as the user expects when operating under the UNIX operating system, but it also allows the user to input characters required under Macintosh conventions.
UNIX keyboards support a mouse with three buttons, whereas the Macintosh mouse supports only one. When a user is working within the MAE, the left mouse button acts as the Macintosh mouse button. The user performs all mouse actions within MAE (eg., pointing, selecting, clicking, shift-clicking and dragging) with the left mouse button. Please note that the right mouse button activates the Toolbar menu.
When the user moves the mouse pointer out of the MAE window and into the UNIX environment, the mouse automatically reverts back to standard UNIX behavior, supporting three active buttons.
Resizing Windows and Changing Screen Bit-Depth
MAE considers the X window in which it is located to be identical to the physical monitor of a Macintosh computer. Users can dynamically resize the MAE window just as with any other X window. Users can also resize the MAE window through the Monitors control panel, the Monitor Resolution control strip module, or by using a command-line size option at MAE startup time.
Users can specify a default MAE monitor size that matches one of Apple's standard monitor sizes, or they can enter custom dimensions.
Users can also change screen bit-depth using the Monitors control panel or the Monitor Bit Depth Control Strip module. The Macintosh Application Environment provides a full range of black-and-white, greyscale, and color configurations. Grayscale is available in 256 levels. MAE allows workstations with 24-bit graphics frame buffers to display millions of colors.
Configuring AppleTalk for MAE
AppleTalk for MAE 3.0 is an implementation of the AppleTalk protocol specification, based on UNIX Streams, which makes AppleTalk functionality available to Macintosh applications and Mac OS system software running under MAE. Streams must be installed before AppleTalk for MAE can be used. Streams is part of the standard Solaris and HP-UX 10 distribution. STREAMS/UX is provided with MAE for AppleTalk support on HP-UX 9.0.x.
The AppleTalk for MAE implementation consists of two pieces: An emulated portion and a native portion. System administrators should note that the native portion of AppleTalk for MAE is a UNIX Streams stack that must be configured into the kernel. (For detailed information about configuring AppleTalk for MAE into the kernel, refer to the Macintosh Application Environment 3.0 System Administrator's Manual provided with MAE.)
There is essentially no difference in system administration between AppleTalk for MAE and AppleTalk for the Macintosh. The administrator needs to define AppleTalk zone names. Typically, zones are selected dynamically when a printer or Macintosh computer is connected to the network, or selected explicitly using the Network Control Panel.
Apple will be responsive to market requirements for MAE features and platforms, and is committed to further support and development of the product. In addition to the possible extensions listed below, Apple will continue to refine MAE technology for the enhancement of existing features.
The following areas are being considered for future releases of MAE:
- Support for additional UNIX systems
- Support for additional hardware platforms
Apple is also investigating the viability of supporting Power PC Macintosh applications on MAE. Apple wants to ensure that the performance of RISC-on-RISC emulation will meet customer requirements before committing to this development effort.
Apple is committed to extend the benefits of the Mac OS and Apple's System Software Technologies to a much wider audience. Through the concept of "Open Innovation," Apple is forming industry alliances and partnerships to establish new vendor-neutral standards, adopting prevailing industry standards, implementing key Apple technologies cross-platform, and openly licensing the Mac OS.