Кіріспе

Классикалық Mac OS жүйелік процедуралары
Macintosh Toolbox, Классикалық Mac OS-тің көптеген жоғары деңгейдегі мүмкіндіктерін іске асырады, соның ішінде платформада бағдарламалық жасақтаманы әзірлеуге арналған бағдарламалық интерфейстер жиынтығын қамтиды. Toolbox бірнеше "менеджерлерден" тұрады, мысалы QuickDraw сияқты бағдарламалық компоненттер, экранға графикалық элементтерді салуға жауапты, және мәзір жолағын сипаттайтын дерек құрылымдарын сақтайтын Мәзір менеджері. Алғашқы Macintosh виртуалды жад немесе жадты қорғаусыз жасалғандықтан, кодты жадқа қашан жүктеу керек немесе дискіде сақтау керек, сондай-ақ оған қалай қол жеткізу керек екенін анықтау маңызды болды. Toolbox жадта тұрақты сақталатын және екі байттық машиналық нұсқаулармен қолжетімді болатын маңызды кіші бағдарламалардан тұрады; алайда ол жадты басқару және файлдық жүйе сияқты негізгі "ядролық" функционалдықты қамтымайды. Toolbox экранға мәзірді салмайтынын ескеріңіз: мәзірлерді бейімделетін түрде көрсету үшін жасалған, сондықтан сурет салу коды ресурс ретінде сақталған, ол дискіде орналасуы мүмкін.

68k жүйелерінде

Macintosh операциялық жүйесінің Motorola 68000 отбасылық бастапқы нұсқасы осы процессордың заңсыз опкодтық қателерді өңдеу механизмін пайдаланып, жүйелік шақыруларды орындайды. Motorola 1111 және 1010 нөмірімен басталатын нұсқаулар болашақта 68000 отбасы процессорларында қолданылмауын, осылайша оларды операциялық жүйе пайдалануы үшін босатуын нақтылады. Сонымен қатар, олардың әрқайсысының жалпы заңсыз опкодтық өңдеушіден бөлек, жеке үзіліс векторы болды. 1111 нөмірі 68881 FPU сияқты қосымша процессорлар үшін резервтелгендіктен, Apple 1010 нөмірін (ASCII-дің ондықтан он алтылық жүйедегі көрсетілімінде, A әрпінен кейін басқару символы) операциялық жүйелік шақырулардың префиксі ретінде таңдады. Заңсыз нұсқауларды өңдеу «тұзаққа түсіру» деп аталады, сондықтан осы ерекше нұсқаулар «A тұзақтары» деп аталды. Процессор мұндай нұсқауды кездестіргенде, басқаруды операциялық жүйеге береді, ол тиісті тапсырманы іздеп, оны орындайды. Бұл механизмнің екі артықшылығы бар:

Ол ықшам бағдарламалар жасауға мүмкіндік береді. Операциялық жүйеге әр қатынас үшін тек екі байт жұмсалады, ал әдеттегі секіру нұсқауларын пайдаланғанда төрт немесе алты байт қажет болады. Тиісті функцияларды іздеуге қолданылатын кесте RAM-да сақталады. Сондықтан, егер негізгі код ROM-да сақталған болса да, оны ROM жадының мекенжайын RAM мекенжайымен алмастыру арқылы (өзгерту арқылы) жаңартуға болады. Жүйе A тұзақтарының біраз битін ең көп қолданылатын функцияларға параметрлерді сақтау үшін бөлу арқылы одан әрі оңтайландырылды. Мысалы, жадты бөлу жиі қолданылатын тапсырма, сондықтан оны мүмкіндігінше аз код байтымен көрсету керек. Кейде бағдарламашы жад блогын нөлдермен толтыруды қалайды, сондықтан бөлу функциясы логикалық параметрді қабылдауы керек немесе екі бөлу функциясы болуы керек. Параметрді жіберу үшін қосымша екі байттық нұсқау қажет, бұл тиімсіз болар еді. Екі функция болса, функцияны іздеу кестесіндегі мекенжай үшін кем дегенде қосымша төрт байт RAM қажет болады. Ең тиімді шешім – бірнеше A тұзақтарын бірге субпрограммаға сәйкестендіру, содан кейін A тұзағын параметр ретінде пайдалану. Бұл ең көп қолданылатын кіші программаларға қатысты. Дегенмен, Toolbox (Құралдар жинағы) сирек қолданылатын кіші программалардан тұрды. Toolbox A тұзағында параметрлерді қабылдамайтын және 1024 жазбадан тұратын, 4 килобайттық жіберу кестесінен индекстелген кіші программалар жиынтығы ретінде анықталды. (Бір мегабайттан аз RAM-ы бар машиналар 512 жазбадан тұратын бір кесте қолданады, бұл кейінгі ROM нұсқаларының 256 жазбалық ОЖ жіберу кестесіне сәйкес келеді.)

PowerPC жүйелері туралы

1994 жылы Apple 68k жүйелерінде қолжетімді A тұзақ механизмін қамтамасыз ететін аппараттық қолдауы жоқ PowerPC архитектурасын қолданатын Macintosh компьютерлерін шығарды. Бірақ, бағдарламалық түзетулерді қолдануда олардың пайдалы болуына байланысты, жөнелту кестелері сақталды. Кез келген Toolbox процедурасының негізінде жатқан API кітапханасы коды тек жөнелту кестесіне сілтеме жасайды. Жөнелту кестесі тек 68000 отбасы кодымен байланысты. PowerPC кодында іске асырылған Toolbox функциялары алдымен аралас режим менеджерін пайдаланып эмуляцияны өшіруі керек. Біркелкілік пен кеңейту мақсатында, PowerPC-ге көшуден кейін де Toolbox-қа жаңа функциялар қосыла берді. Дегенмен, код фрагмент менеджерінде PowerPC бағдарламаларын жүктеу және динамикалық байланыс үшін қолданылатын баламалы механизм болды. A тұзақ механизміне ұқсас PowerPC жүйелік шақыруы, Mac OS наноядросымен байланыс үшін қолданылды, ол қолданбаларға тікелей пайдалы болатын азау қызметтерді ұсынды.

Бағдарламалау интерфейстері

Құралдар қорабы көбінесе қолданылатын функциялардан құралған, бірақ ең көп қолданылатын функциялар емес. Осының салдарынан, ол әртүрлі API кітапханаларының жиынтығына айналды. Алайда, бұл жүйе PowerPC Linux үшін қолданылмады, себебі New World ROM машиналарындағы Open Firmware жүктеушіні HFS файлдық жүйесінде талап етеді – бұл Құралдар қорабына немесе жалпы "ескі" Mac-терге еш қатысы жоқ себеп. Нақтырақ айтқанда, Classic Mac OS және кейінірек macOS-тағы «Бастапқы диск» басқару тақтасы пайдаланушыға тек қанағаттандыратын шектеулері бар орнатылған файлдық жүйені таңдауға рұқсат береді.

Мұра

Mac OS X жүйесінде Toolbox мүлдем қолданылмайды, бірақ Classic Environment виртуалды машинасына Toolbox ROM файлының жүктелуін қамтамасыз етеді. Toolbox-тың көп бөлігі Apple компаниясының Carbon бағдарламалау API-інің құрамында қайта құрылып, іске асырылды, бұл Toolbox-пен таныс бағдарламашыларға өз бағдарламалық кодын Mac OS X жүйесіне оңай көшіруге жағдай жасады.