ما هو البرنامج الثابت؟

يُنسب إلى عالم الحاسوب الأمريكي آشر أوبلر ابتكار مصطلح البرمجيات الثابتة (Firmware) في عام 1967. وقد استخدم هذا المصطلح لوصف نوع من البرامج المصغرة التي تقع بين مكونات العتاد والبرمجيات. أما اليوم، فيُعتبر المصطلح مزيجًا من كلمتين: "البرمجيات الثابتة" و"البرمجيات". البرمجيات الثابتة تعني البرامج المدمجة في العتاد والتي لا يُفترض تحديثها بشكل متكرر، بينما البرمجيات تعني البرامج المصممة لجهاز معين.

{getToc} $title={محتويات المقال}

ما هو البرنامج الثابت؟

البرامج الثابتة، والمعروفة أيضاً باسم "برامج الأجهزة"، هي عبارة عن شفرة برمجية مضمنة في الأجهزة المادية، تُمكّنها ووظائفها من العمل بشكل صحيح. ويتم تحديث البرامج الثابتة بانتظام لإصلاح المشاكل الشائعة، وإضافة أو توسيع الميزات، أو زيادة توافق الجهاز مع التقنيات الجديدة. 

تعتمد العديد من الأجهزة على البرامج الثابتة للعمل، بما في ذلك أجهزة التلفاز والكاميرات والهواتف المحمولة والطابعات ومحركات الأقراص وغيرها. تُخزَّن البرامج الثابتة في ذاكرة الجهاز غير المتطايرة، حيث يمكن حفظ المحتوى حتى عند إيقاف تشغيل الجهاز. ويمكن كتابة البرامج الثابتة على أنواع مختلفة من الذاكرة، بما في ذلك  ذاكرة الوصول العشوائي (RAM) وذاكرة القراءة فقط (ROM) وذاكرة القراءة فقط القابلة للمسح والبرمجة (EPROM) وذاكرة الفلاش.  

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

البرامج الثابتة مقابل البرامج

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

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

لماذا تُعدّ تحديثات البرامج الثابتة مهمة، وكيف تعمل؟

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

من الأمثلة على ما قد يحدث بعد تحديثات البرامج الثابتة ما يلي:

  • يُصبح بإمكان ناسخ أقراص CD نسخ نوع جديد من الأقراص.
  • يُحسّن جهاز التوجيه (الراوتر) أداءه واستقراره.
  • يُصدر مُصنّع اللوحات الأم تحديثًا لنظام BIOS لدعم المعالجات الجديدة.

تتحقق بعض الأجهزة المتصلة بالإنترنت بانتظام من وجود برامج ثابتة جديدة، وتقوم بتنزيلها وتثبيتها تلقائيًا. بينما يتطلب مُصنّعو أجهزة آخرون من المستخدم زيارة موقع الشركة المُصنّعة لتنزيل التحديثات وتثبيتها يدويًا.

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

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

ما هي أنواع البرامج الثابتة؟

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

  • البرامج الثابتة منخفضة المستوى
  • البرامج الثابتة عالية المستوى 
  • البرامج الثابتة للنظام الفرعي

البرامج الثابتة منخفضة المستوى

تُعدّ البرامج الثابتة منخفضة المستوى جزءًا لا يتجزأ من مكونات الجهاز، وتُخزّن على رقائق غير متطايرة للقراءة فقط، مثل ذاكرة القراءة فقط (ROM)، والتي لا يمكن تحديثها. تستخدم الأجهزة التي تعتمد على البرامج الثابتة منخفضة المستوى ذاكرة لا يمكن الكتابة عليها إلا مرة واحدة ولا يمكن إعادة برمجتها.

البرامج الثابتة عالية المستوى

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

البرامج الثابتة للنظام الفرعي

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

ما هي تطبيقات البرامج الثابتة؟

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

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

إضافةً إلى ما ذُكر سابقًا، تتطلب هذه الأجهزة أيضًا برامج ثابتة (Firmware) لتعمل على النحو الأمثل ولتشغيل برامج المستخدم:

  • أجهزة التوجيه.
  • محركات الشبكة.
  • الطابعات.
  • الماسحات الضوئية.
  • الكاميرات.
  • المعدات الصناعية.

تُعدّ البرامج الثابتة المُدمجة عنصرًا أساسيًا في أجهزة وشبكات إنترنت الأشياء (IoT).

ما هي الميزات الرئيسية لتحديثات البرامج الثابتة؟

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

ما هو أمن البرامج الثابتة؟

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

إضافةً إلى زيادة احتمالية التعرض للهجوم، يمكن أن يؤدي ضعف أمن البرامج الثابتة إلى ما يلي:

  • تآكل ثقة العملاء في الجهاز والشركة المصنعة.
  • إضعاف سمعة الشركة المصنعة ومكانتها التنافسية.
  • التسبب في مشاكل تتعلق بالامتثال (غرامات، إجراءات قانونية) للشركة المصنعة.

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

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

الخلاصة

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

مشاركة في التطبيقات الأخرى