- البرامج الثابتة هي عبارة عن كود مضمن في ذاكرة غير متطايرة يتحكم مباشرة في الأجهزة، بينما تعمل البرامج على أنظمة التشغيل وهي أكثر مرونة وأسهل في التغيير.
- يؤدي تحديث البرامج الثابتة إلى إصلاح الأخطاء، وسد الثغرات الأمنية، وتحسين التوافق والأداء، ولكنه ينطوي على مخاطر أكبر من مجرد تحديث بسيط للبرامج أو برامج التشغيل.
- تعمل برامج التشغيل والبرامج الثابتة والبرامج معًا: حيث تتحكم البرامج الثابتة في الجهاز، ويقوم برنامج التشغيل بترجمة أوامر نظام التشغيل، وتستخدم التطبيقات هذه الخدمات لأداء المهام.
- يُعد الحفاظ على البرامج الثابتة والبرامج الرسمية والمحدثة أمرًا أساسيًا لأمن واستقرار وحسن أداء أي جهاز أو معدات متصلة.
إذا كنت تعمل في مجال التكنولوجيا بشكل يومي - سواءً أكان ذلك برمجة الأنظمة المدمجة، أو تهيئة جهاز الكمبيوتر، أو حتى استخدام هاتفك المحمول - فمن المحتمل أنك صادفت مصطلحات مثل البرامج، والبرامج الثابتة، وبرامج التشغيل، ونظام الإدخال والإخراج الأساسي (BIOS)، وواجهة المستخدم الرسومية الموحدة (UEFI)، والتحديثات مرات لا تُحصى . قد تبدو جميعها مترابطة، لكنها ليست متطابقة على الإطلاق. وفهم ماهية كل منها ليس مجرد معرفة تقنية جيدة، بل يساعدك أيضًا على اتخاذ قرارات أفضل عند تصميم المنتجات، والحفاظ على سلاسة تشغيل أجهزتك، وتجنب المشكلات الأمنية.
في عالم تطوير الأنظمة المدمجة، تزداد الأمور تعقيدًا، كما هو الحال في المشاريع التي تستخدم نظام التشغيل Replicant OS . فليس من النادر أن يجمع مشروع واحد بين البرامج الثابتة منخفضة المستوى، ورمز التحكم، ونظام التشغيل في الوقت الحقيقي، ومنطق التطبيق ، وقد يُطلق عليها بعض أعضاء الفريق اسم "البرامج الثابتة"، وآخرون "البرمجيات"، وآخرون "الرموز الدقيقة السحرية". دعونا نوضح كل هذا بهدوء: ما هي البرامج الثابتة، وما هي البرمجيات، وأوجه التشابه والاختلاف بينهما، وكيف تتناسب أمثلة واقعية مثل وحدة تحكم King Kong 3 Pro Max، التي توقفت عن العمل بشكل خاطئ بعد تحديث البرامج الثابتة، مع هذا السياق.
ما هو البرنامج الثابت تحديداً؟
عندما نتحدث عن البرامج الثابتة، فإننا نشير إلى نوع محدد جدًا من البرامج المدمجة داخل الجهاز نفسه . هذه تعليمات موجودة على شريحة ذاكرة غير متطايرة (ROM، EPROM، EEPROM، Flash) ويتم تنفيذها مباشرة بواسطة وحدة التحكم الدقيقة أو المعالج الخاص بالجهاز لتشغيل الجهاز.
كانت الفكرة الأصلية وراء هذا المصطلح، الذي صاغه آشر أوبلر عام 1967، وصف شيء يقع في منتصف الطريق بين العتاد والبرمجيات: برنامج صغير مرتبط ارتباطًا وثيقًا بالجهاز ، يحدد كيفية عمل تلك الدائرة، والتوقيتات التي يجب مراعاتها، والبروتوكولات التي يجب استخدامها، والحالات التي يجب إدارتها. اليوم، تطور المفهوم، لكن جوهره لا يزال كما هو: شفرة برمجية قريبة جدًا من العتاد نفسه.
في العديد من الأجهزة البسيطة نسبيًا (البطاقة الذكية، والمستشعر، وجهاز التحكم عن بعد، والغسالة الحديثة) يعتبر هذا البرنامج الثابت بمثابة "نظام التشغيل الداخلي" بالكامل : فهو يقوم بتشغيل الشريحة، وإدارة المدخلات والمخرجات (الدبابيس، والمستشعرات، والأزرار)، وتشغيل آلة حالة صغيرة، والتحكم في الاتصال بالأجهزة الأخرى.
في الأنظمة الأكثر تعقيدًا، مثل أجهزة الكمبيوتر الشخصية أو الخوادم، يركز البرنامج الثابت عادةً على مهام أساسية كتشغيل النظام، وتهيئة الأجهزة، والخدمات الأساسية منخفضة المستوى. يُعد نظام الإدخال والإخراج الأساسي (BIOS) أو واجهة المستخدم الرسومية الموحدة (UEFI) برنامجًا ثابتًا متطورًا يعمل قبل نظام التشغيل، ويتيح لك القيام بكل شيء بدءًا من تشغيل الكمبيوتر وحتى ضبط الفولتية، وملفات تعريف ذاكرة الوصول العشوائي (RAM)، وترتيب الإقلاع.
من أهم ميزاته مكان تخزينه. يتم تخزين البرامج الثابتة في ذاكرات غير متطايرة خاصة بالجهاز : ذاكرة القراءة فقط القديمة أو ذاكرة القراءة فقط القابلة للبرمجة والمسح (التي يمكن برمجتها مرة واحدة فقط أو عن طريق مسح مادي خاص)، وفي الوقت الحاضر، يتم تخزينها دائمًا تقريبًا في ذاكرة فلاش NAND، مما يسمح بإعادة كتابة المحتويات عند حلول موعد التحديث.
أنواع البرامج الثابتة: منخفضة المستوى، وعالية المستوى، والنظام الفرعي
ليست جميع البرامج الثابتة متساوية. عملياً، عادةً ما يتم تمييزها بين عدة طبقات، وذلك بحسب مدى تكاملها مع الأجهزة وسهولة تحديثها أو استبدالها.
البرامج الثابتة منخفضة المستوى : ترتبط هذه البرامج ارتباطًا وثيقًا بالأجهزة، لدرجة أنها تُعتبر جزءًا لا يتجزأ من الدائرة نفسها. وعادةً ما تُخزَّن في ذاكرة القراءة فقط (ROM) أو ذاكرة أخرى قابلة للبرمجة لمرة واحدة، لذا لا يُقصد إعادة كتابتها . وهي تُحدِّد الحد الأدنى من السلوكيات الأساسية للجهاز. في العديد من أنظمة SoC، ووحدات التحكم الدقيقة، والأجهزة بالغة الأهمية، لا يزال هناك بعض التعليمات البرمجية الدقيقة الأساسية التي لا يتدخل فيها المستخدم أبدًا.
البرامج الثابتة عالية المستوى : هي عبارة عن شفرة مضمنة، ولكنها موجودة في ذاكرة فلاش قابلة لإعادة البرمجة وتدعم التحديثات . وهي ما تحصل عليه عند تنزيل إصدار جديد لجهاز التوجيه أو محرك الأقراص ذي الحالة الصلبة (SSD) أو وحدة التحكم اللاسلكية أو الكاميرا. وعادةً ما تتضمن إصلاحات للأخطاء وتحسينات في الأداء وميزات جديدة وتحديثات أمنية.
البرامج الثابتة للأنظمة الفرعية : تقوم العديد من الأجهزة الكبيرة (الخوادم، والسيارات الحديثة، ومحولات الشبكة، وما إلى ذلك) بتجميع وحدات مختلفة مستقلة نسبيًا، لكل منها برامجها الثابتة الخاصة. على سبيل المثال، يحتوي النظام الفرعي للطاقة في الخادم على وحدة تحكم دقيقة مزودة ببرامج ثابتة خاصة بها لإدارة المراوح، ومصادر الطاقة الاحتياطية، ومستشعرات درجة الحرارة، وحالات الطاقة.
من بين الأمثلة الأكثر شيوعًا للبرامج الثابتة BIOS/UEFI، والبرامج الثابتة لمحركات أقراص USB، ومحركات الأقراص الصلبة، ومحركات أقراص الحالة الصلبة SSD، وبطاقات الرسومات، وأجهزة الاستشعار، والبطاقات الذكية، وأجهزة التوجيه، والطابعات ، والأجهزة الذكية، وغيرها الكثير: فكل شيء تقريبًا تقوم بتوصيله اليوم يحتوي على برنامج ثابت واحد أو أكثر بداخله.
كيفية عمل تحديثات البرامج الثابتة
تتضمن عملية تحديث البرامج الثابتة بشكل أساسي إعادة كتابة الكود داخل شريحة الذاكرة غير المتطايرة . تُسمى هذه العملية عادةً "البرمجة" لأن معظم الأجهزة الحديثة تستخدم ذاكرة فلاش لتخزين هذا الكود، كما هو الحال في دراجات M365 الكهربائية.
لماذا التحديث؟ الأسباب الأكثر شيوعًا هي إصلاح الأخطاء، وسدّ الثغرات الأمنية، وتحسين الاستقرار، وإضافة ميزات جديدة، أو تعديل التوافق مع المعايير أو الأجهزة الطرفية الجديدة . هذا بالضبط ما أنقذ جهاز تحكم King Kong 3 Pro Max الخاص بك: كان هناك خلل في المنطق الداخلي يتسبب في عدم تسجيل ضغطات الأزرار بشكل صحيح أو في حدوث إجراءات عشوائية. أصدرت الشركة المصنعة برنامجًا ثابتًا جديدًا يُصحح هذا الخلل، وبعد تثبيته، بدأ جهاز التحكم بالعمل كما ينبغي.
في بعض الأجهزة المتصلة بالإنترنت (أجهزة التوجيه، وأجهزة التلفاز الذكية، وبعض الهواتف المحمولة، وأجهزة إنترنت الأشياء)، يقوم الجهاز نفسه بالتحقق دوريًا من وجود إصدار أحدث من البرامج الثابتة ، ثم يقوم بتنزيله وتثبيته بسلاسة تامة. أما في أجهزة أخرى، فيجب عليك زيارة موقع الشركة المصنعة، وتنزيل الملف المناسب، واستخدام أداة مخصصة لتطبيقه.
كما يختلف معدل التحديث بشكل كبير: فقد يتلقى جهاز توجيه منزلي أو سيارة متصلة تحديثات رئيسية بين الحين والآخر، في حين أن جهاز استشعار صناعي صغير أو جهاز منزلي بسيط يمكن أن يعمل لسنوات بنفس البرامج الثابتة إذا لم يتم اكتشاف أي مشاكل خطيرة.
مع ذلك، تُعدّ عملية التحديث بالغة الأهمية. فبينما تُكتب البرامج الثابتة الجديدة على ذاكرة الفلاش، إذا انقطع التيار الكهربائي، أو تجمد الجهاز، أو انقطعت العملية، فقد يصبح الجهاز غير مستجيب. وفي أسوأ الأحوال، قد يتعطل تمامًا: أي يصبح قطعة إلكترونية لا تعمل. لذا، من الضروري جدًا عدم إيقاف تشغيل الجهاز أو لمسه أثناء مراقبة شريط تقدم تحديث البرامج الثابتة.
أين يوجد البرنامج الثابت وكيف يتواصل؟
كما ذكرنا، تُخزَّن البرامج الثابتة في رقائق ذاكرة تحتفظ بمحتوياتها حتى بعد إيقاف تشغيل الجهاز . تاريخيًا، استُخدمت رقائق ROM وEPROM، والتي كانت تتطلب معدات متخصصة أو حتى ضوءًا فوق بنفسجيًا لمسح محتوياتها. مع مرور الوقت، استُبدلت هذه الرقائق برقائق EEPROM وFlash، والتي يمكن إعادة برمجتها كهربائيًا بسهولة وأمان أكبر.
تتضمن العديد من اللوحات الأم الحديثة شريحتين للذاكرة لنظام BIOS/UEFI : شريحة أساسية وشريحة احتياطية. في حال حدوث خطأ أثناء التحديث، يمكن للوحة الأم الإقلاع من النسخة "السليمة" واستعادة البرامج الثابتة دون الحاجة إلى إرسال الجهاز إلى الشركة المصنعة. سابقًا، عندما لم تكن هذه الشريحة المزدوجة موجودة، كان فشل التحديث يعني عادةً استبدال اللوحة الأم أو إعادة برمجة الشريحة يدويًا في المصنع.
فيما يتعلق بالاتصال، تتصل وحدات التحكم الدقيقة والمستشعرات والوحدات المختلفة داخل الجهاز بشريحة البرامج الثابتة عبر واجهات منخفضة الطاقة والسرعة مثل UART وI2C وSPI . تسمح هذه الخطوط لوحدة المعالجة المركزية الرئيسية بقراءة أو تحميل أجزاء من البرامج الثابتة أثناء بدء التشغيل، أو لمبرمج خارجي بكتابة إصدار جديد عند الحاجة إلى تحديث.
بمجرد تشغيلها، تحدد هذه البرامج الثابتة كيفية مزامنة الأجهزة مع بقية النظام : ما هي التوقيتات التي يجب أن تلتزم بها الذاكرة، وما هي الفولتيات الصالحة، وكيفية التفاوض على السرعات على ناقل البيانات، وماذا تفعل في حالة حدوث خطأ، وما إلى ذلك. إنها حرفيًا "العقل" الداخلي للعديد من المكونات.
لماذا من المهم جدًا تحديث البرامج الثابتة؟
الأمر لا يقتصر على نزوة الشركة المصنعة فحسب، فتجاهل تحديثات البرامج الثابتة قد يكون مكلفًا للغاية ، لا سيما من حيث الأمان والاستقرار. عادةً ما يأتي كل إصدار جديد بمزيج من إصلاحات الأخطاء الوظيفية، وتصحيحات الثغرات الأمنية، وأحيانًا بميزات جديدة كانت الأجهزة تدعمها بالفعل ولكنها معطلة.
تشمل الأسباب الشائعة للتحديث تحسين الأداء، وتقليل استهلاك الطاقة، وتحسين التوافق مع المكونات الأخرى، وتجنب الأخطاء المعروفة، وتعزيز الحماية ضد الهجمات . في حالة المعالجات أو اللوحات الأم، تم إصدار تحديثات للبرامج الثابتة تُفعّل ميزات كانت في البداية غير مُفعّلة أو محدودة بسبب استراتيجية العمل أو نقص الاختبارات عند الإطلاق.
تُعدّ الثغرات الأمنية على مستوى البرامج الثابتة خطيرة للغاية، لأنها قد تبقى خفية عن برامج مكافحة الفيروسات، وتستمر حتى بعد إعادة تثبيت نظام التشغيل بالكامل . إذا تمكّن المهاجم من تنفيذ برمجيات خبيثة على هذا المستوى، فإنه يحصل على سيطرة عميقة ومستمرة على الجهاز. لهذا السبب، تُصدر الشركات المصنّعة تحديثات للبرامج الثابتة لسدّ هذه الثغرات، ويُنصح بتثبيتها، خاصةً وأن الأجهزة غير المدعومة لن تتلقى التحديثات بعد ذلك.
مع ذلك، من المهم توخي الحذر: لا تقم بتثبيت البرامج الثابتة إلا من الموقع الرسمي للشركة المصنعة أو عبر أدواتها الرسمية. قد تؤدي البرامج الثابتة المُعدّلة من قِبل جهات خارجية إلى تغيير وظيفة المكون أو إدخال ثغرات أمنية عمدًا. وفي حال فشل العملية، لا يوجد ما يضمن إمكانية استعادتها.
في الاستخدام اليومي، تتيح لك أدوات مثل برامج إدارة محركات الأقراص الصلبة SSD، وأدوات اللوحة الأم، أو تطبيقات التشخيص (مثل AIDA64) التحقق من إصدار البرنامج الثابت المُثبّت ومقارنته بالإصدار الذي نشرته الشركة المصنّعة في مستودعها. إذا وجدت إصدارًا جديدًا يتضمن إصلاحات جوهرية، فمن المستحسن التخطيط للتحديث.
قضية البرامج الثابتة "المضللة" وعمليات الاحتيال
بما أن البرامج الثابتة تُبلغ نظام التشغيل بخصائص الجهاز، فإن بعض المصنّعين عديمي الضمير يستغلونها للتلاعب بمواصفات الأجهزة الفعلية أو تزويرها . وهذه ممارسة شائعة للأسف في بعض المنتجات من علامات تجارية غير معروفة أو موردين غير موثوقين.
من الأمثلة المعروفة على ذلك بعض أقراص SSD التي تُباع على منصات الإنترنت بأسعار زهيدة للغاية، والتي يُزعم أنها بسعة 2 تيرابايت. تم تعديل برامجها الثابتة لتظهر للنظام سعة هائلة، بينما هي في الواقع مجرد بطاقات ذاكرة بسعة 64 جيجابايت مُقنّعة . وعندما يحاول المستخدم كتابة بيانات تتجاوز السعة الفعلية، تبدأ البيانات بالتلف.
صُممت أدوات مثل H2testw خصيصًا لكشف هذا النوع من عمليات الاحتيال: فهي تتحقق من كمية البيانات التي يمكن كتابتها وقراءتها بالكامل ، متجاهلةً السعة المعلنة من قِبل البرامج الثابتة. إذا اشتريتَ أجهزة تخزين أو ذاكرات USB رخيصة بشكلٍ مثير للريبة، فمن المفيد إجراء بعض الاختبارات عليها.
توجد أيضًا حالات لأجهزة لا تفي بالمواصفات المحددة في اختبارات الجودة. في هذه الحالات، يبيع المصنّع الأمين المنتج كطراز مختلف، أصغر حجمًا، ببرنامج ثابت مختلف وعلامة تجارية مختلفة. تكمن المشكلة عندما يحاول أحدهم "ترقية" هذا المنتج بتثبيت برنامج ثابت من طرازات أعلى، مما قد يجعله غير قابل للاستخدام أو يتجاوز قدراته الفعلية.
ما هو البرنامج وكيف يختلف عن البرامج الثابتة؟
بالانتقال إلى العنصر الرئيسي الآخر، فإن البرمجيات هي في الأساس مجموعة البرامج والبيانات والتعليمات التي تعمل على نظام الحاسوب لأداء مهام محددة. إنها المكون المنطقي الذي يعتمد على المكونات المادية، لكنها ليست جزءًا ماديًا منها.
إنه مفهوم أوسع وأكثر مرونة من مفهوم البرامج الثابتة. يشمل البرمجيات كل شيء بدءًا من أنظمة التشغيل وبرامج تشغيل الأجهزة وصولًا إلى تطبيقات المستخدم والألعاب وأدوات التطوير والبرامج النصية . يتم تخزينها على محركات الأقراص الصلبة أو محركات الأقراص ذات الحالة الصلبة أو وحدات التخزين الخارجية، أو يتم تحميلها في ذاكرة الوصول العشوائي أثناء التشغيل.
يمكننا تقسيمها إلى عدة فئات واسعة. من جهة، هناك برامج التطبيقات ، وهي ما نستخدمه مباشرة: معالجات النصوص، ومتصفحات الويب، وجداول البيانات، وبرامج تحرير الصور، وأنظمة إدارة علاقات العملاء، والمحاكيات العلمية، ومشغلات الوسائط المتعددة، والتطبيقات التعليمية، أو حزم البرامج المكتبية مثل مايكروسوفت أوفيس.
من ناحية أخرى، هناك برامج النظام ، وهي ما يقع بين التطبيقات والأجهزة: أنظمة التشغيل مثل ويندوز أو ماك أو إس أو لينكس؛ برامج تشغيل الأجهزة؛ أدوات إدارة النظام؛ BIOS وUEFI؛ مترجمات لغات البرمجة، وأيضًا، إذا كنا دقيقين، يمكن اعتبار جزء كبير من البرامج الثابتة برامج نظام محددة، أو بدائل مثل Ubuntu Touch.
ثم لدينا برامج البرمجة ، أي جميع الأدوات التي يستخدمها المطورون: المترجمات، ومصححات الأخطاء، وبيئات التطوير، والمكتبات، والبرمجيات الوسيطة التي تربط التطبيقات بخدمات النظام، وما إلى ذلك. كل ذلك عبارة عن برامج تعمل فوق طبقة أخرى، أكثر أساسية، من البرامج.
كيف يعمل البرنامج في النظام
لكي يؤدي أي برنامج أي وظيفة مفيدة، يجب تحميله من وحدة التخزين إلى ذاكرة الوصول العشوائي (RAM) وتنفيذه بواسطة وحدة المعالجة المركزية (CPU). يتولى نظام التشغيل إدارة هذه العملية: تخصيص الذاكرة، وفتح الملفات، وإدارة الصلاحيات، وتنسيق الموارد بين التطبيقات المتعددة.
لا تعرف برامج التطبيقات كيفية التواصل المباشر مع مكونات الجهاز، ولا ترغب في ذلك. بدلاً من ذلك، تعتمد على نظام التشغيل وبرامج التشغيل لطلب مهام مثل "كتابة هذا الملف" أو "رسم هذه النافذة" أو "إرسال هذه البيانات عبر بطاقة الشبكة". ولهذا السبب، يمكن للتطبيق نفسه أن يعمل على طرازات مختلفة من أجهزة الكمبيوتر طالما أن نظام التشغيل يدعم تلك المكونات.
يبدأ نظام التشغيل بالعمل فور تشغيل جهاز الكمبيوتر. في أجهزة الكمبيوتر الشخصية، يبدأ برنامج UEFI (البرنامج الثابت) بالعمل أولاً، حيث يقوم بتهيئة الأساسيات وتسليم التحكم إلى مُحمِّل نظام التشغيل. ومن ثم، يتولى النواة زمام الأمور ويتعامل مع جميع الوظائف الأساسية: جدولة العمليات، وإدارة الذاكرة، والتواصل مع الأجهزة عبر برامج التشغيل، وأمان المستخدم، وما إلى ذلك.
في هذه الأثناء، يقوم المستخدم بتشغيل التطبيقات التي تعمل "فوق" هذا النظام. يعمل كل تطبيق في مساحة ذاكرة خاصة به ويستفيد من خدمات نظام التشغيل دون الحاجة إلى القلق بشأن التفاصيل التقنية الدقيقة مثل كيفية تواصل وحدة المعالجة المركزية مع وحدة تحكم القرص أو التعليمات المحددة التي يحتاجها منفذ USB لتشغيل جهاز.
تُقاس جودة البرمجيات بعدة أبعاد: الموثوقية، والأداء، والأمان، والتوافق، وسهولة التثبيت، وقابلية الصيانة، وسهولة الاستخدام، والترجمة، وقابلية الاختبار ، وما إلى ذلك. قد يكون التطبيق قويًا جدًا، ولكن إذا كان يتعطل بشكل متكرر أو مليئًا بالثغرات الأمنية، فهو ليس جيدًا.
البرامج الثابتة مقابل البرامج: أوجه التشابه والاختلاف الرئيسية
عملياً، يشترك كل من البرامج الثابتة والبرامج في أساس مشترك: كلاهما عبارة عن شفرة تنفيذية تتكون من تعليمات للمعالج . من وجهة نظر المترجم، لا يوجد الكثير من التعقيد: في النهاية، الأمر كله عبارة عن سلسلة من رموز العمليات التي يفهمها المعالج.
لهذا السبب، تتضمن العديد من إعلانات الوظائف مسميات وظيفية مثل "مهندس برمجيات ثابتة مدمجة" و"مهندس برمجيات مدمجة" بأوصاف متطابقة تقريبًا . في الأنظمة التي تعتمد على مكونات مادية فقط، يكون الفريق نفسه مسؤولاً عادةً عن كلٍ من برامج تشغيل الأجهزة ووحدات التحكم الدقيقة، بالإضافة إلى منطق التطبيق الذي يستخدم برامج التشغيل هذه.
يكمن الاختلاف الحقيقي بين البرامج الثابتة والبرامج الأخرى في مستوى تكاملها مع المكونات المادية، والبيئة التي تعمل فيها، وكيفية نشرها وتحديثها . توجد البرامج الثابتة داخل الجهاز، في ذاكرته الخاصة، وغالبًا ما تكون ضرورية لكي تؤدي المكونات المادية أي وظيفة مفيدة.
في المقابل، يسهل تثبيت البرامج النموذجية (التطبيقات، والخدمات، وحتى أنظمة التشغيل) وإزالتها، ويتم تحديثها بشكل متكرر، وتوزيعها عبر الإنترنت أو على وسائط تخزين مادية، ولا ترتبط ارتباطًا وثيقًا بنموذج جهاز واحد. يمكن تشغيل البرنامج نفسه على عشرات التكوينات المختلفة طالما توفر نظام تشغيل متوافق وبرامج تشغيل مناسبة.
يمكننا تلخيص بعض الاختلافات العملية الهامة: يتم تخزين البرامج الثابتة في ذاكرة القراءة فقط/الفلاش الداخلية، وتعمل مباشرة على الجهاز، وتتطلب تحديثًا أكثر دقة، وتتحكم في التشغيل الأساسي للأجهزة . أما البرامج، فتُخزن على أقراص أو في السحابة، وتُحمّل في ذاكرة الوصول العشوائي، وتعمل فوق نظام التشغيل، وتُستخدم لتنفيذ مهام المستخدم أو مهام النظام ذات المستوى الأعلى.
البرامج الثابتة مقابل برامج التشغيل: خلط شائع آخر
وثمة نقطة أخرى تثير العديد من التساؤلات، وهي الفرق بين البرامج الثابتة وبرامج التشغيل . فكلاهما مرتبط بالأجهزة، لكنهما يعملان في مجالات مختلفة.
كما ذكرنا سابقاً، يوجد البرنامج الثابت داخل الجهاز نفسه . وهو الكود الذي يُشغّل على وحدة التحكم الدقيقة ويحدد سلوك المكون، وكيفية تهيئته، وكيفية تواصله، والحالات التي يدعمها. وبدون البرنامج الثابت، ستكون العديد من مكونات الأجهزة عديمة الفائدة تقريباً.
أما برنامج التشغيل، فهو برنامج يعمل على نظام التشغيل ، وليس على الجهاز نفسه. وهو بمثابة مترجم بين النظام والمكونات المادية: إذ يستقبل الأوامر من النواة أو التطبيقات ("أرسل هذه البيانات عبر الشبكة"، "ارسم هذا الإطار") ويحولها إلى أوامر يفهمها الجهاز وبرمجياته الثابتة.
في الطابعة، على سبيل المثال، يوجد برنامج ثابت داخلي يتحكم في المحركات ورؤوس الطباعة ومستشعرات الورق والحبر، وما إلى ذلك. ولكنك تحتاج أيضًا إلى تثبيت برنامج تشغيل على جهاز الكمبيوتر أو الجهاز المحمول لكي يتعرف نظام التشغيل على كيفية التواصل مع تلك الطابعة تحديدًا . فبدون برنامج التشغيل، لن يعرف النظام الأوامر التي يجب إرسالها؛ وبدون البرنامج الثابت، لن تعرف الطابعة كيفية التعامل معها.
علاوة على ذلك، تختلف المخاطر المرتبطة بالتحديثات. فإذا حدث خطأ أثناء تحديث برنامج التشغيل، يمكنك عادةً إعادة تشغيل الجهاز في الوضع الآمن، وإلغاء تثبيت برنامج التشغيل، والعودة إلى إصدار سابق. أما إذا تَلِفَ البرنامج الثابت أثناء عملية التحديث، فقد تفقد جهازك بالكامل ، ما لم تكن لديك آلية استعادة مُصممة جيدًا.
لماذا يتم إصدار نسخ جديدة من البرامج الثابتة والبرامج؟
بالعودة إلى السؤال الذي عادةً ما يثير كل هذه الشكوك: عندما ترى أن تحديثًا جديدًا متاح، هل يقتصر الأمر على التوافق مع التطبيقات الجديدة فقط؟ الإجابة المختصرة هي لا: التوافق ليس سوى جزء من القصة.
يقوم المصنعون بإصدار نسخ جديدة من البرامج الثابتة وبرامج التشغيل والبرامج لأسباب متعددة: إصلاح الأخطاء التي تم اكتشافها بعد الإطلاق، وتحسين الأداء، وتقليل استهلاك الطاقة، والتوافق مع أنظمة التشغيل أو المعايير الجديدة، وتمكين وظائف الأجهزة الإضافية، والأهم من ذلك، تصحيحات الأمان ضد الثغرات الأمنية المكتشفة حديثًا.
في وحدة تحكم لاسلكية مثل King Kong 3 Pro Max، يُمكن لتحديث البرامج الثابتة تعديل وظائف الأزرار، ومنحنى عصا التحكم التناظرية، واستقرار اتصال البلوتوث، أو التوافق مع أجهزة الألعاب أو الأنظمة الجديدة . لا يتعلق الأمر كثيرًا بـ"تطبيقات جديدة" بقدر ما يتعلق بتحسين أداء الجهاز وجعله أكثر موثوقية.
في أجهزة التوجيه، ومحركات الأقراص الصلبة، والمعالجات، قد تُحدث تحديثات البرامج الثابتة فرقًا كبيرًا بين جهاز عرضة للاختراقات الأمنية ونظام أكثر أمانًا. أما في أجهزة الكمبيوتر، فإن تحديث BIOS/UEFI، وبرامج التشغيل، ونظام التشغيل باستمرار يقلل بشكل ملحوظ من مخاطر المشاكل ويُحسّن التوافق العام مع البرامج الحديثة.
في نهاية المطاف، يُمكّنك فهم دور كل طبقة - من الأجهزة والبرامج الثابتة وبرامج التشغيل ونظام التشغيل والتطبيقات - من تحديد وقت التحديث، وكيفية القيام بذلك بأمان، وما يمكن توقعه من كل تحديث . لا يُقدّم كل تغيير في الإصدار نفس الفوائد، كما أنه ليس من المجدي بنفس القدر المخاطرة على كل جهاز، ولكن تجاهل البرامج الثابتة تمامًا نادرًا ما يكون فكرة جيدة.
عند تصميم أو صيانة الأنظمة المدمجة أو المنتجات المتصلة ، فإن رسم خطوط واضحة بين البرامج الثابتة والبرامج، وضمان سلامة الكود الداخلي، وتطبيق آليات مثل التمهيد الآمن والتوقيعات الرقمية، والتخطيط بعناية لاستراتيجيات التحديث الخاصة بك هو ما يصنع الفرق بين جهاز موثوق به على المدى الطويل وجهاز يسبب لك المشاكل عند أدنى استفزاز.
