• MacTech Network:
  • Tech Support
  • |
  • MacForge.net
  • |
  • Apple News
  • |
  • Register Domains
  • |
  • SSL Certificates
  • |
  • iPod Deals
  • |
  • Mac Deals
  • |
  • Mac Book Shelf

MAC TECH

  • Home
  • Magazine
    • About MacTech in Print
    • Issue Table of Contents
    • Subscribe
    • Risk Free Sample
    • Back Issues
    • MacTech DVD
  • Archives
    • MacTech Print Archives
    • MacMod
    • MacTutor
    • FrameWorks
    • develop
  • Forums
  • News
    • MacTech News
    • MacTech Blog
    • MacTech Reviews and KoolTools
    • Whitepapers, Screencasts, Videos and Books
    • News Scanner
    • Rumors Scanner
    • Documentation Scanner
    • Submit News or PR
    • MacTech News List
  • Store
  • Apple Expo
    • by Category
    • by Company
    • by Product
  • Job Board
  • Editorial
    • Submit News or PR
    • Writer's Kit
    • Editorial Staff
    • Editorial Calendar
  • Advertising
    • Benefits of MacTech
    • Mechanicals and Submission
    • Dates and Deadlines
    • Submit Apple Expo Entry
  • User
    • Register for Ongoing Raffles
    • Register new user
    • Edit User Settings
    • Logout
  • Contact
    • Customer Service
    • Webmaster Feedback
    • Submit News or PR
    • Suggest an article
  • Connect Tools
    • MacTech Live Podcast
    • RSS Feeds
    • Twitter

BE OUR GUEST

SYSTEM ENABLERS

C. K. HAUN

[IMAGE 107-108_Guest_col_rev1.GIF]

System 7.1 introducedsystem enablersto Macintosh system software architecture. Since their introduction on some of Apple's new machines, there's been some confusion about what system enablers are for, and developers have expressed interest in writing and using them. This column will shed some light on the subject.

THE BAD NEWS
Even before beginning to describe them, we have to emphasize that system enablers aresystem software,designed and intended solely for the use of Apple Computer. Detailed descriptions of their design and use will not be released. Their functionality and implementationwillchange; any developers who try to decipher enablers and implement their own are warned that they will fail in future system releases. Donot write your own enabler or modify a current one!

Kinda harsh, huh? But we really mean it: the functionality of system enablers makes sense only for system software. Also, modifying or creating an enabler without fully understanding how one works could cause the enabler mechanism to fail silently. This could result in a machine that appears to be working correctly but does not have the full enabler functionality active, causing very hard-to-isolate crashes or other problems.

OK, SO WHAT ARE THEY?
System enablers (which were called "gibblies" in early documentation and system development releases) replace the release strategy that Apple used in the past for minor system changes needed for new hardware. The old strategy was to release a new version of the system software, such as version 6.0.8 or 7.0.1. With enablers, the differences in hardware no longer require a new system release, but instead each new machine has its own enabler (if necessary) to make the system work for that hardware.

This change was made for two reasons:

  • Creating an enabler instead of a whole new system release reduces Apple's quality assurance and testing time. By creating an enabler, we're testing new code only on new machines; past machines aren't affected since the new enabler won't run on those machines. This also reduces your testing time as a third party, since you no longer have to install a new system release on all your older machines and test for compatibility; you know the system changes will affect only the newly released machines.
  • Enablers reduce user confusion and unnecessary upgrades. In the past, every time a machine was released, with its corresponding new software release, users of older machines were unsure whether they needed to upgrade to the new system. Many assumed that since it was newer, it was better. While this has been true occasionally, it usually isn't (upgrading from 7.0 to 7.0.1 on a Macintosh IIcx, for example, gives the user nothing new).

Apple will continue to use system extensions or components when new functionality is being added across the product line, as with QuickTime and Macintosh Easy Open. Enablers just broaden the range of options for enhancing the user's environment.

HOW DO THEY WORK?
Nope, no cheating -- we really won't be describing the internals of enablers. But here are some general rules about their behavior.

