Kararlı Çekirdek Sürümleri ve amp; Güncellemeler

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ığının belirlenmesiyle 2005 yılında başladı. Kullanıcılar bu 2-3 ay boyunca hata düzeltmelerinin yapılmasını istediler ve Linux dağıtımları, çekirdek topluluğundan geri bildirim olmadan çekirdekleri güncel tutmanın zor olduğunu gördü. Genel olarak, bireysel çekirdekleri güvende tutma çabaları ve en son hata düzeltmeleri, 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 dış faktörlere (yılın zamanı, mevcut yamalar, bakımcının iş yükü vb.) bağlı olarak yaklaşık her hafta yayınlanır. Kararlı sürümlerin numaralandırılması çekirdek sürümü numarasıyla başlar ve sonuna ek bir sayı eklenir. Örneğin, 4.4 çekirdeği Linus tarafından yayımlanır ve ardından 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 sürüm ağacına atıfta bulunulduğunda genellikle 4.4.y numarasıyla kısaltılır. Her kararlı çekirdek sürüm ağacının bakımı, sürüm için gerekli yamaların seçilmesinden ve inceleme/yayınlama sürecinin yönetilmesinden sorumlu olan tek bir çekirdek geliştiricisi tarafından sağlanır.

Mevcut geliştirme döngüsü boyunca kararlı çekirdekler korunur. Linus yeni bir çekirdek yayınladıktan sonra önceki kararlı çekirdek sürüm ağacı durdurulur ve kullanıcıların daha yeni yayımlanan ç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 birkaç aydan daha uzun süre desteklenmesini istediği belirlendi. Buna yanıt olarak, 2006 yılında piyasaya sürülen ilk LTS çekirdeği (2.6.16) ile Uzun Süreli Desteklenen (LTS) çekirdek sürümü oluşturuldu. O zamandan bu yana, yılda bir kez yeni bir LTS çekirdeği seçiliyor ve çekirdek topluluğu bu çekirdeği bir süre boyunca koruyor. minimum 2 yıl.

Bu yazının 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ümleriydi. Her hafta yeni bir çekirdek yayınlanıyor. Bazı kullanıcıların ve dağıtımların ihtiyaçları nedeniyle, birkaç eski çekirdek daha yavaş bir sürüm döngüsünde çekirdek geliştiricileri tarafından korunur. Tüm uzun vadeli kararlı çekirdekler, onlardan kimin sorumlu olduğu ve bunların ne kadar süreyle muhafaza edileceğine ilişkin bilgiler kernel.org sürümler sayfasında bulunabilir.

LTS çekirdeği günde 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, yama sayısı sürüm başına dalgalanır. LTS çekirdeği ne kadar eski olursa, güncel hata düzeltmelerinin çoğu eski çekirdeklerle ilgili olmadığından ona uygulanabilecek yama sayısı da o kadar az olur. Ancak çekirdek ne kadar eski olursa, kod tabanındaki değişiklikler nedeniyle uygulanması gereken değişiklikleri desteklemek o kadar zor olur. Bu nedenle, uygulanan genel yama sayısı daha az olsa da, bir LTS çekirdeğini korumak 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:

  • Kesinlikle doğru ve test edilmiş olmalıdır.
  • 100 satırdan büyük olmamalıdır.
  • Tek bir şeyi düzeltmemiz gerekiyor.
  • Sorun olduğu bildirilen bir şeyin düzeltilmesi gerekir.
  • Yeni bir cihaz kimliği veya donanıma yönelik bir özellik olabilir, ancak yeni ve önemli bir işlevsellik eklemez.
  • Zaten Linus Torvalds'ın ağacıyla birleştirilmiş olmalı.

