ملحق (نظام التشغيل ماك)

في نظام التشغيل ماك الكلاسيكي ( نظام تشغيل أبل ماكنتوش الأصلي )، كانت الإضافات عبارة عن أجزاء صغيرة من التعليمات البرمجية تُوسّع وظائف النظام. كانت تُشغّل مبدئيًا عند بدء التشغيل، وتُدار بواسطة آليات متنوعة، بما في ذلك تصحيح الأخطاء البرمجية وتقنيات تعديل التعليمات البرمجية الأخرى. في البداية، كانت الإضافات حلًا مبتكرًا من مطوري أبل، ثم أصبحت الطريقة القياسية لتوفير نظام تشغيل معياري. كانت كميات كبيرة من خدمات النظام المهمة، مثل حزم بروتوكولات الشبكة TCP/IP (MacTCP وOpen Transport) ودعم USB وFireWire، مكونات اختيارية تُنفّذ كإضافات. لاحقًا، شمل مصطلح "إضافة النظام" تطبيقات الخلفية غير الظاهرة أيضًا.

آلية التهيئة

لم يكن مفهوم الإضافات موجودًا في نظام ماكنتوش الأصلي، لكن النظام مع ذلك كان يمتلك آلية ترقيع خاصة سرعان ما تعلم المطورون الاستفادة منها - مُحمِّل INIT. كان هذا البرنامج يبحث عن موارد النظام من نوع "INIT"، ويُحمِّلها ويُشغِّلها عند بدء التشغيل. كان يجب تخزين موارد البرنامج مباشرةً في فرع موارد Mac System suitcase ، مما يعني أنها كانت متاحة فقط للمستخدمين المتقدمين الذين يجيدون استخدام ResEdit أو أي محرر موارد آخر.

بما أن استغلال هذه الآلية كان بمثابة اختراق غير مدعوم، ولأنه لا يمكن تحميل سوى 32 ملف INIT بهذه الطريقة، فقد استجابت آبل بتوفير حل أكثر تنظيمًا. في البداية، كان هذا الحل عبارة عن مورد "INIT" برقم تعريف 31 موجود في ملف النظام، يقوم بالبحث عن ملفات أخرى من نوع "INIT" في مجلد النظام ، ثم يقوم بتحميل وتشغيل موارد INIT الموجودة بداخلها. (لهذا السبب لا يزال بعض مبرمجي ماك المخضرمين يشيرون إلى آلية تحميل الإضافات باسم "حيلة INIT 31"). [ 1 ] أصبح بالإمكان الآن تثبيت ملفات INIT ببساطة عن طريق وضع ملف في مجلد النظام، وهو أمر في متناول المستخدم العادي. بدءًا من نظام التشغيل 7، تم نقل الإضافات إلى مجلد الإضافات داخل مجلد النظام لتسهيل الوصول إليها، وتم تطبيق آلية توجيه تلقائي بحيث يؤدي وضع إضافة في مجلد النظام عن طريق السحب والإفلات إلى وضع الملف في المجلد الفرعي المناسب.

احتفظت الإضافات بنوع المورد "INIT" طوال فترة حياتها، وتم تحسين أداة التحميل تدريجياً للبحث عن هذه الموارد في أماكن عديدة، بما في ذلك في فروع الموارد الخاصة بلوحات التحكم بتنسيقات متنوعة وأداة الاختيار .

الإضافات

تطورت عمليات بدء التشغيل (INITs) لتصبح امتدادات للنظام، واكتسبت بروتوكولات إضافية مخصصة ، مثل توفير أيقونة لعرضها عند بدء التشغيل (أصل هذه الخاصية هو "ShowINIT"). وأصبح مشهد "عرض قطع الأحجية والأيقونات" على الشاشة مع تحميل كل امتداد مألوفًا لجميع مستخدمي أجهزة ماك. وفي النهاية، أصدرت آبل نفسها أجزاءً رئيسية (وإن كانت اختيارية) من نظام التشغيل كامتدادات، مثل QuickTime و QuickDraw 3D وغيرها الكثير. كما تم توفير عدد كبير من الخدمات وبرامج التشغيل في نظام ماك أو إس - الرسمية منها والتابعة لجهات خارجية - كامتدادات، مما يسمح بتقليص حجم النظام عن طريق تعطيلها.

