ما هو نظام التشغيل؟
وهل يعتبر المتصفح IE 4.0 جزءاً أساسياً من ويندوز98؟
يعتقد أكثر قراء المجلة، أنهم يعرفون مكونات نظام التشغيل. لكن، هل هذا الاعتقاد صحيح؟
يكمن في تعريف المصطلح "نظام التشغيل"، جوهر سمعة شركة مايكروسوفت في صناعة تقنية المعلومات، وسبب المشكلات التي تواجهها مع القضاء الأمريكي. ويطالب منافسو الشركة بتقسيمها إلى فرعين، أحدهما خاص بتطوير أنظمة التشغيل، وآخر خاص بتطوير التطبيقات، وتعود هذه المطالبة إلى وقت طويل، قبل الضجة الحالية التي أثارها إصرار الشركة على أن يكون برنامج تصفح إنترنت "مايكروسوفت إكسبلورر4.0"، جزءاً من نظامي التشغيل ويندوز95 وويندوز98، الأمر الذي يؤدي إلى تركيب هذا المتصفح على كل كمبيوتر يركب عليه أحد هذين النظامين. ويبرر منافسو مايكروسوفت دعوة "التقسيم"، باعتبارهم أن عمل مجموعات تطوير التطبيقات، ومجموعات تطوير أنظمة التشغيل، معاً، يمنح شركة مايكروسوفت فرصة غير عادلة، لتطوير أفضل برامج معالجات النصوص، والجداول الإلكترونية، وقواعد البيانات، وغيرها، لأن مجموعات تطوير التطبيقات تستطيع الوصول مباشرة وسريعاً، إلى جميع أسرار أنظمة التشغيل. ويبدو ما يحتج عليه هؤلاء المنافسون معقولاً، لأنه من الطبيعي، بالنسبة لشركة مايكروسوفت، الاستفادة من معرفتها الدقيقة بأنظمة التشغيل التي تنتجها، وخاصة معرفة التفاصيل غير الموثقة فيها، لجعل التطبيقات تستفيد إلى الحد الأقصى من ميزات تلك الأنظمة كاملة، بينما لا يستطيع منافسو شركة مايكروسوفت فعل ذلك، ولا توجد أمامهم طريقة حقيقية للمنافسة العادلة. يمكن، بالطبع، القول أن شركات البرمجيات الأخرى تستطيع بناء أنظمة التشغيل الخاصة بها، وتحاول الحصول على حصة من سوق شركة مايكروسوفت، لكن واقعية ذلك في سوق حر تبدو بعيدة عن بحثنا هذا.
يطرح الجدال القائم حالياً، بشأن اعتبار برنامج إنترنت إكسبلورر 4.0 جزءاً من نظام التشغيل أم لا، قضايا أكثر إثارة من الناحية التقنية. يعرف كل من ركب برنامج إنترنت إكسبلورر 4 على جهازه أنه "يتفشى" في نظام التشغيل ويندوز95، وهو موجود أصلاً ضمن نظام التشغيل ويندوز98، حيث تكون واجهة نوافذ النظام، كنافذة لوحة التحكم، وجهاز الكمبيوتر، ومستكشف ويندوز، عبارة عن واجهة متصفح إنترنت. ويمكن من أي من هذه النوافذ، تصفح شبكة ويب، والشبكة المحلية والقرص الصلب المحلي، أيضاً. فإذا كنت تستكشف مجلد C:\\Windows في نافذة "جهاز الكمبيوتر"، مثلاً، ورغبت بمعرفة إمكانية وجود ترقية جديدة لبرنامج قيادة بطاقة رسوميات، على شبكة إنترنت، لا حاجة لتشغيل برنامج تصفح منفصل، إذ أن كل ما عليك فعله، هو إدخال عنوان الموقع الذي ترغب بزيارته، في مستطيل العنوان، وستنتقل مباشرة إليه، ويتغير شريط الأزرار والقوائم، ليعكس الوضع الجديد، الذي وصلت إليه.
إذاً، هل برنامج إنترنت إكسبلورر 4 جزء من نظام التشغيل، أم لا؟ هذا هو السؤال!
لكن الإجابة ليست سهلة، على الرغم من تأكيد شركة مايكروسوفت أنه "بالطبع كذلك"، وتأكيد الشركات الأخرى أنه "بالطبع ليس كذلك". يقودنا هذا إلى سؤال حاسم: ما هو نظام التشغيل؟ وبشكل أدق، ما هي العناصر، التي إذا أضيفت إلى نظام التشغيل، يمكن أن تعتبر أجزاء متكاملة معه؟ ويأتي بعد هذا سؤال آخر: ما هي العناصر التي يعتقد المستخدمون أنها تمثل أجزاءً من نظام التشغيل؟
هذا ما سنناقشه في بقية هذا المقال.
نظام التشغيل
نظام التشغيل هو ببساطة، كما يوحي الاسم، برنامج يعمل على الكمبيوتر الشخصي، لكنه ليس البرنامج الأكثر أساسية من بين البرامج التي تعمل عليه، فهذا الشرف يخص برامج بيوس (Basic Input/Output System, BIOS). لكن نظام التشغيل، هو ما يوليه المستخدمون الاهتمام كثيراً (الشكل 1)، وهو يعمل، من جهة، كمنظم لحركة المرور، حيث يتحكم بتدفق البيانات في الكمبيوتر، ويشغل ويوقف تشغيل مختلف العمليات فيه، ويعتبر، من جهة أخرى، الواسطة التي تستطيع التطبيقات عبرها الوصول إلى العتاد، وبرمجيات النظام. ويذهب نظام التشغيل أبعد من ذلك، فهو الذي يعطي المستخدم، أيضاً، إمكانية إصدار الأوامر إلى برمجيات النظام، وتدعى هذه الإمكانية عادة، واجهة الاستخدام (User Interface)، أما الوظيفتان اللتان ذكرناهما سابقاً، فتدعى الأولى منهما واجهة العتاد (hardware interface)، والثانية واجهة البرمجة (programming interface).
إحدى المهمات الأساسية لنظام التشغيل، هي التحكم بالوصول إلى الأقراص ووسائط التخزين، وكان اسم أنظمة تشغيل الأجهزة الشخصية في أيامها الأولى، يتضمن اللفظة الأوائلية DOS، وهي تتكون من أوائل الكلمات Disk Operating System. وظهر هكذا، نظام التشغيل MS-DOS من شركة مايكروسوفت، وPC-DOS من شركة IBM، وDR-DOS من شركة Digital Research وAppleDOS (النظام السابق لأبل ماكنتوش) من شركة أبل، وAmigaDOS (لأجهزة Commodore Amiga) من شركة كومودور، وأساس الاسم الذي يعتمد على التحكم بالقرص، مازال مبطناً ضمن اختصار اسم نظام تشغيل الشبكة NOS (Network Operating System)، الذي يتحكم بعمل الشبكة. لكن نظام التشغيل لم يكن مجرد نظام للوصول إلى الأقراص ووسائط التخزين، فقد كان منذ البداية أداة للتحكم بعمليات نظام الكمبيوتر، وإدارة مهمات البرامج، أيضاً.
يعتبر المختصون بنظام التشغيل يونكس، أن نظام التشغيل يتألف من ثلاثة أجزاء رئيسية، هي: النواة (Kernel)، والقشرية (Shell)، ونظام الملفات (File system)، بينما يتجه مستخدمو دوس/ويندوز إلى عدم استخدام المصطلح "النواة"، واستخدام مصطلح "القشرية"، أحياناً فقط. لكن هذه المصطلحات مرتبطة بالموضوع بشدة. فالنواة هي مجموعة الوظائف الأدنى مستوى في نظام التشغيل، والتي تحمّل إلى الذاكرة، كلما قمت بإقلاع الجهاز، وذلك مباشرة بعد أن تعمل بعض الوظائف الموجودة في بيوس. تتولى الوظائف الموجودة في نواة أنظمة التشغيل دوس، وويندوز95، وويندوز98، وويندوز إن.تي، معالجة عمليات نقل البيانات، بين مختلف أجزاء نظام الكمبيوتر، كعملية نقل البيانات من القرص الصلب إلى الذاكرة رام، ثم المعالج، أو تحديد مقاطع من الذاكرة لمختلف عمليات النظام، التي تحدث دائماً مادام الجهاز ينفذ عملاً معيناً، وبرمجيات النواة مسؤولة، أيضاً، عن جدولة عمليات المعالج، لتسمح لوظائف القشرية بالوصول إليه.
القشرية هي الواجهة المرئية لنظام التشغيل، وهي عبارة عن برنامج يعمل في الطبقة العليا منه، ويسمح للمستخدمين بإصدار الأوامر إليه. يوجد لنظام يونكس عدد من القشريات، مثل قشريات Bourne، وKorn ، وC، وBourne Again. ومستخدمو يونكس عادة، مغرمون عادة، بالقشرية التي اختاروها، فيستغلون إمكانياتها الكامنة، ويضبطونها لتصبح مناسبة لبيئات عملهم، وينشئون الأسماء المستعارة، للأوامر التي يستخدمونها بكثرة، ويكتبون برامج لتنفيذ بعض أوامر النظام تلقائياً.
القشرية القياسية لنظام التشغيل دوس، هي البرنامج الموجود في ملف Commnad.com. تتضمن الإصدارات المختلفة من نظام التشغيل دوس، إصدارات مختلفة من ملف Command.com ، وتضيف الإصدارات الأحدث منه، أوامر جديدة، وخيارات جديدة للأوامر الموجودة سابقاً، توفر للمستخدمين مرونة أكبر للتحكم بعمل الجهاز. فقد أضافت أوامر Command.com في الإصدارة 4 من نظام التشغيل دوس، مثلاً، الخيار /p للأمر del، الذي يجعل النظام يطلب تأكيد عمليات الحذف، قبل تنفيذها فعلياً، ووفرت أوامر Command.com في الإصدارة 5 من نظام التشغيل دوس، إمكانية ترتيب أسماء الملفات والمجلدات التي يعرضها الأمر dir.
توجد قشريات مشابهة للملف Command.com، مثل NDOS و4DOS، لكنه كان، وما يزال، أشهرها. إذا أردنا أن نتوخى الدقة، فإننا انتقلنا للحديث الآن عن أمر خارج نظام التشغيل. فالقشرية ليست سوى برنامج خدمي لإدخال الأوامر والوصول إلى نظام التشغيل، لكنها ليست جزءاً من جوهر نظام التشغيل. وعلى الرغم من ذلك، وعبر تاريخ تطور الكمبيوتر، أصبحت القشرية والبرامج الأخرى تعرف كجزء من نظام التشغيل، وهنا يكمن الالتباس، وهو ما سنحاول توضيحه باختصار. إذا أردنا أن ننظر إلى جوهر نظامي تشغيل مايكروسوفت دوس/ويندوز، لا حاجة أن نبتعد بنظرنا أكثر من ملفي النظام Io.sys وMsdos.sys (في الإصدارات 6.x وما قبلها من نظام التشغيل دوس)، وهما الملفان الأساسيان في نظام التشغيل دوس، حتى الإصدارة 6.22 منه، وبالتالي في نظام التشغيل ويندوز 3.x، أيضاً، (والذي لم يكن نظام تشغيل حقيقياً، بقدر ما كان كساء لنظام التشغيل دوس). بينما يجمع الملف Io.sys في نظام التشغيل ويندوز95 ومرافقه دوس 7 وظائف هذين الملفين معاً. يمثل الملف Io.sys في نظام التشغيل دوس 6.22، أو الإصدارات الأقدم، أخفض مستوى من الواجهات البرمجية، ويتضمن وظائف تتعامل مع العتاد مباشرة، فهو يحتوي على الروتينات اللازمة للاتصال بين نظام التشغيل ووظائف بيوس في الجهاز، والوصول إلى مسجلات المعالج، بينما يتضمن الملف Msdos.sys الروتينات ذات المستوى الأعلى، مثل معالجة الملفات، وتحويل أوامر التطبيقات إلى مجموعة تعليمات لوظائف الملف Io.sys.
يختلف ملف Io.sys في دوس 7/ويندوز95 وويندوز98، عن الملف ذاته في دوس/ويندوز 3.x، فهو يلغي بشكل أساسي، الحاجة لوجود ملفي التجهيز Config.sys وAutoexec.bat، الخاصين بنظام التشغيل دوس، ويحمّل ملف Himem.sys، للوصول إلى منطقة الذاكرة العليا، وملف Ifshlp.sys، وهو برنامج تحميل برامج القيادة، وملف Dblspace.bin أو Drvspace.bin، وهي برامج خدمية لضغط الأقراص. تسمح الإصدارة الجديدة من ملف Io.sys، بتحميل خيارات ملف Config.sys القديمة، مثل أوامر FILES، وSTACKS وBUFFERS وSHELL. تعني هذه التعديلات في Io.sys، أن العناصر التي كانت، سابقاً، خيارات مثل DriveSpace وDoubleSpace، أصبحت، بسبب تضمينها في ملف Io.sys، مبنية داخل نظام التشغيل، وهذا ما كان يحدث باستمرار خلال تطور أنظمة التشغيل. يختلف الملف Msdos.sys، أيضاً، بين إصدارتيه في أنظمة التشغيل دوس ويندوز95 وويندوز98، وأصبح يتضمن معلومات عن خيارات الإقلاع، ومواقع ملفات النظام، بما فيها موقع ملف التسجيل في ويندوز. يوجد هذان الملفان في الدليل الرئيسي لقرص الإقلاع، وهما مخفيان عن العرض بشكل ضمني، سواء في مستكشف ويندوز أو إدارة الملفات أو أمر Dir. والهدف من إخفائهما، أن لا يعبث أحد بهما ويخربهما، فما لا يمكن رؤيته لا يمكن العبث به. ويحمل الملفان، أيضاً، صفة "للقراءة فقط"، أي لا يمكن حذفهما خطأً، ولكن يمكن بالخطأ، اختيارهما مع الملفات الأخرى، ونقر "موافق" عندما يسأل النظام إذا كنت متأكداً من عملية الحذف، مما يؤدي إلى حذفهما. (يجادل البعض أن أنظمة التشغيل الضعيفة، فقط، يمكن أن تسمح بحذف ملفات النظام الحساسة، أثناء تشغيل النظام ذاته. فلا يسمح نظام التشغيل ويندوز إن.تي، مثلاً، بذلك، على الأقل ليس إذا ركب على نظام ملفات ويندوز إن.تي: لا يمكن حذف ملفات النظام أثناء عمل نظام التشغيل ويندوز إن.تي، ولا يمكن، في هذه الحالة، أيضاً، تهيئة القرص الصلب الرئيسي، أو تقسيمه باستخدام الأمر FDISK، بينما يمكن حذف ملفات النظام، في دوس أو ويندوز95، بدون عناء فور ظهورهما، لكن لن يقلع، بعدها، نظام التشغيل!)
توفر أنظمة التشغيل نوعاً من العزل بين طبقتي التطبيقات والعتاد، وذلك عبر ما يسمى واجهة برمجة التطبيقات API (Application Programming Interface)، التي توفر للمبرمجين أسلوباً قياسياً لاستدعاء إجراءات عامة محددة الوظائف، أو إجراءات تستدعي روتينات تحكم بعتاد معين، ويتم تحديث وظائف واجهة برمجة التطبيقات، كلما توفر عتاد جديد. لكن هذا ليس كافياً للاتصال بالعتاد بشكل صحيح، إذ يستخدم نظام التشغيل برامج قيادة (drivers) كتبت خصيصاً لتأمين الاتصال بين نظام التشغيل وقطعة معينة من العتاد، كبطاقة رسوميات، مثلاً. يضيف نظام التشغيل ويندوز95، على ذلك طبقة برامج قيادة ثانية، تدعى برامج القيادة الظاهرية (virtual driver)، والتي تعمل كواجهة ربط بين التطبيقات، التي تطلب إصدار صوت، مثلاً، وبرنامج قيادة بطاقة صوت معينة موجودة في الجهاز. يؤدي تحديث وظائف واجهة برمجة التطبيقات إلى تغييرات أساسية في قدرات نظام التشغيل. ومثال جيد على ذلك، إضافة وظائف DirectX إلى نظام التشغيل ويندوز95، وهي ليست مرفقة بالنظام لدى شرائه، لكن إضافتها لاحقاً، يوفر دعماً تقنياً لتشغيل مجموعة واسعة من تطبيقات الرسوميات التي تعتمد ويندوز95.
البرامج الخدمية والبرامج المضافة
[size=12]يتألف نظام التشغيل السليم، بشكل رئيسي، من ملفات النظام ذاته، وملفات القشرية التي تسمح للمستخدم بالتفاعل معه، لكن، وعبر تقدم الأعوام، وجد عدد متزايد من الأجزاء طريقه إلى ما يعرفه المستخدمون الآن بنظام التشغيل. ذكرنا حتى الآن، مثالاً واحداً على ذلك، وهو إضافة البرامج الخدمية الخاصة بضغط الأقراص إلى نظام التشغيل، وهي برامج طرحها أصلاً، منتجون آخرون غير شركة مايكروسوفت، (من ذلك البرنامجين Stacker وXtraDrive)، وتم ذلك في بداية التسعينيات، حيث اشترت مايكروسوفت برنامج Stacker، ودمجته في رزمة نظام التشغيل ضمن برنامج DoubleSpace. أ