Введение

Конфликты расширений нередко были распространенной проблемой на компьютерах Apple Macintosh, работающих под классической ОС Mac, особенно System 7. Расширения представляли собой пакеты кода, расширяющие возможности операционной системы путем непосредственного изменения системных вызовов, получая контроль вместо операционной системы, когда приложения (включая Finder) выполняли системные вызовы. Обычно, после завершения задачи, расширение должно было передать (возможно, измененный) системный вызов в подпрограмму операционной системы. Если несколько расширений пытались изменить один и тот же системный вызов, они получали его по цепочке: первое расширение передавало управление следующему и так далее, в порядке их загрузки, пока последнее расширение не передавало его операционной системе. Если расширение не передавало следующее расширение то, что оно ожидало, возникали проблемы – от непредсказуемого поведения до полного сбоя системы. Это вызывалось различными факторами, такими как небрежно написанные и вредоносные расширения, изменяющие или нарушающие работу части системного программного обеспечения. Кроме того, расширения иногда конкурировали за системные ресурсы с приложениями, утилитами и другими расширениями, что приводило к сбоям и общей нестабильности. Некоторые пользователи без проблем загружали на свой компьютер все доступные расширения, в то время как другие тщательно избегали любых ненужных расширений, чтобы избежать проблем. Многие подходили к добавлению расширений разумно. Эта проблема усугубилась в середине 1990-х годов с появлением ресурсоемких мультимедийных технологий, таких как QuickTime, которые устанавливались в виде расширений. Кроме того, многие приложения, особенно Microsoft Office, требовали большого количества расширений. У многих пользователей Macintosh были установлены сотни расширений, различающихся по возрасту и качеству. Наиболее частыми причинами проблем были ошибочные, поврежденные и устаревшие расширения. Некоторым пользователям приходилось помнить об отключении проблемных расширений при запуске определенных программ. Более поздние версии System 7 включали Extensions Manager, который позволял отключать конкретные расширения или группы расширений при загрузке, устраняя конфликты нажатием клавиши пробела во время запуска компьютера. Этот инструмент также был доступен через открытие CDEV расширений в Панели управления, расположенной в меню Apple. Conflict Catcher и Now Startup Manager были сторонними утилитами, которые автоматически обнаруживали конфликты и проблемные расширения, а также другое программное обеспечение, запускаемое при загрузке. В противном случае это была трудоемкая задача, требующая отключения расширений группами до обнаружения конфликта, а также позволяла изменять порядок загрузки без переименования файлов. Расширения загружались только при запуске, поэтому любое изменение требовало перезагрузки. Чаще всего конфликты расширений возникали после выхода новой версии операционной системы, а также при установке сложного нового приложения, которое конфликтовало с существующими расширениями или устанавливало расширения, конфликтующие с уже установленными. Все это смягчалось простотой замены расширений и самой операционной системы: вместо изменения файлов конфигурации, как в других операционных системах, расширения и другое автоматически запускаемое программное обеспечение просто должны были находиться в определенной подпапке Папки системы, чтобы быть загруженными. Порядок их загрузки можно было изменить, переименовывая файлы в Finder в соответствии с убывающим ASCII-порядком для каждой подпапки системы. Кроме того, Mac без проблем поддерживал наличие двух (или более) Папок системы на жестком диске. Загружалась только "благословенная" Папка системы. Поэтому, при установке новой версии операционной системы или нового приложения, пользователь мог легко дублировать Папку системы, выполнить установку, а затем вернуться к предыдущей версии в случае возникновения проблем. Конфликты расширений прекратились с выпуском Mac OS X, который использует другой механизм расширений. Программное обеспечение по-прежнему может добавлять новые функции в Mac, но вместо использования расширения ядра, новый метод позволил Apple перенести все больше и больше расширений в пользовательское пространство, что является более безопасным и организованным подходом, который не может дестабилизировать всю систему.