كانت إضافات النظام مصدرًا شائعًا لعدم استقرار نظام ماكنتوش، نظرًا لتفاوت جودة البرامج الخارجية، وكثرة تعديلها للنظام بطرق لا تعمل دائمًا بشكل صحيح. بعض الإضافات لم تكن تعمل معًا بشكل سليم، أو كانت تعمل فقط عند تحميلها بترتيب معين. إضافةً إلى ذلك، قد تحاول إضافات مختلفة تعديل نفس الجزء من النظام، مما قد يؤدي إلى تعارضات بين الإضافات ومشاكل أخرى في الاستقرار. وكان تتبع هذه المصادر للمشاكل مهمة أخرى يواجهها معظم مستخدمي ماك في مرحلة ما. وقد يكون استكشاف أخطاء إضافات نظام ماك وإصلاحها عملية تستغرق وقتًا طويلًا وتعتمد على التجربة والخطأ .

كانت أسهل طريقة لإعادة تشغيل نظام التشغيل هي الضغط باستمرار على مفتاح Shift، مما يؤدي إلى تجاوز تحميل الإضافات. أضاف نظام التشغيل 7.5 مدير الإضافات ، الذي يسمح للمستخدم بتفعيل أو تعطيل إضافات معينة بسرعة، بالإضافة إلى تحديد مجموعات منها تعمل معًا بشكل صحيح. يأتي مدير الإضافات مزودًا بمجموعتين أساسيتين للقراءة فقط: إحداهما تحتوي على مجموعة فرعية من الإضافات اللازمة لتشغيل نظام التشغيل الأساسي، والأخرى تُفعّل جميع الإضافات الرسمية المُرفقة مع نظام التشغيل، ولكنها تُعطّل جميع إضافات الجهات الخارجية.

كان ترتيب تحميل الإضافات نتيجةً ثانويةً لوظيفة GetFInfo التي يستخدمها برنامج التحميل لحصر الملفات في مجلد الإضافات. مع أن آبل لطالما صرّحت بأن الترتيب الناتج عن حصر الملفات باستخدام هذه الوظيفة غير مُحدد، إلا أن هذه الوظيفة كانت تُحصي الملفات على وحدات تخزين HFS وفقًا للترتيب المُخزّن في فهرس HFS. اكتشف المستخدمون أن تغيير الحرف الأول من اسم الملف يُمكن أن يُغيّر ترتيب تحميل الإضافات، مما تسبب في مشاكل عند انتقال نظام التشغيل Mac OS 8.1 إلى HFS+. اضطرت آبل في النهاية إلى تعديل برنامج التحميل لفرز أسماء الملفات التي تُعيدها هذه الوظيفة في جدول، ووفرت واجهةً تسمح للبرامج بتغيير هذا الجدول. [ 2 ]

لوحات التكوين والتحكم

لم تكن لإضافات النظام واجهة مستخدم: لم تكن هناك آلية قياسية تمكّن المستخدم من ضبط الخدمات التي توفرها الإضافة. كانت الإضافات قادرة على تغيير الواجهة الرسومية (مثل إضافة قوائم جديدة إلى شريط القوائم) وبالتالي قبول إعدادات المستخدم، أو قد تكون مصحوبة بتطبيق يوفر واجهة الإعدادات.

مع نظام التشغيل 7 ، أصبحت لوحات التحكم عبارة عن إضافات منفصلة لبرنامج Finder على القرص، يمكن للمستخدم تشغيلها. وبإدراج رمز INIT في لوحة التحكم، أصبح من الممكن إنشاء إضافات/لوحات تحكم هجينة تُعدّل نظام التشغيل عند بدء التشغيل، وتحتوي على واجهة تكوين مدمجة خاصة بها، بنفس شكل أي لوحة تحكم أخرى لنظام التشغيل.

