مفهوم البرنامج
يمكن تعريف البرنامج على أنه "مجموعة من التعليمات والأوامر التي توضح للحاسب تسلسل الخطوات التي ينبغي القيام بها لأداء مهام معينة لحل المشكلة المطروحة واستخراج النتائج. ويختزن البرنامج في الذاكرة الرئيسية للحاسب لتوجهه لإنجاز العمليات المطلوبة وتمكنه أيضا من إدارة ومراقبة وتنظيم مكوناته المادية لتحقيق المهمة المطلوبة".
وتتوفر هذه البرامج عادة على اسطوانات مدمجة CD أو أقراص DVD أو حتى أحياناً على أقراص لينة .كما إن هناك تشابه إلى حد ملحوظ بين كثير من البرامج، فعلي سبيل المثال، يوجد عشرات البرمجيات (التي يمكن الاختيار فيما بينها) والمتخصصة في تحرير الصور، معالجة الأفلام المتحركة، البرامج الخاصة بتصفح الشبكة العنكبوتية (الويب) وكذلك الكثير منها لتشغيل الفيديو...وكل تلك البرمجيات متشابهة إلي حد كبير في الوظائف والمهام التي تستطيع القيام بها....
برنامج القيادة
برنامج القيادة عبارة عن برنامج تنتجه الشركة المصنعة للمكون المادي، ويركب في الحاسب ليتيح له فرصة التعرف على وجود و التعامل مع مكون مادي معين، ولكل نموذج (موديل) من المكون المادي برنامج القيادة الخاص به، فلكل بطاقة فيديو برنامج القيادة الخاص بها ولكل طابعة برنامج قيادة خاص بها...
وبرنامج القيادة تتم كتابته لنظام تشغيل معين، فعلي سبيل المثال (بطاقة الصوت) يكون لها برنامج قيادة متوافق مع نظام تشغيل ويندوز بينما ليس لها برنامج قيادة تحت نظام تشغيل لينكس، والطابعة معينة يتوفر لها برنامج قيادة لويندوز فقط...... ويأتي برنامج القيادة عادة مع المكون المادي عند شرائه في أقراص مدمجة أو أقراص مرنة.
والمهمة الرئيسية لبرنامج القيادة تكمن في لعب ور الوسيط بين نظام التشغيل وبين العتاد إو المكون المادي وذلك حتى يتمكن كلا منهما من التفاهم والتحاور مع بعضهما.
برنامج القيادة هو الوسيط بين نظام التشغيل وبين العتاد أو المكون المادي
برمجيات الحاسب
تنقسم برمجيات الحاسب إلي قسمين أساسيين، بالنسبة للقسم الأول فيطلق عليه برمجيات النظم والذي ينقسم بدوره إلي برمجيات نظم التشغيل و مترجمات اللغات وبرمجيات الخدمة، بالنسبة للقسم الثاني فيتعلق ببرمجيات التطبيقات والتي من أبرز أمثلتها برامج معالجة النصوص وبرامج الجداول الحسابية وبرامج قواعد البيانات...... وفيما يلي نتناول معالجة كل قسم من هذه الأقسام.
برمجيات الحاسب
1. برمجيات النظام System Software
هي البرامج التي تتحكم وتشرف على منظومة عمل الحاسب بأكمله من مكونات مادية وتنظيمية (برمجيات) وتعمل على التنسيق والتناغم بينهما. وعادة ما تأتى برمجيات النظام مختزنة بذاكرة الحاسب الرئيسية في الجزء الخاص بذاكرة القراءة فقط ROM. وتقوم بإعدادها واختزانها الشركات المصنعة للحاسبات.
وتنقسم برمجيات النظم إلى ثلاثة أنواع رئيسية:
نظام التشغيل – مترجمات اللغات – برامج الخدمة
1.1. برامج نظم التشغيل Operating System (OS)
يتم التعامل مع الحاسب من خلال نظام التشغيل الذي يتكون من برامج منفصلة Modules والتي تعمل متكاملة ومنسجمة مع بعضها.
مهام نظام التشغيل الأساسية
• تحميل برامج التطبيقات من وحدة التخزين الثانوية إلي وحدة الذاكرة الرئيسية وإعدادها للتشغيل
• تشغيل البرامج واستدعاء أي برنامج من برامج الخدمة تحتاجها عمليات التشغيل
• التحكم في اختيار وعمل وحدات الإدخال والإخراج
• التحكم في تشغيل مجموعة برامج في وقت واحد وتحديد اولويات التشغيل لكل برنامج.
• إخطار المستفيد بأي عطل يحدث للأجهزة أثناء التشغيل وذلك حتى يتمكن من تصحيح الأخطاء وإزالة الخلل ودراسة حالة النظام بصفة عامة
• تامين وحماية بيانات وبرامج مستخدم الحاسب
• تزويد المستخدم بتقارير عن تشغيل برامجهم وبياناتهم
خصائص نظام التشغيل
• برامج داخلية خاصة تدير وتراقب نظام الحاسب.
• تختلف برامج نظام التشغيل باختلاف نوع وطراز الحاسب والشركة المصنعة
• غير مسموح للمستخدم أجراء أي تعديلات في برنامج نظام التشغيل
• تفرض برامج التشغيل خصائص معينة على برامج التطبيق المستخدم معها
مكونات نظام التشغيل
• المشرف أو الموجه Supervisor
هو البرنامج الرئيسي الذي يستقبل البيانات ويوجه ويراقب سير العمل بالحاسب والتحكم في عملياته والتدخل لمقطاعة وتوقيف عملياته عند اللزوم
• مدير الإدخال/الإخراج I/O Manager
هو البرنامج المخصص للتعامل مع وحدات الإدخال والإخراج للحاسب.
• مدير الملفات Files Manager
هو البرنامج الذي يتعامل مع الملفات ومكونات بنائها من تسجيلة فحقل فعنصر بياني وأطوال كل حقل.
• برنامج أوامر Command Program
يتكون من أوامر وتعليمات مباشرة توجه إلى نظام التشغيل للتنفيذ المباشر.
1.2. مترجمات اللغات Compilers / Interpreters
اللغة التي يتعامل معها الحاسب هي اللغة الثنائية لذا فيجب ترجمة البيانات والتعليمات الخاصة بالبرامج التي تكتب بلغات الأداء العالي إلى اللغة الثنائية في مرحلة الإدخال ومرحلة الإخراج. ولذا يتم تجهيز الحاسب ببرنامج مترجم (Compiler) وهو برنامج يعد خصيصا للقيام بعملية فك الشفرة الخاصة بالبيانات والتعليمات ووضع المقابل لها في اللغة الثنائية تمهيدا لقيام الحاسب بمعالجة البيانات وتنفيذ التعليمات. يسمى هذا البرنامج عند ترجمته بكود المصدر (Source Code).
تتم عملية الترجمة مرة واحدة واختزانها بذاكرة الحاسب ويطلق عليها بعد التخزين برنامج الهدف (Object Program) ويستخدم عند الحاجة. الحاسب أيضا يجهز ببرنامج المفسر Interpreter ويقوم بترجمة كود المصدر خطوة بخطوة أثناء تنفيذ البرنامج.
برنامج المترجم أسرع من برنامج المفسر وذلك لقيامه بترجمة برنامج المصدر مرة واحدة ولذا فهو يشغل حيث كبير في ذاكرة الحاسب. أما برنامج المفسر فأنه يترجم كود المصدر خطوة بخطوة أثناء تنفيذ البرنامج لذا فانه يتطلب حيز أقل في ذاكرة الحاسب من برنامج المترجم. كما أن برنامج المفسر يمكن إيقافه أثناء التشغيل عند أي وضع ثم أعادة التشغيل مرة اخرى على عكس برنامج المترجم. ولذا فان برنامج المفسر يعتبر مناسب أثناء كتابة برامج التطبيق واكتشاف أخطائه وتصحيحه وبعد التأكد من خلوه من الأخطاء يحول إلى برنامج المصدر.
1.3. البرامج المساعدة Utility Programs
البرامج المساعدة أو برامج الخدمة أو برامج المنفعة العامة جميعها مترادفات لمجموعة من البرامج المنفصلة التي يؤدى كل منها مهام أو وظائف محددة تستخدم للسيطرة على المكونات المادية والبرمجيات الخاصة بتنفيذ وظائف نظام التشغيل DOS. ومن أهم وظائف البرامج المساعدة (الفرز والضم والدمج، البحث، النسخ....)
2. برمجيات التطبيقات Application Software
هي مجموعات البرامج التي تعد خصيصا لحل مشكلة أو مشاكل معينة يرغب المستفيد في استخدام الحاسب في حلها. تصميم وتكتب هذه البرامج عادة بواسطة المستفيد أو الحصول عليها من بيت من بيوت الخبرة المتخصصة في هذا المجال.
تنقسم لغات البرمجيات إلي:
• لغات المستوى المنخفض Low Level Language وهي تنقسم الى لغة الآلة Machine Language واللغة الرمزية أو لغة التجميع Symbolic Or Assembly
• لغات المستوى العالي High Level Language
وهى لغات تستخدم الحروف والأرقام التي نتعامل بها في لغتنا العادية ولذا سهلت عملية التعامل مع الحاسب. من أمثلة هذه اللغات: اللغات الاجرائية Procedural Language مثل الفورتران والكوبول ولغة البسكال، لغات الانحياز للمشكلات Problem Oriented Language وتمثلها لغات البرمجة الشيئية Object Oriented Language واللغات الطبيعية Natural Language وهى تعتمد على استخدام القواعد العادية للغة المستفيد.
مميزات اللغات ذات المستوى العالي:
• سهولة الكتابة وسهولة تصحيح الأخطاء
• سهولة تعلمها وسهولة كتابة البرامج التطبيقية بها
• عدم ارتباطها بنوعية معينة من الحاسبات
• استخدامها في تنفيذ البرامج التطبيقية التي تتصدى لمعالجة المشكلات المعقدة
• توفير الوقت والجهد الذي كان يقوم به مخططوا البرامج أثناء كتابتها للبرامج بلغة الآلة أو التجميع