Жүйе кеңейтімдерінің қақтығыстары (Жүйе кеңейтімдерінің келіспеушіліктері)
Extension conflict
Қазақстандағы ескі Mac OS жүйесіндегі кеңейтімдердің қақтығыстары туралы мақала. Жүйелік шақыруларды өзгерту арқылы туындайтын мәселелер мен құлаулар туралы біліңіз.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Кіріспе
Кейде кеңейтулер арасындағы қақтығыстар классикалық Mac OS, әсіресе System 7 операциялық жүйесін орындайтын Apple Macintosh компьютерлерінде жиі кездесетін мәселе болды. Кеңейтулер операциялық жүйенің мүмкіндіктерін тікелей ОС шақыруларын жамау арқылы кеңейтетін кодтар жиынтығы болды, осылайша қолданбалар (соның ішінде Finder) жүйелік шақырулар жасаған кезде операциялық жүйе орнына басқаруды алатын. Жалпы, кеңейту өз жұмысын аяқтағаннан кейін, ол (мүмкін өзгертілген) жүйелік шақыруды операциялық жүйенің режіміне тапсыруы керек еді. Егер бірнеше кеңейтулер бір жүйелік шақыруды жамап алғысы келсе, олар шақыруды тізбекпен қабылдайды, бірінші кеңейту оны келесіге береді және солай жалғасады, соңғы кеңейту операциялық жүйеге жіберілгенге дейін. Егер кеңейту келесі кеңейтуді күткеніне сәйкес бермесе, онда проблемалар пайда болады: күтпеген мінез-құлықтан бастап толық жүйелік апатқа дейін. Бұл жүйелік бағдарламалық жасақтаманың бір бөлігінің жұмыс істеу тәртібін өзгертетін немесе бұзатын абайсызда бағдарламаланған және зиянды кеңейтулер сияқты бірнеше факторлармен іске асады. Сонымен қатар, кеңейтулер кейде жүйелік ресурстар үшін қосымшалармен, утилиталармен және басқа кеңейтулермен бәсекелесіп, апаттар мен жалпы тұрақсыздыққа әкеледі. Кейбір пайдаланушылар компьютерлерінде кездесетін барлық кеңейтулерді қуана жүктейді, бірақ әсері аз немесе мүлдем жоқ. Басқалары проблемадан құтылу үшін қажет емес қосымшалардан аулақ болды. Көптеген адамдар кеңейтулерді қосуда ақылды болды. Бұл проблема 1990 жылдардың ортасында ресурсқа мұқтаж мультимедиалық технологиялар, мысалы QuickTime кеңейтулері ретінде орнатылған кезде көбейді. Сонымен қатар, бірқатар қосымшалар, әсіресе Microsoft Office, көптеген кеңейтулерді қажет етті. Көптеген Macintosh пайдаланушыларында әртүрлі дәуірдегі және сапалы жүздеген кеңейтулер жұмыс істеді. Қате, зақымдалған және ескірген кеңейтулер проблемалардың ең көп тараған себебі болды. Кейбір пайдаланушылар белгілі бір бағдарламаларды орындаған кезде проблемалық кеңейтулерді өшіруді есте ұстауы керек болды. System 7 кейінгі нұсқаларында кеңейтулер менеджері бар, ол пайдаланушыларға компьютердің жүктелу кезінде бос орынды басып, қақтығысты шешу кезінде іске қосылғанда белгілі бір кеңейтулерді немесе кеңейтулер топтарын өшіруге мүмкіндік берді. Бұл құрал Apple мәзіріндегі Басқару панельдеріндегі Extensions CDEV ашылуы арқылы қол жетімді болды. Conflict Catcher және Now Startup Manager – бұл үшінші тараптың конфликттерді және проблемалық кеңейтулерді және басқа бағдарламалық жасақтаманы жүктеу кезінде автоматты түрде анықтайтын, әйтпесе уақыт талап ететін, пайдаланушылар конфликтті тапқанға дейін кеңейтулерді жиынтықпен өшіруді талап ететін, сондай-ақ элементтерді қайта атаусыз жүктеу тәртібін өзгертуге мүмкіндік беретін құралдар. Кеңейтулер тек іске қосылған кезде ғана жүктеледі, яғни кез келген өзгертуге тырысу үшін қайта жүктеу қажет болды. Кеңейтулер арасындағы қайшылықтардың ең жиі пайда болуы операциялық жүйенің жаңа нұсқасының шығарылуымен, содан кейін күрделі жаңа қолданбаның орнатылуымен немесе қолданыстағы кеңейтулермен қайшылыққа ұшыраған немесе қолданыстағы жиынтықпен қайшылыққа ұшыраған кеңейтулерді орнатумен байланысты. Мұның бәрі кеңейтулер мен операциялық жүйені оңай ауыстыру арқылы жеңілдетілді: басқа операциялық жүйелердегідей конфигурациялық файлдарды өзгертудің орнына кеңейтулер мен басқа автоматты түрде орындалатын бағдарламалық жасақтамаларды алу үшін Жүйелік қапшықтың белгілі бір қосалқы қапшығында болу керек еді. Жүктеп берудің ретін әр жүйелік ішкі қапшықтың төмендеу ASCII-беттік ретіне негізделген іздеудегі элементтерді қайта атау арқылы өзгертуге болады. Сонымен қатар, Mac қатты дискіде екі (немесе одан да көп) жүйелік қапшықтар бар екеніне өте қуанышты болды. Бастағанда тек "Бақытты" жүйелік қапшық жүктеледі. Осылайша, операциялық жүйенің жаңа нұсқасы немесе жаңа қолданба орнатылған кезде пайдаланушы жүйелік қапшықты оңай қайталай алады, орнатуды орындайды, содан кейін егер мәселе туындаса, кері қайтып келеді. Кеңейтулер арасындағы қақтығыстар Mac OS X-тің шығарылуымен аяқталды, ол басқа кеңейту механизмін қолданады. Бағдарламалық қамтамасыз ету Mac-ке жаңа мүмкіндіктерді қоса алады, бірақ ядролық кеңейтуді талап етудің орнына жаңа әдіс Apple-ге пайдаланушы кеңістігіне көбірек кеңейтулерді енгізуге мүмкіндік берді, бұл бүкіл машинаны тұрақсыздандыра алмайтын қауіпсіз және ұйымдастырылған тәсіл.
Extension conflicts were sometimes a common nuisance 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 completed its task, 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 in the order they are loaded, until the last extension passes to the operating system. If an extension does not hand the next extension in line what it is expecting, problems occur; ranging from unexpected behavior to full system crashes. This is triggered by several factors such as carelessly programmed and malicious extensions that change or disrupt the way part of the system software works. In addition, extensions sometimes competed for system resources with applications, utilities and other extensions, leading to crashes and general instability. Some 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. Many 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 disable specific extensions or groups of extensions at startup when troubleshooting the conflict by pressing the spacebar while the computer boots. This tool was also accessible by opening the Extensions CDEV in the Control Panels found in the Apple menu. Conflict Catcher and Now Startup Manager were third party utilities that automatically detected conflicts and problematic extensions and other software executing at boot, otherwise a time consuming task that required users to turn off extensions in sets until they found the conflict, as well as allowing load order to be altered without renaming items. Extensions were only loaded at startup time, meaning that any attempted change required a reboot. The most common time for extension conflicts to start was the release of a new version of the operating system, followed closely by the installation of a complex new application that either conflicted with existing extensions, or installed extensions that conflicted with the existing set. All of this was mitigated by the ease with which extensions and the operating system itself could be swapped in and out: Instead of modifying configuration files as on other operating systems, extensions and other automatically run software simply had to reside in a particular subfolder of the System Folder to be picked up. And load their order could be altered by renaming items in the Finder, based on descending ASCIIbetical order for each System subfolder. In addition, the Mac was perfectly happy to have two (or more) System Folders present on a hard drive. Only the "blessed" System Folder would be loaded at startup. So, when a new version of the operating system was to be installed, or a new application, the user could easily duplicate the system folder, perform the install, and then fall back if a problem resulted. Extension conflicts came to an end with the release of Mac OS X, which uses a different extension mechanism. Software can still add new features to the Mac but instead of requiring a kernel extension, the new method has allowed Apple to push more and more extensions into user space, which is a safer and more organized approach that cannot destabilize the entire machine.