*** Welcome to piglix ***

Extension conflict


Extension conflicts were sometimes a problem on Apple Macintosh computers running the classic Mac OS, especially System 7. Extensions were bundles of code that extended the operating system's capabilities by directly patching OS calls, thus receiving control instead of the operating system when applications (including the Finder) made system calls. Generally, once an extension had done what it wanted, it was supposed to pass on the (possibly modified) system call to the operating system's routine. If multiple extensions want to patch the same system call, they end up receiving the call in a chain, the first extension in line passing it on to the next, and so on, until the last extension passes to the operating system. If an extension does not hand the next extension in line what it is expecting, bad things result, ranging from unexpected behavior to full system crashes.

In addition, extensions sometimes competed for system resources with applications, utilities and other extensions, leading to crashes and general instability. Many users happily loaded every extension they could find on their computer, with little or no impact. Others fastidiously avoided any non-essential extensions as a way of avoiding the problem. Others were judicious in the addition of extensions.

This problem increased during the mid-1990s as resource-hungry multimedia technologies such as QuickTime were installed as extensions. In addition, a number of applications, especially Microsoft Office, required a large number of extensions. Many Macintosh users had hundreds of extensions running on their systems, all of varying age and quality. Buggy, damaged and outdated extensions were the most common cause of problems. Some users had to remember to turn off problematic extensions when running certain programs.

Later versions of System 7 included the Extensions Manager, which allowed users to turn off specific extensions or groups of extensions at startup. Conflict Catcher, a third party utility, automatically detected conflicts and problematic extensions, otherwise a time-consuming task that required users to turn off extensions in sets until they found the conflict. Extensions were only loaded at startup time, meaning that any attempted change required a reboot.


...
Wikipedia

...