Linux çekirdeği kararlı sürüm modeli, mevcut çekirdek geliştirme modelinin (2-3 ayda bir yeni sürüm) çoğu kullanıcının ihtiyaçlarını karşılamadığı belirlendiğinde 2005'te kullanıma sunulmuştur. Kullanıcılar bu 2-3 ay içinde hata düzeltmeleri yapılmasını istiyordu ve Linux dağıtımları, çekirdek topluluğundan geri bildirim olmadan çekirdekleri güncel tutmakta zorlanıyordu. Genel olarak, tek tek çekirdekleri güvenli ve en son hata düzeltmelerini içeren bir durumda tutma girişimleri, birçok farklı kişi tarafından yapılan 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 harici faktörlere (yılın zamanı, mevcut yamalar, bakım uzmanının iş yükü vb.) bağlı olarak yaklaşık her hafta yayınlanır. Kararlı sürümlerin numaralandırması, çekirdek sürümünün numarasıyla başlar ve sonuna ek bir sayı eklenir. Örneğin, 4.4 çekirdeği Linus tarafından yayınlanır ve ardından bu çekirdeğe dayalı kararlı çekirdek sürümleri 4.4.1, 4.4.2, 4.4.3 vb. şeklinde numaralandırılır. Bu sıra, kararlı bir çekirdek sürüm ağacından bahsederken 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/sürüm sürecini yönetmekten sorumlu olan tek bir çekirdek geliştiricisi tarafından yönetilir.
Kararlı çekirdekler, mevcut geliştirme döngüsü boyunca desteklenir. Linus yeni bir çekirdek yayınladıktan sonra, önceki kararlı çekirdek sürüm ağacı durdurulur ve kullanıcıların yeni yayınlanan çekirdeğe geçmesi gerekir.
Uzun süreli kararlı çekirdekler
Bu yeni kararlı sürüm sürecinin üzerinden bir yıl geçtikten sonra, birçok farklı Linux kullanıcısının bir çekirdeğin birkaç aydan daha uzun süre desteklenmesini istediğini belirledik. Buna karşılık, uzun süreli destekli (LTS) çekirdek sürümü oluşturuldu. İlk LTS çekirdeği (2.6.16) 2006'da yayınlandı. O zamandan beri yılda bir kez yeni bir LTS çekirdeği seçiliyor ve çekirdek topluluğu bu çekirdeği en az 2 yıl boyunca destekliyor.
Bu makalenin yazıldığı sırada LTS çekirdekleri 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y ve 5.10.y sürümleridir. Haftalık olarak 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ü içinde birkaç eski çekirdek daha sürdürülür. Tüm uzun süreli kararlı çekirdekler, bu çekirdeklerden sorumlu olan kişiler ve bu çekirdeklerin ne kadar süre boyunca desteklendiği hakkında bilgi edinmek için kernel.org/releases sayfasını ziyaret edebilirsiniz.
LTS çekirdek sürümlerinde günde ortalama 6-8 yama kabul edilirken normal kararlı çekirdek sürümlerinde günde 10-15 yama bulunur. Yama sayısı, ilgili geliştirme çekirdek sürümünün mevcut zamanı ve diğer harici değişkenler göz önünde bulundurularak sürüm başına değişir. En son hata düzeltmelerinin çoğu eski çekirdeklerle alakalı olmadığından, LTS çekirdeği ne kadar eskiyse o kadar az yaması geçerlidir. Ancak bir çekirdeğin yaşı arttıkça kod tabanındaki değişiklikler nedeniyle uygulanması gereken değişiklikleri geriye dönük olarak uygulamak da o kadar zor olur. Bu nedenle, uygulanan toplam yama sayısı daha az olsa da LTS çekirdeğini korumak, normal kararlı çekirdeği korumaktan daha fazla çaba gerektirir.
Kararlı çekirdek yaması kuralları
Kararlı çekirdek sürümüne nelerin eklenebileceğine dair kurallar, kullanıma sunulmasından 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 uzun olmamalıdır.
- Yalnızca bir şey düzeltilmelidir.
- Sorun olarak bildirilen bir sorunu düzeltmeniz gerekir.
- Donanım için yeni bir cihaz kimliği veya tuhaflık olabilir ancak önemli yeni işlevler eklemez.
- Linus Torvalds'ın ağacına zaten birleştirilmiş olmalıdır.
"Linus Torvalds'ın ağacına zaten eklenmiş olmalıdır" şeklindeki son kural, çekirdek topluluğunun düzeltmeleri kaybetmesini önler. Topluluk, bir düzeltmenin Linus Torvalds'ın ağacında bulunmayan kararlı bir çekirdek sürümüne girmesini asla istemez. Böylece, yükseltme yapan hiç kimse gerileme yaşamaz. Bu sayede, kararlı ve geliştirme dalı olan diğer projelerin karşılaşabileceği birçok sorun önlenir.
Çekirdek güncellemeleri
Linux çekirdek topluluğu, kullanıcı tabanına hiçbir yükseltmenin önceki sürümde çalışan hiçbir şeyi bozmayacağına dair söz vermiştir. Bu söz bugün de geçerliliğini koruyor. Gerilemeler yaşanır ancak bunlar en yüksek öncelikli hatalar olduğundan hızlı bir şekilde düzeltilir veya gerilemeye neden olan değişiklik Linux çekirdek ağacından hızlı bir şekilde geri alınır.
Bu taahhüt hem artımlı kararlı çekirdek güncellemeleri hem de üç ayda bir yapılan 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. Cihazın çekirdeğine birleştirilen ve kernel.org sürümlerinde bulunmayan tüm kodlar bilinmez ve bu kodlarla etkileşimler hiçbir zaman planlanamaz veya dikkate alınmaz.
Linux tabanlı ve büyük yamalar içeren cihazlarda, her sürüm arasında çok sayıda değişiklik (sürüm başına 10-14 bin değişiklik) olduğundan yeni çekirdeklere güncelleme yapılırken önemli sorunlar yaşanabilir. SoC yama paketlerinin, özellikle büyük boyutları ve mimariye özel ve bazen de çekirdek çekirdek kodunda yapılan ağır değişiklikler nedeniyle daha yeni çekirdeklere güncellemeyle ilgili sorunları olduğu bilinmektedir. Sonuç olarak, çoğu SoC tedarikçisi cihazlarında LTS sürümlerini kullanmaya standart olarak başlıyor. Bu sayede, cihazlar doğrudan Linux çekirdek topluluğundan hata ve güvenlik güncellemeleri alabiliyor.
Güvenlik
Linux çekirdek topluluğu, çekirdek sürümlerini yayınlarken belirli değişiklikleri neredeyse hiçbir zaman güvenlik düzeltmeleri olarak tanımlamaz. Bunun nedeni, bir hata düzeltmesinin oluşturulduğu sırada güvenlik düzeltmesi olup olmadığının belirlenmesinin zor olmasıdır. 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üzeltmelerini uygulamanızı önemle tavsiye eder.
Güvenlik sorunları çekirdek topluluğuna bildirildiğinde en kısa sürede düzeltilir ve geliştirme ağacına ve kararlı sürümlere herkese açık olarak dağıtılır. Yukarıda belirtildiği gibi, değişiklikler neredeyse hiçbir zaman "güvenlik düzeltmesi" olarak tanımlanmaz. Bunun yerine, çekirdekteki diğer hata düzeltmeleriyle aynı şekilde görünür. Bu, etkilenen tarafların sorunu bildiren kullanıcıdan önce sistemlerini güncellemelerine olanak tanımak için yapılır.
Güvenlik hatalarının en kısa sürede çözülmesi ve düzeltilmesi için çekirdek topluluğuna bildirilmesi hakkında ayrıntılı bilgi edinmek isterseniz www.kernel.org adresindeki Linux çekirdek kullanıcı ve yönetici kılavuzundaki Güvenlik hataları bölümüne bakın.
Güvenlik hataları çekirdek ekibi tarafından kamuya duyurulmadığı için Linux çekirdeğiyle ilgili sorunların CVE numaraları genellikle düzeltmenin kararlı ve geliştirme dallarına birleştirilmesinden haftalar, aylar ve bazen yıllar sonra yayınlanır.
Sistemin güvenliğini sağlama
Linux kullanan bir cihazı dağıtırken, tüm LTS çekirdek güncellemelerinin üretici tarafından alınmasını ve güncellemenin iyi çalıştığını gösteren uygun testlerden sonra kullanıcılara dağıtılmasını önemle tavsiye ederiz. Bunun birkaç avantajı vardır:
- Sürümler, çekirdek geliştiricileri tarafından ayrı ayrı değil, bir bütün olarak incelenmiştir.
- Hangi yamaların "güvenlik" sorunlarını düzelttiğini ve hangilerinin düzeltmediğini belirlemek zordur. Neredeyse her LTS sürümü en az bir bilinen güvenlik düzeltmesi ve henüz "bilinmeyen" birçok düzeltme içerir.
- Testte bir sorun tespit edilirse çekirdek geliştirici topluluğu sorunu hızlı bir şekilde çözmek için harekete geçer.
- Yalnızca çalıştırdığınız değişiklikleri filtreleme girişimleri, gelecekteki yayın sürümleriyle doğru şekilde birleştirilmesi imkansız bir çekirdek ağacı oluşturur.