Linux çekirdeği kararlı sürüm modeli, mevcut çekirdek geliştirme modelinin (her 2-3 ayda bir yeni sürüm) çoğu kullanıcının ihtiyaçlarını karşılamadığı belirlendiğinde 2005 yılında başladı. Kullanıcılar bu 2-3 ay içinde hata düzeltmelerinin yapılmasını istedi ve Linux dağıtımları, çekirdek topluluğundan geri bildirim almadan çekirdekleri güncel tutmayı zor buldu. Genel olarak, bireysel çekirdekleri güvenli tutma girişimleri ve en son hata düzeltmeleri, birçok farklı kişi tarafından büyük ve kafa karıştırıcı bir çabaydı.
Kararlı çekirdek sürümleri, doğrudan Linus Torvalds'ın sürümlerine dayanır ve çeşitli dış etkenlere (yılın zamanı, mevcut yamalar, bakımcı iş yükü vb.) bağlı olarak her hafta ya da daha fazla yayınlanır. Kararlı sürümlerin numaralandırılması, çekirdek sürümünün numarası ile başlar ve sonuna ek bir sayı eklenir. Örneğin, 4.4 çekirdeği Linus tarafından yayınlanır ve daha sonra bu çekirdeğe dayalı kararlı çekirdek sürümleri 4.4.1, 4.4.2, 4.4.3 vb. olarak numaralandırılır. Bu dizi, kararlı bir çekirdek yayın ağacına atıfta bulunulduğunda genellikle 4.4.y sayısıyla kısaltılır. Her kararlı çekirdek sürüm ağacı, sürüm için gerekli yamaları seçmekten ve inceleme/yayın sürecini yönetmekten sorumlu olan tek bir çekirdek geliştiricisi tarafından korunur.
Mevcut geliştirme döngüsünün uzunluğu boyunca kararlı çekirdekler korunur. Linus yeni bir çekirdek yayınladıktan sonra, önceki kararlı çekirdek yayın ağacı durdurulur ve kullanıcıların daha yeni yayınlanan çekirdeğe geçmesi gerekir.
Uzun vadeli kararlı çekirdekler
Bu yeni kararlı sürüm sürecinden bir yıl sonra, birçok farklı Linux kullanıcısının bir çekirdeğin yalnızca birkaç aydan daha uzun süre desteklenmesini istediği belirlendi. Buna karşılık, 2006'da piyasaya sürülen ilk LTS çekirdeği (2.6.16) ile Uzun Vadeli Destekli (LTS) çekirdek sürümü oluşturuldu. O zamandan beri, yılda bir kez yeni bir LTS çekirdeği seçildi ve çekirdek topluluğu bu çekirdeği bir süre için korur. en az 2 yıl.
Bu yazının yazıldığı tarihte, LTS çekirdekleri 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y ve 5.10.y sürümleridir. Her hafta yeni bir çekirdek yayınlanır. Bazı kullanıcıların ve dağıtımların ihtiyaçları nedeniyle, çekirdek geliştiricileri tarafından daha yavaş bir sürüm döngüsünde birkaç ek eski çekirdek korunur. Tüm uzun vadeli kararlı çekirdekler, bunlardan kimin sorumlu olduğu ve ne kadar süreyle korunacakları hakkında bilgi, kernel.org sürüm sayfasında bulunabilir.
LTS çekirdeği günde kabul edilen ortalama 6-8 yama yayınlarken, normal kararlı çekirdek sürümleri günde 10-15 yama içerir. İlgili geliştirme çekirdeği sürümünün geçerli zamanı ve diğer harici değişkenler göz önüne alındığında, sürüm başına yama sayısı dalgalanır. Bir LTS çekirdeği ne kadar eskiyse, o kadar az yama uygulanabilir, çünkü birçok yeni hata düzeltmesi eski çekirdeklerle alakalı değildir. Bununla birlikte, bir çekirdek ne kadar eskiyse, kod tabanındaki değişiklikler nedeniyle uygulanması gereken değişiklikleri geri yüklemek o kadar zor olur. Bu nedenle, daha az sayıda genel yama uygulanıyor olsa da, bir LTS çekirdeğini sürdürmek için gereken çaba, normal kararlı çekirdeği korumaktan daha fazladır.
Kararlı çekirdek yama kuralları
Kararlı bir çekirdek sürümüne nelerin eklenebileceğine ilişkin kurallar, piyasaya sürülmesinden bu yana neredeyse aynı kalmıştır ve aşağıda özetlenmiştir:
- Açıkça doğru ve test edilmiş olmalıdır.
- 100 satırdan büyük olmamalıdır.
- Tek bir şeyi düzeltmeli.
- Sorun olduğu bildirilen bir şeyi düzeltmelidir.
- Donanım için yeni bir cihaz kimliği veya tuhaflık olabilir, ancak önemli yeni işlevler eklemez.
- Linus Torvalds'ın ağacıyla birleştirilmiş olmalı.
Son kural, "Zaten Linus Torvalds' ağacıyla birleştirilmelidir", çekirdek topluluğunun düzeltmeleri kaybetmesini önler. Topluluk asla bir düzeltmenin Linus Torvalds'ın ağacında olmayan kararlı bir çekirdek sürümüne girmesini istemez, böylece yükseltme yapan hiç kimse bir gerileme görmez. Bu, istikrarlı ve gelişim dalını sürdüren diğer projelerin yaşayabileceği birçok sorunu önler.
Çekirdek güncellemeleri
Linux çekirdek topluluğu, kullanıcı tabanına hiçbir yükseltmenin şu anda önceki bir sürümde çalışmakta olan hiçbir şeyi bozmayacağına söz verdi. Bu söz bugün de geçerlidir. Gerilemeler olur, ancak bunlar en yüksek öncelikli hatalardır ve ya çabucak düzeltilir ya da gerilemeye neden olan değişiklik, Linux çekirdek ağacından hızla geri döndürülür.
Bu söz, hem artan kararlı çekirdek güncellemeleri hem de her üç ayda bir gerçekleşen daha büyük büyük güncellemeler için geçerlidir. Ancak, çekirdek topluluğu bu sözü yalnızca Linux çekirdek ağacına birleştirilen kod için verebilir. Kernel.org sürümlerinde olmayan bir cihazın çekirdeğiyle birleştirilen herhangi bir kod bilinmez ve onunla etkileşimler asla planlanamaz ve hatta düşünülemez.
Büyük yama setlerine sahip Linux tabanlı aygıtlar, her sürüm arasındaki çok sayıda değişiklik (sürüm başına 10-14 bin değişiklik) nedeniyle daha yeni çekirdeklere güncelleme yaparken büyük sorunlar yaşayabilir. SoC yama kümelerinin, büyük boyutları ve mimariye özgü ve bazen de çekirdek çekirdek kodunda yapılan ağır değişiklikler nedeniyle özellikle daha yeni çekirdeklere güncelleme sorunları olduğu bilinmektedir. Sonuç olarak, çoğu SoC satıcısı, cihazları için LTS sürümlerini kullanmaya başlayarak, bu cihazların doğrudan Linux çekirdek topluluğundan hata ve güvenlik güncellemeleri almasını sağlıyor.
Güvenlik
Çekirdek sürümleri yapılırken, Linux çekirdek topluluğu neredeyse hiçbir zaman belirli değişiklikleri güvenlik düzeltmeleri olarak bildirmez. Bunun nedeni, bir hata düzeltmesinin oluşturulduğu sırada bir güvenlik düzeltmesi olup olmadığını belirleme zorluğunun temel sorunudur. Ayrıca, birçok hata düzeltmesinin güvenlikle ilgili olduğu ancak çok zaman geçtikten sonra belirlenir, bu nedenle çekirdek topluluğu her zaman yayınlanan tüm hata düzeltmelerinin alınmasını şiddetle tavsiye eder.
Güvenlik sorunları çekirdek topluluğuna bildirildiğinde, bunlar mümkün olan en kısa sürede düzeltilir ve geliştirme ağacına ve kararlı sürümlere herkese açık olarak gönderilir. Yukarıda açıklandığı gibi, değişiklikler neredeyse hiçbir zaman bir "güvenlik düzeltmesi" olarak tanımlanmaz, bunun yerine çekirdek için başka herhangi bir hata düzeltmesine benziyor. Bu, etkilenen tarafların, sorunu bildiren kişi bunu duyurmadan önce sistemlerini güncelleme becerisine izin vermek için yapılır.
Güvenlik hatalarının mümkün olan en kısa sürede çözülmesini ve düzeltilmesini sağlamak için çekirdek topluluğuna rapor etmeyle ilgili ayrıntılar için, www.kernel.org adresindeki Linux çekirdeği kullanıcı ve yönetici kılavuzundaki Güvenlik hatalarına bakın.
Güvenlik hataları çekirdek ekibi tarafından halka duyurulmadığı için, Linux çekirdeğiyle ilgili sorunlar için CVE numaraları genellikle düzeltmenin kararlı ve geliştirme dallarında birleştirilmesinden haftalar, aylar ve bazen yıllar sonra yayınlanır.
Güvenli bir sistem tutmak
Linux kullanan bir cihazı dağıtırken, tüm LTS çekirdek güncellemelerinin üretici tarafından alınması ve uygun testler güncellemenin iyi çalıştığını gösterdikten sonra kullanıcılarına iletilmesi şiddetle tavsiye edilir. Bunun birkaç avantajı vardır:
- Sürümler, çekirdek geliştiriciler tarafından ayrı ayrı değil, bir bütün olarak incelendi.
- Hangi yamaların "güvenlik" sorunlarını çözdüğünü ve hangilerinin çözmediğini belirlemek imkansız değilse de zordur. Hemen hemen her LTS sürümü, en az bir bilinen güvenlik düzeltmesi içerir ve birçoğu henüz "bilinmeyen"dir.
- Test bir sorun gösteriyorsa, çekirdek geliştirici topluluğu sorunu çözmek için hızla tepki verecektir.
- Yalnızca çalıştırdığınız değişiklikleri filtreleme girişimleri, gelecekteki yukarı akış sürümleriyle doğru şekilde birleştirilmesi imkansız olan bir çekirdek ağacıyla sonuçlanacaktır.