Son kural olan "Linus Torvalds'ın ağacıyla zaten birleştirilmiş olmalı", çekirdek topluluğunun düzeltmeleri kaybetmesini önler. Topluluk, halihazırda Linus Torvalds'ın ağacında bulunmayan kararlı bir çekirdek sürümüne yönelik bir düzeltmeyi asla istemez, böylece yükseltme yapan hiç kimse asla bir gerileme görmemelidir. Bu da istikrarlı ve gelişmeyi sürdüren diğer projelerin yaşayabileceği pek çok sorunun önüne geçiyor.

Çekirdek güncellemeleri

Linux çekirdek topluluğu, kullanıcı tabanına, hiçbir yükseltmenin önceki sürümde çalışmakta olan hiçbir şeyi bozmayacağına dair söz verdi. Bu söz bugün de geçerliliğini koruyor. Gerilemeler meydana gelir, ancak bunlar en yüksek öncelikli hatalardır ve ya hızlı bir şekilde 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 artımlı 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 yer almayan, bir cihazın çekirdeğiyle birleştirilen herhangi bir kod bilinmemektedir ve bu kodla etkileşimler hiçbir zaman planlanamaz, hatta dikkate alınamaz.

Büyük yama setlerine sahip Linux tabanlı cihazlar, her sürüm arasında çok sayıda değişiklik olması nedeniyle (sürüm başına 10-14 bin değişiklik) daha yeni çekirdeklere güncelleme yaparken büyük sorunlar yaşayabilir. SoC yama setlerinin, büyük boyutları ve mimariye özgü, bazen de çekirdek çekirdek kodundaki yoğun değişiklikler nedeniyle, özellikle yeni çekirdeklere güncelleme konusunda sorunlar yaşadığı bilinmektedir. Sonuç olarak, çoğu SoC satıcısı, cihazlarında LTS sürümlerini kullanma konusunda standartlaşmaya başlıyor ve bu cihazların hata ve güvenlik güncellemelerini doğrudan Linux çekirdek topluluğundan 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şturulma sırasında bir güvenlik düzeltmesi olup olmadığının belirlenmesindeki zorluktan kaynaklanan temel sorundur. Ayrıca, birçok hata düzeltmesinin yalnızca uzun bir süre geçtikten sonra güvenlikle ilgili olduğu belirlenir, bu nedenle çekirdek topluluğu, yayımlanan tüm hata düzeltmelerinin her zaman 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 aktarılır. Yukarıda açıklandığı gibi, değişiklikler neredeyse hiçbir zaman bir "güvenlik düzeltmesi" olarak tanımlanmaz, bunun yerine çekirdekteki diğer herhangi bir hata düzeltmesine benzer. Bu, etkilenen tarafların, sorunu bildiren kişi bunu duyurmadan önce sistemlerini güncelleyebilmelerine olanak sağlamak için yapılır.

Güvenlik hatalarının mümkün olan en kısa sürede çözülmesi ve düzeltilmesi amacıyla çekirdek topluluğuna bildirilmesiyle 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 kamuya duyurulmadığı için, Linux çekirdeği ile ilgili sorunlara ilişkin CVE numaraları genellikle düzeltmenin kararlılık ve geliştirme dallarıyla 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 dağıtılması önemle tavsiye edilir. Bunun birkaç avantajı vardır:

  • Sürümler, çekirdek geliştiricileri tarafından tek tek parçalar halinde değil, bir bütün olarak incelendi.
  • Hangi yamaların "güvenlik" sorunlarını çözdüğünü, hangilerinin çözmediğini belirlemek imkansız olmasa da zordur. Hemen hemen her LTS sürümü, bilinen en az bir güvenlik düzeltmesi içerir ve birçoğu henüz "bilinmemektedir".
  • Testler bir sorun gösterirse, çekirdek geliştirici topluluğu sorunu çözmek için hızlı bir şekilde tepki verecektir.
  • Yalnızca çalıştırdığınız değişiklikleri filtrelemeye çalışmak, gelecekteki yukarı akış sürümleriyle doğru şekilde birleştirilmesi imkansız olan bir çekirdek ağacıyla sonuçlanacaktır.