تطبيقات خلفية بدون وجه

دعمت MultiFinder وSystem 7 والإصدارات الأحدث تطبيقات الخلفية غير الظاهرة، المشابهة لخدمات UNIX أو خدمات Windows ، مع استخدام تعدد المهام التعاوني . ومن الأمثلة على ذلك: مُزامِن الوقت ( لضبط التوقيت الصيفي ومزامنة الوقت عن بُعد)، ومُجدوِل تحديثات البرامج، وإجراءات المجلدات (لمعالجة أحداث المجلدات). كانت تطبيقات الخلفية غير الظاهرة تطبيقات عادية، باستثناء أنها لا تظهر في قائمة التطبيقات. والفرق التقني الوحيد بينها وبين التطبيقات العادية هو تفعيل خيار "الخلفية فقط" في SIZEمورد "التطبيق". وكان ممنوعًا عليها فتح نافذة تطبيق عادية، وإلا سيتجمد النظام.

كان بإمكانهم فتح نوافذ عائمة عامة، إذ لا يمكن لهذه النوافذ اكتساب التركيز أو فقدانه. كان شريط التحكم في نظامي التشغيل Mac OS 8 و9 مثالًا على تطبيق يعمل في الخلفية دون واجهة مستخدم، حيث كان يعرض نافذة عائمة عامة لتوفير تفاعل المستخدم. وكان مُبدِّل التطبيقات مثالًا آخر. مع ذلك، لم يكن المستخدم على دراية بأن شريط التحكم عملية قيد التشغيل؛ فقد كان يُعرض ببساطة كميزة إضافية في واجهة المستخدم. وكان النظام يُعرّف تطبيقات الخلفية التي تعمل في الخلفية بأنها "تطبيقات نظام".

تم في البداية تطبيق ميزات اللغة في بنية البرمجة النصية المفتوحة (وبالتالي AppleScript ) كملحقات قابلة للتحميل ديناميكيًا تُعرف باسم "إضافات البرمجة النصية" أو OSAXes. في نظامي التشغيل Mac OS 8 و9، تم تعزيز هذه الميزات بتطبيقات خلفية غير ظاهرة يتم تحميلها في الخلفية عند الطلب. وكما هو الحال مع التطبيقات العادية، كان يتم الوصول إلى هذه التطبيقات باستخدام tellعبارات: لم يتم تحديث مساحة الاسم العامة كما هو الحال مع OSAXes. لم يُشر نظام التشغيل إلى بدء تشغيل هذه العمليات، ولا إلى ما إذا كانت قيد التشغيل أم لا.

ملحقات أخرى غير INIT

تم تحميل ملحقات من نوع INIT عند بدء التشغيل لتحديث نظام التشغيل. ومن المثير للارتباك، أنه يمكن وضع ملفات أخرى متنوعة في مجلد الملحقات أيضًا، وكثير منها لم يتم تحميله عند بدء التشغيل. أبرز هذه الملفات هي المكتبات المشتركة التي كانت توضع عادةً في مجلد الملحقات لتسهيل الوصول إليها. لم يتم تحميل المكتبات المشتركة عند بدء التشغيل.

لم تكن ملفات INIT هي النوع الوحيد من امتدادات النظام، بل كان هناك نوع آخر هو امتداد scri أو WorldScript. تم تصميم برنامج الإقلاع BootX Linux باستخدام امتداد scri لأن هذه الملفات كانت تُحمّل في وقت مبكر جدًا من عملية الإقلاع، قبل جميع الامتدادات الأخرى. وبذلك، كان BootX يعرض مربع حوار يتيح للمستخدم إكمال إقلاع نظام Mac OS أو تحميل نظام Linux بدلاً منه.

انظر أيضاً

مراجع