An enabler is essentially an extension to the System file; from a programmatic standpoint itis the System file. The Resource Manager was changed slightly to recognize references to the System file (CurResFile(0), for example) as being references to the System fileandthe current enabler. The code or other resources included in the enabler file appear to actually reside in the System file.

Any new machine may have a system enabler. The enabler will contain the system-level code necessary to implement changes required for that machine. A single enabler may be used for a family of machines, or a separate enabler may be created for each new machine.

If there are multiple enablers in a machine's System Folder, the system will use onlyoneof them. The system software (System file plus enabler) is responsible for arbitrating which enabler is used on a specific machine. It looks at the machine type it's currently running on, the machines that the enabler supports, and some enabler-internal applicability flags. Note that this is how the decision is currently made; as enablers are used for more machines and in different situations, more variables may be added to the decision process.

ENABLERS AND REFERENCE RELEASES
A specific enabler may not stay around forever. Apple has announced its intention to have "reference releases" every year to 18 months; these are the system upgrades that all users will be encouraged to install. Some enablers may be rolled into a reference release, so a machine that needed an enabler for System 7.1 may not need one for System 8. This is not a hard and fast rule; some enablers may stay around forever, depending on the functionality they enable.

THE BOTTOM LINE
System enablers make everyone's life easier by encapsulating system changes for new machines in one place. But they are not for non-Apple use, and developers cannot implement them with any hope of long-term success. The safest path to take is not to think of enablers as separate files. An enableristhe system; when you encounter one on a machine, you're looking at the System file. The traditional methods (INITs, cdevs, components, and so on) are still the only supported ways for developers to extend system functionality.

GIBBLY HISTORY

BY CHRIS DEROSSI
When system enablers were being designed, it was clear they were going to be a mechanism for extending the system. Engineers began calling them INITs, since they served much the same purpose. This caused some confusion with people who thought we really were talking about INITs, and issues were raised about possible conflicts with other INITs, loading order, and so on. (These issues don't apply to system enablers at all.)

It was obvious to me that we needed to change the name to differentiate system enablers from other types of system extension mechanisms. We couldn't use the term extension because that was the public name for INITs. We couldn't use addition because that term already referred to things like QuickDraw GX and AOCE.

So, I decided to use a made-up word. I wanted a word that would be memorable and one that would sound funny when used in all seriousness by executives and upper management. Hence the name "gibblies."

The engineering documentation for gibblies states that the singular is "gibbly" and the plural is "gibblies." It also states that the "g" may be pronounced hard or soft depending on the speaker's preference. In practice, the hard form (as in "give") became the one used by those in the know.

There you have it. And, yes, it was very amusing to hear the made-up word being used all over the company in serious conversation.

K. HAUN works in Apple Developer Technical Support, where he is the perennial winner of the coveted "Most Documentation Heaped on the Floor" award. Before coming to Apple he was a commercial developer, writing educational, game, and utility software on Macintosh, IBM, and Apple II platforms. His main focus in DTS is interapplication communication and application toolbox support. He's also single again; please see ad #298700 in the personal ads section of this issue.

We welcome guest columns from readers who have something interesting or useful to say. Send your column idea or draft to AppleLink DEVELOP or to Caroline Rose at Apple Computer, Inc., 20525 Mariani Avenue, M/S 75-2B, Cupertino, CA 95014.*

Thanks to Chris Derossi, Greg Marriott, and Dean Yu for reviewing this column. *

 
MacTech Only Search:
Community Search:

 
 
 

 
 
 
 
 
  • SPREAD THE WORD:
  • Slashdot
  • Digg
  • Del.icio.us
  • Reddit
  • Newsvine
  • Generate a short URL for this page:



MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797
MacTech is a registered trademark of Xplain Corporation. Xplain, "The journal of Apple technology", Apple Expo, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, Apple Expo, MacTech Central, MacTech Domains, MacNews, MacForge, and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.
All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
 
Nov. 20: Take Control of Syncing Data in Sow Leopard' released
Nov. 19: Cocktail 4.5 (Leopard Edition) released
Nov. 19: macProVideo offers new Cubase tutorials
Nov. 18: S Stardom anounces Safe Capsule, a companion piece for Apple's
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live
Nov. 17: Ableton releases Max for Live