دورة ماك للعرب - برمجة Apple
القسم الأول من أقسام Carbon - المبتدئ
الوحدة الثانية - الدرس الثاني
المدخل إلى الـ Carbon
لمحة عن برمجة نظام الماكنتوش - الجزء الأول
الجمعة الموافق 29-صفر- 1429هـ 7-3-2008م
_________________________________________________
المصدر: كتاب (داخل Carbon) - تأليف أبو بكر، جميع الحقوق محفوظة لماك للعرب فقط.
التصنيف المتبع لأجزاء نظام التشغيل في الأصل لـ
Apple قمت بذكره بنفس الترتيب.
المرجع: داخل الماكنتوش وهو مرجع Apple الخاص بها.
_________________________________________________
الأهداف:- التعرف على أجزاء نظام تشغيل الماكنتوش وأقسامه.
- التعرف على أهم إدارات نظام التشغيل.
- استخدام كل من الإدارات التالية لإنشاء برنامج أشكال ڤن من خلال دروس اللمحة:
- إدارة الذاكرة.
- إدارة الأحداث الكاربونية
- إدارة الرسم
- إدارة النوافذ الكاربونية
- إدارة مربعات الحوار الكاربونية
- إدارة القوائم الكاربونية
برمجيات نظام التشغيل:- إن ثراء واجهة -مستخدم الماكنتوش- يقابله وبشكل وثيق عدد الروتينات الهائلة التي تتوفر في برمجيات نظام التشغيل، فلقد تجاوز عدد روتينات برمجيات نظام الماكنتوش مائة ألف روتين، كالروتين الذي سبق وأن تناولناه NewWindow، ومن الرائع بالفعل أن جميع هذه الروتينات متاحة لمطوري برامج تعمل من خلال بيئة نظام الماكنتوش. ومن حسن الحظ أنك لست بحاجة لتتعلم وتدرس كل روتين منها قبل أن تبدأ بعملية تطوير البرامج، إن البرنامج الذي سبق وأن تناولناه في الدرس الأول من دروس Carbon يعتبر أنموذجا يسيرا لبرنامج تطبيقي تم إنشاؤه باستخدام عدد يسير من الروتينات. إن أي برنامج نموذجي قد يستدعي وبشكل مباشر بضع مئات من هذه الروتينات.
- لقد تم تقسيم مجموعة روتينات برمجيات نظام التشغيل بأكملها وبشكل منطقي إلى مجموعات وظيفية، وتعرف هذه المجموعات باسم الإدارات، والتي تقوم بمعالجة وأداء مهمة معينة، أو تختص بمعالجة عنصر محدد من عناصر واجهة نظام التشغيل (كالقائمة والنافذة ومربع الحوار، وهو ما سنتعرف عليه من خلال دراستنا هذه لبرمجة Carbon) وهو ما قصدناه سابقا بقولنا: إدارات نظام التشغيل. وعلى سبيل المثال فقط: إن الروتين NewWindow الذي سبق وأن استخدمناه تابع لإدارة النوافذ، وهي جزء من برمجيات نظام التشغيل تسمح لك بإنشاء وتحريك وإخفاء وتغيير حجم أي من النوافذ، كما تتيح لك إمكانية معالجة هذه النوافذ على حد سواء.
وبالمثل إن أجزاء برمجيات نظام التشغيل التي تتيح لك إنشاء ومعالجة القوائم تابعة لإدارة القوائم.
- إن على برنامجك التطبيقي أن يقوم باستدعاء روتينات معينة من برمجيات نظام التشغيل ليقوم بإنشاء عناصر واجهة استخدام نموذجية قياسية كالتي يقدمها برنامج Finder (الباحث)، وأيضا ليقوم بتنظيم أعماله التي تتعلق مع برامج أخرى أثناء عملها. يعدُّ برنامج Finder أكثر البرامج التي سيتعامل معها برنامجك، ومن مهماته أنه يتعقب جميع ملفات الحاسوب، كما يقوم بإدارة سطح مكتب حاسوبك، كما أنه البرنامج الذي يقوم بتغذية تطبيقك عندما يضغط المستخدم على رمزه (أو رمز أحد وثائقه) مرتين لفتحه. لا يُعدُّ برنامج Finder واحد من برمجيات نظام التشغيل فقط، ولكنه يعتبر قطعة هامة من واجهة مستخدم الماكنتوش الرسومية ففي بعض الأحيان يصعب تحديد علاقة Finder ببرمجيات نظام التشغيل، وتحديد أين ينتهي وأين تبدأ هذه البرمجيات، ولكن مجموعة برمجيات نظام التشغيل تزودنا بمجموعة من الروتينات الهامة تعرف باسم Finder Interface نستخدمها لنتواصل مع هذا البرنامج الهام.
- إن أغلبَ روتينات برمجيات نظام التشغيل تعد إما من أجزاء نظام تشغيل الماكنتوش وإما من أجزاء صندوق أدوات الماكنتوش.
وفي هذا الجزء من الدرس سنتناول موضوع
تقسيم برمجيات نظام التشغيل إلى
وحداته المنطقية، و
من الضروري جدا لِتَعلُّمِ وَفَهْمِ برمجة الماكنتوش،
فَهْمُ معنى الوحدات المنطقية فتم تقسيم نظام التشغيل إلى إدارات عديدة، ووحدات مختلفة، سيأتي تبيانها.
أجزاء برمجيات نظام التشغيل:- أولا: صندوق أدوات الماكنتوش The Macintosh Toolbox:
- إن روتينات برمجيات نظام التشغيل المستخدمة في المثال المذكور في الدرس الأول من دروس Carbon تتيح لك إدارة بعض عناصر واجهة استخدام الماكنتوش، وهذه العناصر تابعة لصندوق أدوات الماكنتوش (والتي في بعض الأحيان تعرف باسم صندوق أدوات واجهة استخدام الماكنتوش). وباستخدام الأدوات الواردة في هذا الصندوق واستدعاء أي من روتيناته يضمن لك ذلك أن يكون شكل برنامجك متوافق تماما ومنسجم ومتناغم مع شكل برمجيات النظام، كما يجعله سهل الاستخدام بشكل كبير، ويوفر عليك جهدا ووقتا كبيرين أثناء تطويره، كما يتطلب ذلك كتابة شيفرة أقل طولا، مما يعني أسهل عند تعديله أو تطوير إصدار ثان منه.
وفي نفس الوقت، يتيح صندوق الأدوات قدرا كبيرا من المرونة فيستطيع برنامجك كلما دعت الحاجة استخدام شيفراته الخاصة بدلا من روتينات صندوق الأدوات، وكما يستطيع برنامجك أيضا أن يقوم بتعريف كل من نوافذه وقوائمه وعناصر التحكم الخاصة به التي تختلف في شكلها ومظهرها وسلوكها عن مثيلاتها في صندوق أدوات الماكنتوش.
- وبشكل عام يجب عليك استخدام روتينات صندوق الأدوات كلما أمكن ذلك، لتحقيق أقصى قدر من التوافق مع برمجيات نظام التشغيل الحالية والمستقبلية. فمثلا عند تشغيل أحد البرامج (شريطة أن يستخدم صندوق الأدوات) على نظام Classic وتشغيل نفس البرنامج (هناك بعض البرامج تعمل على عدة أنظمة دون تعديل أي من محتوياتها كبرنامج Photshop 7) على نظام X ستجد أن شكل عناصر واجهة البرنامج متوافق مع النظام الحالي.
- ملاحظة مهمة: لأسباب تاريخية، تُعرَفُ بعض مجموعات روتينات برمجيات نظام التشغيل على أنها حقائب وليست إدارات. مثل حقيبة الملف القياسية Standard File Package، والتي تتيح لك استخدام مربعات حوار فتح وحفظ الملفات النموذجية التي يستخدمها نظام التشغيل.
بشكل عام، هذا التفريق بين الإدارة والحقيبة غير مهم.
- لنلق نظرة على هذه الروتينات:
كود:
InitGraf (&thePort);
InitFonts();
InitWindows();
InitCursor();
وظيفة هذه الروتينات هي تجهيز وتحليل بعض إدارات صندوق الأدوات الضرورية، فيقوم الروتين InitGraf بتجهيز إدارة الرسم السريع المعروفة باسم QuickDraw وإعداد بيئة رسم لبرنامجك وتجهيز بعض أجزاء صندوق الأدوات لتستطيع استخدامها لاحقا أثناء التطوير، وكذلك الروتين InitFonts يقوم بتجهيز إدارة الخطوط، ويقوم الروتين InitWindows بتجهيز إدارة النوافذ، والروتين InitCursor يستخدم لإعداد شكل المؤشر الافتراضي وهو السهم، وهو روتين ينتمي إلى إدارة الرسمQuickDraw.
من المهم في أنظمة التشغيل التي سبقت نظام X أنه يجب استدعاء هذه الروتينات في بداية البرنامج وقبل استدعاء أي روتين أخر، ولكن في نظام X ولأن بنيته اختلفت عن بنية نظام Classic بجميع اصداراته لا حاجة لاستدعاء أي روتين منها، لأن نظام X يقوم بتجهيز جميع الإدارات بحسب الحاجة!، مما يتيح لك ذلك إمكانية استدعاء أي روتين من برمجيات نظام التشغيل أو صندوق الأدوات على الفور.
إن الروتين InitGraf يقوم بتجهيز إدارة الرسم QuickDraw وهي جزء رئيسي من أجزاء صندوق الأدوات تقوم بالرسم على الشاشة ومعالجة جميع عمليات الرسم. ولأن بيئة واجهة استخدام الماكنتوش بيئة رسومية بشكل كامل فإن روتينات إدارة الرسم يتم استدعاؤها بالخفاء من قبل جميع إدارات صندوق الأدوات، مثال: إدارة النوافذ Window Manager تقوم باستدعاء إدارة الرسم لرسم النافذة بجميع أجزائها وأقسامها (كشريط العنوان، ومربع الإقفال والتكبير والتصغير) لذلك كان على المبرمج أن يبدأ بتجهيز إدارة الرسم قبل أن يبدأ بتجهيز أية إدارة أخرى.
ملاحظة: إن إدارة QuickDraw هي لغة العرض والرسم الرئيسية، وذلك في جميع الأنظمة من الإصدار الأول وحتى نظام Classic، وأما في نظام X فإن لغة العرض على الشاشة والرسم هي Quartz، لكننا سبندأ بتعلم QuickDraw وذلك للأسباب التالية:- أن واجهة نظام الماكنتوش بأكملها (من الإصدار الأول وحتى الإصدار 9) كانت تصمم باستخدام QuickDraw.
- تمتاز QuickDraw بسهولة وقوة كبيرة، فبها يستطيع المستخدم توصيل عدة شاشات على حاسوب الماكنتوش، وبدأ ذلك منذ العام 1984 حيث تم توصيل أربعة شاشات حينها.
- تعد QuickDraw لغة العرض والرسم والطباعة.
- كما أنها تفوقت على تقنيات Microsoft المستخدمة لعمليات الرسوم في أنظمتها.
- لقد بدأت تقنية Quartz من حيث قد توقفت QuickDraw، فمن الأفضل دراسة QuickDraw ثم الانتقال إلى Quartz.
- ولعل من أهم ميزاتها أنها إدارة منطقية رياضية (تعمل وفق المنطق الإلكتروني والحساب).
ولقد انبثق اسمها QuickDraw من مهمتها التي طُورت لأدائها، وهي إنجاز عمليات الرسم الأساسية بسرعة استثنائية كبيرة. وهذا ضروري جدا لواجهة استخدام تعتمد بشكل أساسي على الرسوم الثقيلة.
إن برنامجك التطبيقي يقوم باستدعاء روتينات QuickDraw بشكل مباشر وذلك ليقوم بالرسم داخل النافذة، وإعداد مساحات العمل التي تستخدم لاحقا عند استدعاء مختلف إدارات صندوق الأدوات. وتوفر إدارة الرسم QuickDraw مجموعة ثرية من الروتينات لأداء ما يلي:- تغيير وإخفاء وإظهار المؤشر (رمز جهاز الفأرة).
- معالجة ميناء الرسم الحالي.
- إعداد خصائص قلم الرسم.
- رسم النصوص.
- إدارة و معالجة الألوان.
- تحديد وتعريف الأشكال الهندسية الأساسية (المستطيلات، والأشكال البيضاوية، الأقواس، الخ..).
- تحديد وتعريف شكل الإقليم بطريقة تعسفية.
- تنفيذ العمليات على كل من الأشكال الهندسية والأقاليم.
- ومن المهم جدا تذكره هو أنك عندما ترى شيئا على الشاشة فإن إدارة الرسم QuickDraw تكمن في مكان ما وراءه سواء بطريقة مباشرة (كأن تقوم برسمه) أو بطريقة غير مباشرة (كأن تستدعي إحدى روتينات صندوق الأدوات والتي بدورها تستدعي إدارة الرسم لتقوم برسمه).
- إدارات صندوق أدوات الماكنتوش The Macintosh Toolbox:
- إدارة الرسم QuickDraw وهي المسؤولة عن جميع عمليات الرسوم، كما سبق ذكره.
- إدارة النوافذ Window Manager.
- إدارة صندوق الحوار Dialog Manager.
- إدارة عناصر التحكم Control Manager.
- إدارة القوائم Menu Manager.
- إدارة الأحداث Event Manager.
- إدارة تحرير النصوص البسيطة TextEdit.
- إدارة الموارد Resource Manager.
- الاتصال بالباحث Finder Interface.
- إدارة المسوّدة Scrap Manager.
- حقيبة الملف القياسية Standard File Package.
- إدارة التعليمات Help Manager.
- إدارة القائمة(الجدول) List Manager.
- إدارة الصوت Sound Manager.
- إدارة وحدة إدخال الصوت Sound Input Manager.
- ثانيا: نظام تشغيل الماكنتوش The Macintosh Operating System:
- يقدم نظام تشغيل الماكنتوش روتينات تسمح بأداء مهمات تتعلق بعتاد الماكنتوش بشكل مباشر، وهو ما يعرف بالمهمات ذات المستوى المنخفض مثل: إدخال وإخراج الملفات، وإدارة الذاكرة والعمليات، والتحكم بمختلف الأجهزة.
- إن صندوق أدوات الماكنتوش يعتبر ذا مستوى أعلى من مستوى نظام التشغيل، لأن روتيناته تستخدم لتطبيق واجهة مستخدم الماكنتوش القياسية، ومع ذلك يستدعي صندوق الأدوات روتينات نظام التشغيل لأداء المهمات المنخفضة المستوى بحسب الحاجة.
- أجزاء نظام التشغيل ذات المستوى المنخفض:
- إدارة العمليات Process Manager.
- إدارة الذاكرة Memory Manager.
- إدارة الذاكرة التخيلية Virtual Memory Manager.
- إدارة الملفات File Manager.
- إدارة تحديد الملفات Alias Manager.
- إدارة تجهيز الأقراص Disk Initialization Manager.
- إدارة الأجهزة Device Manager.
- إدارة منفذ «سكزي» SCSI Manager.
- إدارة التوقيت Time Manager.
- إدارة تقفي الأثر العامودية Vertical Retrace Manager.
- إدارة إيقاف التشغيل ShutDown Manager.
- ثالثا: خدمات إضافية من برمجيات نظام التشغيل:
- تحتوي برمجيات نظام التشغيل على أجزاء أخرى لا تنتمي إلى أيٍّ من صندوق الأدوات أو نظام تشغيل الماكنتوش بشكل أساسي. وتوفر برمجيات نظام التشغيل مجموعة من الخدمات قوية للغاية يمكنك استخدامها لمعالجة النصوص ودعم متطلبات تفاوت واختلاف اللغات العالمية وأنظمة الكتابة.
- وهناك مجموعة أخرى من برمجيات نظام التشغيل تشتمل على عناصر اتصال البرامج بعضها ببعض، وإدارات QuickTime وصندوق أدوات الاتصالات.
- معالجة النصوص: الإدارات الهامة لمعالجة النصوص:
- إدارة الرسم QuickDraw لأنها إدارة الرسوم الرئيسية في بيئة نظام الماكنتوش بشكل عام.
- إدارة الخطوط Font Manager.
- استعمالات النصوص Text Utilities.
- إدارة النص Script Manager.
- إدارة خدمات النصوص Text Services Manager..
- اتصال التطبيقات فيما بينها: إن معمارية اتصال التطبيقات فيما بينها (IAC) توفر البنية الموحدة الآلية للاتصال بين برامج الماكنتوش. وتشتمل معمارية (IAC) على الأجزاء الرئيسية التالية:
- إدارة التحرير Edition Manager وهي التي توفر عمليات النسخ واللصق الأتوماتيكية بين البرامج التطبيقية، مما يجع البيانات مشتركة بشكل ديناميكي.
- إدارة أحداث أپل Apple Event Manager.
- إدارة الأحداث العامة Event Manager.
- صندوق أدوات الاتصال من برنامج إلى آخر Program-to-Program Communications (PPC) Toolbox.
- إدارات QuickTime: وهي مجموعة من الإدارات وعناصر أخرى من عناصر برمجيات نظام التشغيل تتيح لبرنامجك التحكم في البيانات المتعلقة بالزمن. وتتكون مجموعة QuickTime من:
- صندوق أدوات الفيلم Movie Toolbox.
- إدارة ضغط الصورة Image Compression Manager.
- مجموعة من العناصر تم تعريفها مسبقا في نظام التشغيل.
- صندوق أدوات الاتصال Communication Toolbox: وهو عبارة عن مجموعة من إدارات برمجيات نظام التشغيل توفر لبرنامجك استخدام الشبكات وخدمات الاتصال بين مجموعة من الحواسيب، ويشتمل هذا الصندوق بشكل أساسي على أربعة إدارات وهي:
- إدارة الاتصال Connection Manager.
- إدارة المحطة Terminal Manager.
- إدارة نقل الملفات File Transfer Manager.
- إدارة موار الاتصالات Communications Resource Manager.
بهذا نكون قد تعرفنا على أهم أجزاء برمجيات نظام تشغيل الماكنتوش والتي تعرف حاليا باسم Carbon، وفي الجزء الثاني من هذا الدرس سنبدأ بمشيئة الله ببرمجة Carbon بشكل جيد. كل ما عليك أخي أو أختي القيام به هو إتقان لغة C، و
سنضطر في بعض الأحيان إلى إلقاء الضوء على بعض الملاحظات المنطقية التي يدرسها الإخوة في اختصاص البرمجة وهي المادة التي تعرف باسم: Digital Logic Design.
الأسئلة:
اختر الإجابات الصحيحة أو الأنسب في كل مما يأتي (قد تكون أكثر من إجابة صحيحة):
١- إن نظام تشغيل الماكنتوش هو عبارة عن:
(أ) مجموعة كبيرة من الإدارات.
(ب) مجموعة هائلة من الروتينات.
(ج) إدارات صندوق الأدوات أو العُدَّة.
(د) إدارات عالية المستوى.
٢- الإدارات ذات المستوى المنخفض تقوم بأداء مهماتها في:
(أ) وحدة المعالجة المركزية للحاسوب CPU فقط.
(ب) وحدة الذاكرة فقط.
(ج) وحدة الصوت وإدخال الأمواج الصوتية.
(د) جميع ما سبق.
٣- تعتبر من أهم إدارات نظام التشغيل:
(أ) إدارة عناصر التحكم Control Manager.
(ب) إدارة القوائم Menu Manager.
(ج) إدارة أحداث أپل.
(د) إدارة الرسم QuickDraw.
٤- من وظائف إدارة الرسم:
(أ) إظهار الأفلام على الشاشة كلقطات صورية.
(ب) السماح للمستخدم بعمليات الاتصال بين التطبيقات.
(ج) تسجيل الأصوات.
(د) ضغط الصور.
٥- الروتين NewWindow تابع لـ:
(أ) إدارة النوافذ.
(ب) إدارة مربعات الحوار.
(ج) إدارة التعليمات.
(د) صندوق أدوات الماكنتوش.
٦- الروتين InitGraf، وظيفته:
(أ) تجهيز ميناء رسم إدارة النوافذ العام لبرنامجك، مما يجعله مستعدا لاستدعاء روتينات الرسم.
(ب) تجهيز قوائم برنامجك التطبيقي.
(ج) ليس له وظيفة محددة.
(د) تجهيز وتحليل إدارة النوافذ.
٧- إن الروتينات التي تسمح بأداء مهمات تتعلق بعتاد الماكنتوش، تنتمي إلى:
(أ) صندوق أدوات الماكنتوش.
(ب) واجهة استخدام نظام الماكنتوش.
(ج) نظام تشغيل الماكنتوش.
(د) خدمات إضافية من نظام تشغيل الماكنتوش.
٨- يسمح صندوق أدوات الماكنتوش للمبرمج بـ:
(أ) أن يقوم بتعريف عناصر واجهة استخدامه كما يفضل.
(ب) أن يستخدم عناصر الصندوق دون تعديلها.
(ج) أن يستخدم عنصر قياسي ويغير من سلوكه.
(د) أن يستخدم نصوص برمجية خاصة به بدلا من استخدام الروتينات المتوفرة في الصندوق.
٩- إن إدارة الرسم QuickDraw يتم استدعاؤها (استدعاء أي من روتيناتها) من قِبَلِ:
(أ) إدارة الأصوات.
(ب) إدارة النوافذ.
(ج) إدارة الاتصال.
(د) إدارة التحرير.
١٠- واحدة من هذه الإدارات لا علاقة لها بمعالجة النصوص:
(أ) Text Utilities
(ب) Script Manager
(ج) Font Manager
(د) Scrap Manager
بانتظار استفساراتكم وأسئلتكم وإجاباتكم، والله الهادي والموفق إلى سواء السبيل.