صندوق أدوات ماكنتوش
تُنفّذ مجموعة أدوات ماكنتوش العديد من الميزات عالية المستوى لنظام التشغيل ماك الكلاسيكي ، بما في ذلك مجموعة من واجهات برمجة التطبيقات لتطوير البرامج على النظام الأساسي. تتكون مجموعة الأدوات بشكل أساسي من عدد من المدراء ، وهي عبارة عن مجموعات من المكونات المتخصصة المسؤولة عن معالجة استدعاءات النظام من التطبيقات. كما تتكون من مكونات برمجية مثل QuickDraw ، المسؤول عن رسم الرسومات على الشاشة، ومدير القوائم، الذي يحتفظ بهياكل البيانات التي تصف شريط القوائم. نظرًا لأن جهاز ماكنتوش الأصلي صُمم بدون ذاكرة افتراضية أو حماية للذاكرة ، كان من المهم تصنيف التعليمات البرمجية وفقًا لوقت تحميلها في الذاكرة أو حفظها على القرص، وكيفية الوصول إليها. تتكون مجموعة الأدوات من إجراءات فرعية أساسية بما يكفي ليتم الاحتفاظ بها بشكل دائم في الذاكرة ويمكن الوصول إليها بواسطة تعليمة آلية ثنائية البايت ؛ ومع ذلك، فهي تستثني وظائف "النواة" الأساسية مثل إدارة الذاكرة ونظام الملفات . تجدر الإشارة إلى أن مجموعة الأدوات لا ترسم القائمة على الشاشة: فقد صُممت القوائم لتكون قابلة للتخصيص، لذلك تم تخزين رمز الرسم في مورد ، والذي يمكن أن يكون على القرص.
الظهور والتنفيذ
على أنظمة 68k
كان نظام التشغيل ماكنتوش، في تطبيق عائلة معالجات موتورولا 68000 الأصلي، يُنفذ استدعاءات النظام باستخدام آلية معالجة استثناءات التعليمات البرمجية غير القانونية الخاصة بهذا المعالج . وقد حددت موتورولا أن التعليمات التي تبدأ بـ 1111 و 1010 لن تُستخدم أبدًا في معالجات عائلة 68000 اللاحقة، مما يتيح استخدامها كتعليمات برمجية من قِبل نظام التشغيل. علاوة على ذلك، كان لكل منهما متجه مقاطعة خاص به ، منفصل عن معالج التعليمات البرمجية غير القانونية العام. ولأن 1111 كان محجوزًا للاستخدام من قِبل المعالجات المساعدة مثل وحدة معالجة الفاصلة العائمة 68881 ، اختارت آبل 1010 ( الحرف A بالنظام الست عشري ) كبادئة لاستدعاءات نظام التشغيل. تُعرف معالجة التعليمات غير القانونية باسم "الاعتراض" ، ولذلك سُميت هذه التعليمات الخاصة " مصائد A" . [ 1 ] عندما يصادف المعالج مثل هذه التعليمات، فإنه ينقل التحكم إلى نظام التشغيل، الذي يبحث عن المهمة المناسبة وينفذها. كان لهذه الآلية ميزتان:
- ينتج عن ذلك برامج مضغوطة. لا يشغل نظام التشغيل سوى بايتين فقط في كل عملية وصول، على عكس أربعة أو ستة بايتات عند استخدام تعليمات القفز العادية .
- يُخزَّن الجدول المستخدم للبحث عن الوظيفة المناسبة في ذاكرة الوصول العشوائي (RAM). وبالتالي، حتى لو كان الكود الأساسي مُخزَّنًا في ذاكرة القراءة فقط (ROM)، فإنه لا يزال من الممكن تعديله ( تصحيحه ) عن طريق استبدال عنوان ذاكرة القراءة فقط بعنوان ذاكرة الوصول العشوائي.
تم تحسين النظام بشكل أكبر بتخصيص بعض بتات تعليمة A-trap لتخزين معاملات الدوال الأكثر استخدامًا. على سبيل المثال، يُعد تخصيص الذاكرة مهمة شائعة جدًا، لذا يجب التعبير عنها بأقل عدد ممكن من بايتات التعليمات البرمجية. في بعض الأحيان، يرغب المبرمج في مسح كتلة الذاكرة بالكامل، لذا يجب أن تأخذ دالة التخصيص معاملًا منطقيًا ، أو أن يكون هناك دالتان للتخصيص. يتطلب تمرير معامل تعليمة إضافية بحجم بايتين، وهو أمر غير فعال. يتطلب وجود دالتين أربعة بايتات إضافية على الأقل من ذاكرة الوصول العشوائي (RAM) تُستخدم للعنوان في جدول البحث عن الدالة. الحل الأمثل هو ربط عدة تعليمات A-trap بنفس الروتين الفرعي، الذي يستخدم بدوره تعليمة A-trap كمعامل. ينطبق هذا على الروتينات الفرعية الأكثر استخدامًا. مع ذلك، تم تكوين صندوق الأدوات من الروتينات الفرعية الأقل استخدامًا. تم تعريف مجموعة الأدوات على أنها مجموعة من الإجراءات الفرعية التي لا تأخذ أي معلمات داخل مصيدة A، وتم فهرستها من جدول إرسال مكون من 1024 مدخلاً بحجم 4 كيلوبايت . [ 2 ] (تستخدم الأجهزة التي تم شحنها بذاكرة وصول عشوائي أقل من ميغابايت واحد جدولًا واحدًا مكونًا من 512 مدخلاً، وهو ما يتوافق مع جدول إرسال نظام التشغيل المكون من 256 مدخلاً في مراجعات ذاكرة القراءة فقط اللاحقة. [ 3 ] )
على أنظمة PowerPC
في عام ١٩٩٤، أصدرت آبل أجهزة ماكنتوش باستخدام معمارية PowerPC ، التي كانت تفتقر إلى دعم الأجهزة لآلية A-trap المتوفرة في أنظمة 68k. ونظرًا لاستخدامها في تطبيق تصحيحات البرامج، فقد تم الاحتفاظ بجداول الإرسال. وبالتالي، لا يقوم كود مكتبة واجهة برمجة التطبيقات (API) الذي يقوم به أي روتين في Toolbox بأي شيء سوى الإشارة إلى جدول الإرسال. ويرتبط جدول الإرسال فقط بكود عائلة 68000 المُحاكى. يجب على وظائف Toolbox المُنفذة بلغة PowerPC الأصلية تعطيل المُحاكي أولًا باستخدام مدير الوضع المختلط. ولأغراض التوحيد وقابلية التوسع، استمر إضافة إدخالات وظائف جديدة إلى Toolbox حتى بعد الانتقال إلى PowerPC.
مع ذلك، وُجدت آلية بديلة في مدير أجزاء التعليمات البرمجية، والتي استُخدمت لتحميل وربط برامج PowerPC الأصلية ديناميكيًا. واستُخدمت خاصية استدعاء نظام PowerPC، المشابهة لآلية A-trap، للتفاعل مع النواة المصغرة لنظام التشغيل Mac OS ، والتي لم تُقدّم سوى خدمات قليلة مفيدة بشكل مباشر للتطبيقات.
الوظائف
واجهات البرمجة
تتألف مجموعة الأدوات من وظائف شائعة الاستخدام، ولكن ليس الوظائف الأكثر استخدامًا. ونتيجة لذلك، تطورت إلى مزيج من مكتبات واجهة برمجة التطبيقات المختلفة . [ 3 ] تشمل مجموعة الأدوات معظم الوظائف الأساسية التي ميزت نظام التشغيل ماك الكلاسيكي. كما توثق مراجع أبل "داخل ماكنتوش: أساسيات مجموعة أدوات ماكنتوش" و"داخل ماكنتوش: المزيد من مجموعة أدوات ماكنتوش"، والتي تتسم بنطاقها الغامض، معظم مجموعة الأدوات.
يُستخدم في عملية الإقلاع
نظرًا لأن جزءًا كبيرًا من Toolbox مُدمج في ذاكرة القراءة فقط (ROM) جنبًا إلى جنب مع البرامج الثابتة للحاسوب ، فقد كان استخدامه كبيئة مُحمِّل إقلاع أمرًا ملائمًا . وبالاقتران مع الموارد المخزنة على شريحة ROM، يُمكن لـ Toolbox تحويل الشاشة إلى اللون الرمادي، وعرض مربع حوار يحمل عبارة الترحيب "مرحبًا بك في ماكنتوش"، وعرض مؤشر الماوس. وباستخدام Toolbox للمساعدة في إقلاع الجهاز، يُمكن تهيئة بيئة بدائية تُشبه بيئة ماكنتوش قبل تحميل حزمة النظام من القرص (في الواقع، قبل تنفيذ ROMs على بطاقات NuBus)، وهو الوقت الذي يجب فيه اتخاذ قرار استخدام عنونة 24 بت أو 32 بت. (يتطلب دعم System 7 لعنونة 32 بت وجود ROMs نظيفة 32 بت ، حيث أن ROMs القديمة لماكنتوش لا تدعم ذلك). ولا حاجة إلى أدوات التشخيص الموجودة في BIOS لأجهزة IBM PC المتوافقة ، لأن ماكنتوش يُجري معظم عمليات التشخيص في POST ويُبلغ تلقائيًا عن الأخطاء عبر رموز " Sad Mac ".
لا ينبغي الخلط بين التشابه بين بيئة بدء التشغيل ونظام التشغيل الفعلي وبين التطابق التام. فعلى الرغم من أن عملية بدء تشغيل نظام "ماك أو إس الكلاسيكي" معقدة وغير موثقة بشكل كافٍ، إلا أنها لا تقل محدودية عن نظام BIOS المتوافق مع أجهزة IBM PC . وكما هو الحال في سجل بدء التشغيل الرئيسي لأجهزة الكمبيوتر الشخصية ، يقرأ جهاز ماك الذي يعمل بنظام ROM التعليمات البرمجية وينفذها من الكتل الأولى ("كتل بدء التشغيل") من قسم القرص المحدد كجهاز بدء التشغيل . ثم تتحقق كتل بدء التشغيل من وجود بيئة أولية مناسبة، وتستخدمها لتحميل حزمة النظام. ويمكن لنظام تشغيل مختلف بنظام ملفات مختلف بدء التشغيل ببساطة باستخدام التعليمات البرمجية الخاصة به في كتل بدء التشغيل. [ 4 ] مع ذلك، لم يُستخدم هذا النظام مع نظام PowerPC Linux، لأن البرامج الثابتة المفتوحة في أجهزة New World ROM تتطلب مُحمِّل بدء تشغيل ضمن نظام ملفات HFS، وهو سبب لا علاقة له بمجموعة الأدوات أو أجهزة ماك "القديمة" بشكل عام. وبشكل أدق، فإن لوحة التحكم في قرص بدء التشغيل في نظام التشغيل Mac OS الكلاسيكي والإصدارات اللاحقة من macOS لا تسمح للمستخدم إلا بتحديد نظام ملفات مثبت بقيود معينة للغاية.
إرث
في نظام التشغيل Mac OS X ، لا يتم استخدام صندوق الأدوات (Toolbox) إطلاقًا، على الرغم من أن بيئة التشغيل الكلاسيكية (Classic Environment) تقوم بتحميل ملف ROM الخاص بصندوق الأدوات إلى جهازها الظاهري. وقد أُعيدت هيكلة جزء كبير من صندوق الأدوات ونُفذ كجزء من واجهة برمجة التطبيقات Carbon من Apple ، مما يسمح للمبرمجين الملمين بصندوق الأدوات بنقل شفرة برامجهم بسهولة أكبر إلى نظام التشغيل Mac OS X.
انظر أيضاً
مراجع
- ↑ شركة آبل (6 يوليو 1996). "تعليمات الخط A" . مؤرشف من الأصل في 2 يوليو 2004.رابط بديل
- ↑ شركة آبل (6 يوليو 1996). "حول مدير الفخاخ" . مؤرشف من الأصل في 2 يوليو 2004.رابط بديل
- 1 2 أولسون، جيمس هـ. (4 سبتمبر 1997). "Mac Alamanac II" . Linux/m68k لنظام ماكنتوش .
- ↑ شركة آبل (6 يوليو 1996). "كتل التمهيد" . مؤرشف من الأصل في 12 مارس 2004.رابط بديل
روابط خارجية
- نظام التشغيل ماك الكلاسيكي
- برنامج ماكنتوش الثابت
