Macintosh Application Environment 2.0 - White Paper
Macintosh Application Environment 2.0
The virtual Macintosh for open systems
- 1 Overview
- 2 The User Experience
- 2.1 Launching MAE
- 2.2 Using the MAE Toolbar
- 2.3 Configuring MAE for the UNIX Environment
- 2.4 Installing Macintosh applications
- 2.5 Opening UNIX files
- 2.6 Launching commands and programs
- 2.7 AppleTalk support
- 2.8 Support for sound and QuickTime
- 3 MAE Architecture
- 3.1 How MAE works
- 3.2 Macintosh 680x0 Applications
- 3.3 Macintosh Toolbox and ROM-based Functionality
- 3.4 OS Interface and Native Code Acceleration
- 3.5 The Macintosh 68040LC Emulator
- 3.6 The UNIX/X Window Platform
- 4 System Administration for MAE
- 4.1 Installing MAE on the system
- 4.2 Requirements for running MAE
- 4.3 Compatibility and licensing
- 4.4 Improving performance when running MAE
- 4.5 Configuring non-Macintosh hardware
- 4.6 Configuring AppleTalk for MAE
- 5 Future Directions
- 6 See Also
Users of RISC-based workstations running UNIX traditionally enjoy the performance benefits of UNIX, which supports tools that are well-suited to technical, scientific, or other computationally intensive jobs. However, these users also need to perform jobs such as desktop publishing, spreadsheets, word processing, email, 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 standard UNIX® X Window.(TM) 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 Window 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 2.0 is the most recent release of the Macintosh Application Environment. It incorporates several new enhancements and productivity features along with significantly improved performance. Beginning with the User Experience, this paper provides an survey of MAE while focusing on the new features supported in MAE version 2.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(TM) OS on their UNIX workstations. MAE does this by providing the Macintosh System 7.1 environment in an X Window. In addition, MAE offers several useful Macintosh System 7.5 features (as described in the section entitled New features of MAE version 2.0). 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 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 4 or 5. (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, including Motif(TM), HP VUE,® and OPEN LOOK,® and follows the standards defined by the Interclient Communications Convention (ICCCM). As the only Macintosh environment for UNIX workstations that is officially developed, supported, endorsed and sanctioned by Apple Computer, MAE is the best performing, most compatible UNIX-based Macintosh emulator currently available.
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 competing technology.
- Copy-and-paste of text and graphics. Allows you to transfer text and graphics between MAE and other X Windows via the copy-and-paste tools in the MAE Toolbar.
- Drag-and-drop 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, the X window displays a list of the files in that directory.
- Support for NFS and AFS. MAE supports both NFS and AFS (Andrew File System 2.4) 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.
New features of MAE version 2.0 provide the following additional benefits.
New features of MAE version 2.0
- AppleTalk for MAE. System administrators can now help users gain access to network resources more easily using AppleTalk networking capabilities. With the AppleTalk protocol, designed and developed by [[Apple Computer]], users have a simple method to access printers, file servers, or other AppleTalk-enabled computers on the network using the Chooser.
- Improved speed and performance in a smaller amount of memory. MAE version 2.0 takes advantage of two technological breakthroughs - dynamic compilation and code block templates - to obtain optimal emulator performance while consuming a minimal amount of memory. These techniques reduce system overhead and increase speed by allowing MAE to identify sections of MacOS and applications code that are translated to native code, and run directly as native code on the underlying RISC architecture.
- MacTCP support. MacTCP is the Macintosh implementation of the TCP/IP networking protocol, which gives users access to the Internet as well as TCP/IP-based utilities such as Fetch and Telnet.
- Sound Manager. Controlled by the Sound control panel, the MAE Sound Manager supports all standard sounds supported by the Macintosh computer.
- Dynamically resizable MAE window. Users can dynamically resize the MAE window using the Monitors control panel in MAE or the workstation's X Window size controls.
- Finder Window Update. Finder Window Update helps to reduce MAE overhead on the host system (for additional details, please see the section entitled Configuring MAE for the UNIX Environment).
- Cycle saving via Processor Slowdown. Processor Slowdown also helps to reduce MAE overhead on the host UNIX system (for additional details, please see the section entitled Configuring MAE for the UNIX Environment).
- Temporary Installer Volume (TIV). TIV is a utility that facilitates installation of Macintosh productivity applications in the UNIX host system (for additional details, please see the section entitled Configuring MAE for the UNIX Environment).
- NFS Heartbeat. An important enhancement for improved NFS robustness, NFS Heartbeat provides a mechanism by which to break out of "hung" network system calls. These calls can hang when MAE attempts to access an inaccessible NFS-based file server.
- Productivity features from Macintosh System 7.5. MAE 2.0 enhancements
from System 7.5 include:
- Launcher. The Launcher control panel permits users to launch an application with a single click of a mouse button by selecting from lists of their most frequently used applications.
- Stickies. Allows users to create electronic "sticky notes" and place them anywhere in the MAE window.
- Improved desktop patterns. The Desktop Patterns control panel has been expanded to provide more colorful and textured Desktop patterns. Users can also create their own custom Desktop patterns by copying and pasting graphics into the control panel.
- Find File. This expander Finder utility lets users quickly search hard disk drives or file servers for a desired file.
- WindowShade. Allows users to shrink a window in MAE to just its title bar or re-expand it with two or three clicks of the mouse.
- Extension Manager. The Extension Manager control panel lets users enable or disable Macintosh control panels, extensions, and INITs in MAE.
On which systems does MAE run?
The Macintosh Application Environment 2.0 currently runs on UNIX platforms from Hewlett-Packard (HP-UX® 9.01, 9.03, and 9.05) and Sun Microsystems (Solaris® 2.3 or 2.4). See the section System Administration for MAE for more detailed system requrements.
The User Experience
What is it like to use MAE version 2.0 on a UNIX workstation? The short answer is: Almost exactly the same as using 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 Macintosh User's Guide (part number 030-2651-B).
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. This difference arises repeatedly under various guises in the sections that follow.
Once MAE has been properly installed on a UNIX workstation (see the System Administration section for more information on installing MAE), 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 set up these alternatives to the command-line launch procedure.
When MAE is launched, an X Window with a Macintosh interface appears. Typically, the MAE interface will look like this:
The MAE window by default is set at a size of 640 x 480 pixels, which is equivalent to a Macintosh 14 inch screen. As noted above, this size can be dynamically adjusted. The principal visual difference between the MAE window 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 cursor is positioned within the MAE window. The Toolbar can optionally be hidden by means of the Hide Toolbar option in the Toolbar pop-up menu.
The interactions controlled by the MAE Toolbar are floppy/CD mounting, capture of screen images, movement of data between MAE and the X Window environment, constrained cursor positioning, and access to MAE Help.
- Mount Floppy/CD. UNIX workstations do not automatically detect that a floppy
disk or CD-ROM disc has been inserted into an appropriate drive. The Mount
Floppy/CD tool allows a user to notify MAE that a floppy or CD-ROM has been
inserted. If MAE finds an initialized high-density floppy or a CD-ROM when this
button is clicked, MAE mounts it and the appropriate icon appears on the
- (select button)
- 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 positioning the pointer in the document window and choosing Paste
from the Edit menu.
- (export button)
- Export to X and Import from X. These commands facilitate the
interchange of data between X Window and Macintosh application documents. For
example, to import text or graphics from an X Window 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
- Contain Cursor. The Contain Cursor tool prevents you from moving the
cursor outside the MAE window. This feature is particularly useful when you
intend to work extensively within that window, and do not want to inadvertently
inactivate the window since this could result in the disappearance of the MAE
window behind other active X windows.
- 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 interacting 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. MAE General controls allow you to configure several performance attributes and operations between MAE and the UNIX system.
The MAE General control panel supports:
- Finder Window Update. Ideally, 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 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 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.
- Color flash reduction. This patent-pending MAE feature reduces the "flash" that occurs when the cursor moves between UNIX and Macintosh environments that are using different color tables. When this option is active, MAE attempts to maintain consistency between its color and that of the X Window environment. When the option is off, the default colors used by MAE are the same as those used on a standard Macintosh. Color flash reduction is most useful when using a color-intensive application.
- Temporary Installer Volume (TIV). A utility that creates a virtual Macintosh disk within the UNIX file system, the TIV is 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. This utility allows the application to be installed to the TIV, and then moved to an appropriate place within the UNIX file system.
- 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 Macintosh applications. MAE supports several techniques for 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. 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, do not let you specify an installation destination. These installers will probably attempt to install in the UNIX system's root directory. In such cases, installation may not succeed because there is often not enough room in the root directory, even if there is enough room elsewhere on the drive. When this happens, the best approach is to install on a Temporary Installer Volume. [NOTE: Any installation will fail if there really is not sufficient room for the application on the destination drive.]
Installing with the Temporary Installer Volume
A TIV is a virtual hard disk - a file on the UNIX file system that mimics a Macintosh hard disk. When using the TIV feature, you create a Temporary Installer Volume approximately the size of the application you are installing. You then install the application to the TIV, and then can move the installed application to the desired location in your file system.
Installing by copying from a Macintosh computer
You can also copy application files from a Macintosh computer directly to MAE using a network server or floppy disks. The network server provides a particularly fast and easy way to copy an application to the MAE environment, since you can use the Chooser to select a Macintosh file server on the network. The file server appears as a hard disk icon on the MAE desktop; you copy the application to your system just as if the file server were a hard disk attached to your system.
Opening UNIX files
You can use MAE to open UNIX documents, run UNIX commands, and launch X applications. In most cases, you can double-click a file icon or a UNIX command icon. Document files appear in the terminal window in the default text editor; if you double-click a UNIX command icon, the results of the command appear in the terminal window.
Launching commands and programs
As discussed above under 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 File Launching control panel so that it displays the icons of the most frequently used programs. To launch a file, you simply open the File Launching control panel and select from the program icons that have been installed.
AppleTalk support offers a way to connect MAE to a range of system services simply by using the Chooser window to select the required service. When you open the Chooser, you see a window that looks like this:
For information on AppleTalk zones within your network, please consult your System Administrator. Once these zones have been established, connecting to printers and servers through AppleTalk takes only a few mouse clicks.
AppleShare networking links allow you to share your files with other users, link programs for sharing data, share information with a specified group, selectively permit other users to gain access to files you own, and connect to a file server. These links are established using 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, log on to the server, and close the Chooser window.
Connecting to a printer via AppleTalk
The Chooser also lets you select a printer that is connected to the AppleTalk network. Click the appropriate printer icon, then select 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 and close the Chooser window. To print all or part of a document on the selected printer, 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 Print Command to specify the Printer Description (PPD) file that is appropriate for the UNIX PostScript printer you want to use.
Support for sound and QuickTime
MAE 2.0 now 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 3.0 extension. Sound support can be configured through the Sound Manager control panel. MAE 2.0 also supports all of the sound sampling rates available on the host platform. However, sound quality may be degraded at high sampling rates.
Similarly, users of MAE 2.0 can play QuickTime videos inside their MAE window, with the included QuickTime 2.0 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 a 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 MacOS 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, two UNIX process are started. These processes are called mae and macd. The mae process is attached to the X Window containing MAE; it is responsible for providing the "look and feel" of the Macintosh interface. macd is a UNIX daemon, an auxiliary process launched by mae to provide services best handled by an independent program.
To UNIX, mae looks like any other self-contained X Window application that the UNIX scheduler is responsible for managing. Macintosh applications started within MAE appear to be simple subprocesses running within MAE. 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 client, it creates one or more X windows that are 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 executes. 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 8 MB, but the user can expand it either by using the memory command line option of the mae command or by using the MAE Memory control panel from within MAE.
The configured memory size is directly analogous to physical memory 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.
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. Some commands are converted to UNIX system calls which are then executed "native" on the host workstation.
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 an X Windows System environment on a RISC-based microprocessor.
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, file system management and support (the Finder), I/O management and the Macintosh Process Manager.
Macintosh Toolbox and ROM-based Functionality
Three examples of emulated functionality and Macintosh/UNIX integration made available 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 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 Finder in MAE 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 environment. To accomplish this, MAE creates a virtual Macintosh monitor to which applications draw, as illustrated in the figure below.
MAE takes advantage of the fact that virtually all Macintosh applications make calls to the Macintosh graphics standard (called QuickDraw) for their graphics operations. When the Macintosh application makes a QuickDraw call, QuickDraw updates the virtual monitor and tells mae which part of the bitmap changed; mae then makes the appropriate X Window System calls to send the graphics to the X server.
Color Flash Reduction*
"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, which is shared by many other X Window applications, display the unexpected colors characteristic of color flash when the active window is changed. The MAE Color Flash Reduction 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. Basically, the algorithm maintains a "best possible match" color table on an ongoing basis.
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.
OS Interface and Native Code Acceleration
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. The Mac/UNIX scaffolding code 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 68K code and translating these instructions 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 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. In this way, MAE is optimized
to take advantage of the workstations RISC architecture. 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.
- 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 to their operands. For
example, the instructions that result in the addition of the contents of two
registers are all effectively the same, regardless of which specific registers
they refer to.
To reduce the memory footprint of MAE 2.0, these redundant blocks of code were eliminated by creating "template" routines that generates variants of these codes during runtime. These templates eliminate pre-generating similar blocks of code and reduce the memory footprint, increasing MAE runtime performance.
The UNIX/X Window Platform
Accessed primarily via the OS interface, the UNIX/X Window platform - the part of the MAE architecture provided by the workstation vendor - is principally responsible for providing file system and networking support.
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. MAE treats the UNIX file system as a single Macintosh volume, which is considered to be the MAE startup volume. The entire UNIX file system - including local and NFS file systems, as well as Macintosh files - is accessible through standard Macintosh techniques such as click, drag and drop.
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 includes a new menu item: UNIX File Permissions. MAE presents the user with the actual UNIX application privileges using the Macintosh interface. Under UNIX, these permissions are read, write and execute. Under MAE, the corresponding Macintosh permissions are See Folders, See Files and Make Changes.
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. The UNIX File Permissions menu allows users to set appropriate permissions, as shown in the following illustration.
Networking Services: AppleTalk and MacTCP
- AppleTalk. AppleTalk for MAE 2.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. Thus, AppleTalk acts as an interpreter between the
MAE emulation layer and the underlying UNIX system. By using the Chooser to
establish AppleTalk connections, 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.
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 Ethernet hardware 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 2.0 supports the EtherTalk Link Access Protocol (ELAP), which provides AppleTalk connectivity over an Ethernet data link. At the Network Layer, the Datagram Delivery Protocol (DDP) offers "best effort" socket-to-socket datagram delivery over an AppleTalk network. AppleTalk for MAE uses UNIX Streams to configure these protocols into the UNIX kernel. (Solaris includes Streams; MAE includes STREAMS/UX with the HP-UX version of MAE.)
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 Networks Control Panel, which is depicted below.
AppleTalk for MAE relies on the presence of several modified Macintosh extensions and control panels to provide AppleTalk network services. These extensions and control panels are shown below.
- MacTCP. MacTCP is a software driver 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.
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 was 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 2.0 can detect this condition, and return control to the user.
In essence, NFS Heartbeat works by sending signals to a 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 2.0, system administrators need to address a number of issues concerning performance, compatibility, and administration. Major feature enhancements 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
The System Administrator can install MAE on a UNIX workstation either from a network server or locally using a CD ROM drive. Since Apple delivers MAE installer files on CD-ROM, systems that require special authorization to mount file systems will require the system administrator to mount the CD-ROM for the user. Once the CD-ROM file system is mounted on the system, users will generally need to install MAE as root.
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.
Requirements for running MAE
The following resources are required to run MAE on a Solaris or an HP-UX system:
- A UNIX workstation that supports MAE
- A minimum of 16 megabytes (MB) of free disk space. (22 MB are recommended, and 38 MB are required to install the entire MAE package, including AppleTalk, the on-line documentation, and the demonstration applications.)
- A minimum of 16 MB of RAM (24 MB recommended)
- An X Window System server, Version 11, release 4 or 5
- The Macintosh Application Environment CD-ROM
- A CD-ROM drive, or access to one over a network (if one is installing from a CD-ROM disc)
- PostScript-compatible printer or an AppleTalk printer, if printing from MAE is desired
For Solaris users:
- Solaris 2.3 or 2.4
- Volume Manager patch
For HP-UX users:
- HP-UX version 9.01, 9.03, or 9.05
- STREAMS/UX installed first if the user plans to access AppleTalk. (STREAMS/UX is included in the HP-UX release of MAE.)
- The Hewlett-Packard Audio Server.
Compatibility and licensing
MAE 2.0 is compatible with the Macintosh System 7.1. Although many features from System 7.5 have been added to MAE 2.0, as detailed in the section entitled New features in MAE version 2.0, the underlying software is designed for compatibility with Macintosh System 7.1 software.
The MAE License Binder is a utility that makes it easy for system administrators to comply with Apple's End User License Agreement, and to administer these licensing provisions from a central location. The License Binder must be run before users can work with MAE. It can be used to assign a license either to a particular user name or to a particular workstation.
If a license is assigned to a particular workstation, anyone using that workstation can use that installation of MAE, but it cannot be used remotely from another workstation. If a license is assigned to a particular individual, then only that individual can access that installation of MAE locally or remotely.
For additional information on using the License Binder, please see either the MAE User's Guide or the MAE System Administrator's Guide.
Improving performance when running MAE
System administrators should note the following tips for maximizing MAE performance on the workstation:
- Run MAE in black-and-white, when displaying on a remote X server. Because the bitmaps are being sent across the network, using only 1 bit per pixel (black-and-white) is the most efficient way to display the MAE desktop remotely.
- Turn off Color Flash Reduction (in the MAE General control panel), if you are using color. This prevents MAE from allocating extra memory for a graphics buffer.
- Put the System Folder on the local machine, not on a remote volume. 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.
- Run in a small memory partition. Use the minimum amount of memory, by using either the -memory command-line option or the Memory control panel.
- Remove unnecessary fonts. Fonts are contained in apple/Fonts. You may remove fonts you know you won't need, thus saving disk space in every System Folder created.
- 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.
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 (e.g. pointing, selecting, clicking, shift-clicking and dragging) with the left mouse button.
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 like any other X Window - by clicking and dragging the lower right corner of the MAE window. Users can also specify the start-up dimensions of the MAE window through the Monitors control panel. In MAE 2.0, window resizing has been improved so that the window can be resized without requiring a "Macintosh Restart."
Users can specify a default MAE monitor size that matches one of Apple's standard monitor sizes, or they can enter custom dimensions. The following figure shows the Monitors control panel with options selected for custom "monitor" dimensions.
Users can also change screen bit-depth using the Monitors control panel. The Macintosh Application Environment provides a full range of black-and-white 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 2.0 is an implementation of the AppleTalk version 56 protocol specification, based on UNIX Streams, which makes AppleTalk functionality available to Macintosh applications and system software running under MAE. Streams must be installed before AppleTalk for MAE can be used. Since Streams is part of the standard MAE Solaris distribution, it is installed automatically when AppleTalk is installed. STREAMS/UX is provided with the HP version of MAE for HP-UX workstations, and is installed with the AppleTalk kernal.
The AppleTalk implementation for MAE 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 MAE System Administrator's Guide, 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 AppleTalk is initiated by MAE, or selected explicitly using the Network Control Panel. In the Network control panel, the number of zones available is determined automatically during the router set up.
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, although specific features and schedules are not committed at this time.
- System 7.5 compatibility
- Support for additional UNIX systems, such as HP-UX 10.0
- Support for additional hardware platforms
- Client/Server optimization
- Support for OpenDoc
- Floating point support
- Further performance improvements
Apple is also investigating the viability of supporting MAE on Power PC. 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.