برنامج ثابت  البرنامج الثابت أو البرنامج الدائم أو فيرموير في الأنظمة الإلكترونية والحاسوب هو نوع من أنواع البرمجيات يوفِّر تحكم ومراقبة ومعالجة للبيانات في النظام. وفي علم الحاسوب هو برنامج يثبت على العتاد. يكون بالعادة موجود في أجهزة الفلاش أو كصورة رقمية يتم تنزيلها من قبل المستخدم على الأجهزة.  من الأمثلة النموذجية على الأجهزة التي تحتوي على برنامج ثابت الأنظمة المضمنة مثل إشارات المرور والحاكوم والأجهزة الإستهلاكية وساعات اليد الإلكترونية كما تحتوي الحواسيب وأجهزته الطرفية والهواتف المحمولة والكاميرات الرقمية على البرامج الثابتة، البرامج الثابتة الواردة في هذه الأجهزة توفر تحكم على مستوى منخفض للجهاز.  اعتبارًا من عام 2013، أصبح بالإمكان تحديث معظم البرامج الثابتة.  في علم الحاسب البرنامج الثابت هو عبارة عن (سوفتوير) أي برنامج موجود ضمن أجهزة العتاد الصلب. وهو يزود في أغلب الأحيان على (flash ROMs) أو يكون على هيئة (binary image file) يمكن تحميله إلى العتاد بواسطة المستخدم أو المبرمج.  جميع المنتجات الإلكترونية الحديثة على الأغلب تتكون من: متحكم مصغر - ذاكرة - وحدة إدخال- وحدة إخراج - مصدر للطاقة - برنامج داخلي لتنظيم هذه العمليات. وأفضل مثال على ذلك الهاتف المحمول، حيث يحوي بداخله معالج مصغر خاص به ولوحة مفاتيح لإدخال البيانات وشاشة وسماعة وهزاز لإخراج هذه البيانات والبطارية كمصدر للطاقة. وهناك برنامج داخلي للتحكم في باقي المكونات (سوفتوير)، وهذا البرنامج يطلق عليه البرنامج الثابت.  ويختلف هذا البرنامج الثابت من جهاز محمول لآخر وذلك لاختلاف الهاردوير الموجود في كل جهاز عن الآخر، حيث أن البرنامج الثابت يكون مكتوب أساساً لموديل هاتف محدد ولا يمكن استخدامه في هاتف آخر ولكن في بعض الأحيان يعمل البرنامج الثابت على أجهزة مختلفة وذلك لاختلاف شكل الهاتف الخارجي ولكن هناك تشابه في المكونات الداخلية.  يمكن وصف البرنامج الثابت كما يلي:  البرنامج الثابت استعمل أصلاً من أجل البرامج الميكروية المكتوبة من أجل المعقبات الدقيقة مثل AMD29xx. لاحقاً، تم صياغة البرنامج الثابت ليقوم بوظائف بدلاً من الهاردوير في المعالجات المصغرة قليلة التكلفة.  الآن يمكن تحديث البرنامج الثابت في العديد من الأجهزة دون الحاجة إلى معدات إضافية، غالباً من خلال استخدام برامج تُشترى من مزودين تسمى (vendor-provided software). في المجال العملي، تحديث البرنامج الثابت يحسن الأداء والثقة. في الواقع حتى الوظيفة الأساسية المتوفرة في الجهاز، والعديد من الأجهزة استفادت من التحديثات المنتظمة للبرنامج الثابت. إحدى الأجهزة الأكثر شيوعاً التي تمتلك تحديثات نظامية للبرنامج الثابت هي أجهزة التسجيل مثل وسائط النسخ الليزرية (الدي في دي والقرص المضغوط وأسطوانات الفيديو الرقمية فائقة الدقة وأقراص البلو راي). وبما أن تكنولوجيا الوسائط تتطور، لذلك فإن تحديث البرنامج الثابت يضمن للهاردوير بأن يبقى معاصر وملائم.  يتم تطوير البرنامج الثابت للعناية بالمحتوى القابل للبرمجة في أجهزة الهاردوير، والتي تتألف من أوامر بلغة الآلة من أجل المعالج، أو من بنية إعدادات من أجل إصلاح وظائف الأجهزة، أو مصفوفة مدخلات أو أداة منطقية قابلة للبرمجة. الميزات النموذجية العامة للبرنامج الثابت هي التي يمكن تحديثها بعد التصنيع، إما إلكترونياً، أو بواسطة استبدال وسيلة تخزين البرنامج الثابت كشريحة الذاكرة الموضوعة على مقبس.  البرنامج الثابت يمكن أن يعرض في واجهة خارجية سهلة الوصول (ولكن ليس من الضروري). على سبيل المثال، في بعض تطبيقات المودم لا يمكن الوصول إلى البرنامج الثابت مباشرة، ولكنه جزء من مجموعة من الأجهزة والبرنامج الثابت مسؤول عن الاستجابة للأوامر من النظام المضيف.  من المعروف أن البرنامج الثابت يخزن في ذاكرة ROM، ولكن التكلفة والأداء دفعت بائعي هذه العناصر إلى تبني بدائل متنوعة، تتضمن وسائط غير قابلة للتغيير مثل (ذاكرة القراءة فقط القابلة للبرمجة والمسح والذاكرة)، أو SRAM كالبرنامج الثابت المحمل بواسطة (برنامج تعريف) لنظام التشغيل  وجدت شركات التصنيع أن تحميل البرنامج الثابت من قبل النظام المضيف له ميزتين أرخص وأكثر مرونة. وكنتيجة لذلك، أكثر الأجهزة حالياً غير قادرة على أداء وظيفتها بأي طريقة مفيدة حتى يغذي الحاسوب المضيف البرنامج الثابت الضروري لذلك. إن تحميل البرنامج الثابت يعالج من قبل (برنامج تعريف).