إصدارات النواة المستقرة & التحديثات

بدأ نموذج الإصدار المستقر لـ Linux kernel في عام 2005، عندما تقرر أن نموذج تطوير kernel الحالي (إصدار جديد كل 2-3 أشهر) لا يلبي احتياجات معظم المستخدمين. أراد المستخدمون إجراء إصلاحات للأخطاء خلال فترة 2-3 أشهر، ووجدت توزيعات Linux صعوبة في تحديث النواة دون الحصول على تعليقات من مجتمع النواة. بشكل عام، كانت محاولات الحفاظ على أمان النوى الفردية باستخدام أحدث إصلاحات الأخطاء بمثابة جهد كبير ومربك من قبل الكثير من الأفراد المختلفين.

تعتمد إصدارات النواة المستقرة مباشرة على إصدارات Linus Torvalds، ويتم إصدارها كل أسبوع أو نحو ذلك، اعتمادًا على عوامل خارجية مختلفة (الوقت من السنة، والتصحيحات المتاحة، وعبء عمل المشرف، وما إلى ذلك). يبدأ ترقيم الإصدارات المستقرة برقم إصدار النواة، ويضاف رقم إضافي إلى نهايته. على سبيل المثال، يتم إصدار النواة 4.4 بواسطة Linus، ثم يتم ترقيم إصدارات النواة المستقرة المبنية على هذه النواة 4.4.1، 4.4.2، 4.4.3، وهكذا. عادة ما يتم اختصار هذا التسلسل بالرقم 4.4.y عند الإشارة إلى شجرة إطلاق نواة مستقرة. تتم صيانة كل شجرة إصدار مستقرة للنواة بواسطة مطور نواة واحد، وهو المسؤول عن اختيار التصحيحات المطلوبة للإصدار وإدارة عملية المراجعة/الإصدار.

يتم الحفاظ على النواة المستقرة طوال دورة التطوير الحالية. بعد أن يقوم Linus بإصدار نواة جديدة، يتم إيقاف شجرة إصدار النواة المستقرة السابقة ويجب على المستخدمين الانتقال إلى النواة الأحدث.

حبات مستقرة طويلة الأجل

بعد عام من عملية الإصدار المستقر الجديدة هذه، تقرر أن العديد من مستخدمي Linux المختلفين يريدون دعم النواة لفترة أطول من بضعة أشهر فقط. ردًا على ذلك، تم إنشاء إصدار نواة LTS مدعوم (LTS)، مع إصدار أول نواة LTS (2.6.16) في عام 2006. ومنذ ذلك الحين، يتم اختيار نواة LTS جديدة مرة واحدة سنويًا ويحافظ مجتمع النواة على تلك النواة لمدة عام. الحد الأدنى من 2 سنة.

في وقت كتابة هذه السطور، كانت نواة LTS هي الإصدارات 4.4.y و4.9.y و4.14.y و4.19.y و5.4.y و5.10.y. يتم إصدار نواة جديدة أسبوعيا. نظرًا لاحتياجات بعض المستخدمين والتوزيعات، تتم صيانة عدد قليل من النوى الإضافية القديمة بواسطة مطوري النواة في دورة إصدار أبطأ. يمكن العثور على معلومات حول جميع النوى المستقرة طويلة المدى، والمسؤول عنها، ومدة صيانتها، على صفحة إصدارات kernel.org .

يتم قبول متوسط ​​إصدارات LTS kernel من 6 إلى 8 تصحيحات يوميًا، بينما تحتوي إصدارات kernel العادية المستقرة على 10 إلى 15 تصحيحًا يوميًا. يتقلب عدد التصحيحات لكل إصدار نظرًا للوقت الحالي لإصدار نواة التطوير المقابل والمتغيرات الخارجية الأخرى. كلما كان نواة LTS أقدم، قلت التصحيحات القابلة للتطبيق عليها نظرًا لأن العديد من إصلاحات الأخطاء الحديثة ليست ذات صلة بالنواة الأقدم. ومع ذلك، كلما كانت النواة أقدم، كلما كان من الصعب نقل التغييرات المطلوبة لتطبيقها، وذلك بسبب التغييرات في قاعدة التعليمات البرمجية. لذلك، في حين أنه قد يكون هناك عدد أقل من التصحيحات الشاملة التي يتم تطبيقها، فإن الجهد المبذول في الحفاظ على نواة LTS أكبر من الحفاظ على النواة المستقرة العادية.

قواعد تصحيح النواة المستقرة

ظلت القواعد الخاصة بما يمكن إضافته إلى إصدار النواة المستقر متطابقة تقريبًا منذ تقديمه وهي ملخصة أدناه:

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

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

تحديثات النواة

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

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

يمكن أن تواجه الأجهزة التي تعتمد على Linux والتي تحتوي على مجموعات تصحيح كبيرة مشكلات كبيرة عند التحديث إلى نواة أحدث، وذلك بسبب العدد الكبير من التغييرات بين كل إصدار (10-14 ألف تغيير لكل إصدار). من المعروف بشكل خاص أن مجموعات تصحيحات SoC تواجه مشكلات في التحديث إلى النوى الأحدث نظرًا لحجمها الكبير وتعديلها الكبير للهندسة المعمارية المحددة، وفي بعض الأحيان رمز النواة الأساسي. ونتيجة لذلك، بدأ معظم موردي SoC في توحيد معايير استخدام إصدارات LTS لأجهزتهم، مما يمكّن هذه الأجهزة من تلقي تحديثات الأخطاء والأمان مباشرة من مجتمع Linux kernel.

حماية

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

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

للحصول على تفاصيل حول الإبلاغ عن الأخطاء الأمنية إلى مجتمع kernel لحلها وإصلاحها في أسرع وقت ممكن، راجع الأخطاء الأمنية في دليل مستخدم ومسؤول Linux kernel على www.kernel.org .

نظرًا لأن الأخطاء الأمنية لا يتم الإعلان عنها للعامة من قبل فريق kernel، فإن أرقام CVE الخاصة بالمشكلات المتعلقة بنواة Linux يتم إصدارها عادةً بعد أسابيع وأشهر وأحيانًا سنوات بعد دمج الإصلاح في الفروع المستقرة والتطويرية.

الحفاظ على نظام آمن

عند نشر جهاز يستخدم Linux، يوصى بشدة أن تقوم الشركة المصنعة بأخذ كافة تحديثات kernel LTS وإرسالها إلى مستخدميها بعد أن يُظهر الاختبار المناسب أن التحديث يعمل بشكل جيد. وهذا له العديد من المزايا:

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