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

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

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

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

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

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

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

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

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

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

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

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

تحديثات Kernel

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

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

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

حماية

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

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

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

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

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

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

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