Dağıtımların en son Linux çekirdeğini kullanmasını engelleyen nedir? [kapalı]


13

Çoğu Linux dağıtımı belirli bir çekirdek sürümüyle birlikte gelir ve yalnızca nokta sürümlerine ( x.y.zto x.y.(z+1)) ve güvenlik güncelleştirmeleri için güncelleştirir.

Öte yandan, Linux'un çekirdek ABI'sını değiştirmeme ve kullanıcı alanını asla kırmama konusunda çok katı bir politikası olduğunu biliyorum. Aslında, Linus'un çekirdeği (kasıtlı olarak veya kazayla) değiştirmek isteyen geliştiricilere yönelik geriye dönük uyumlu olmayan birçok yol vardır.

Dağıtımların neden her zaman en son çekirdeğe güncellemek yerine "kararlı" çekirdekler kullandığını anlamıyorum. Bu bir eleştiri değil, sadece sebebini merak ediyorum.


1
çünkü en son çekirdeklerde test yok. sistemin kararlılığını etkileyebilecek hatalar içerebilir ve kararlılık herhangi bir dağıtım bakımcının ana odağıdır.

Yanıtlar:


8

Linux çekirdeğinin sistem çağrı arabirimleri çok kararlıdır. Ancak çekirdeğin her zaman uyumlu olmayan başka arayüzleri vardır.

  • /procçoğunlukla kararlıdır, ancak geçmişte birkaç değişiklik olmuştur (örneğin , oluşturulduktan /syssonra bir süre geçen bazı arayüzler /sys).
  • Geçmişte cihazla ilgili bir dizi arayüz kaldırılmıştır .
  • /sys(içinde listelenen Documentation/ABI/stable) bazı kararlı arayüzler ve olmayanlar içerir. Kullanılmayanları kullanmanız gerekmiyor, ancak bazen insanlar kullanıyor ve basit bir güvenlik ve istikrar yükseltmesi onlar için bir şey kırmamalı.
  • Geçmişte modutils ile uyumsuzluklar olmuştur (modutils'in daha yeni bir sürümünü gerektiren yeni çekirdekler), ancak oldukça uzun bir süre önce olduğunu düşünüyorum.
  • Bazı olağandışı yapılandırmalarda önyükleme işlemiyle ilgili uyumsuzluklar da vardır. Çekirdeğin boyutunu artırmak bile bazı gömülü sistemlerde sorunlara neden olabilir.
  • Çekirdeğin dış arabirimleri oldukça kararlı olsa da , arabirimler sabit değildir. Dahili arayüzler için kural, dahili kullanımları düzelttiği sürece herkesin bunları kırabileceğidir, ancak üçüncü taraf modüllerin sabitlenmesi, söz konusu modüllerin yazarının sorumluluğundadır. Genel olarak oldukça fazla sayıda kurulum üçüncü taraf modülleri çalıştırıyor: çekirdek tarafından desteklenmeyen donanım için ekstra sürücüler (donanım yeni çekirdek tarafından destekleniyorsa, bu iyi, ama ya değilse,) özel sürücüler ( tüm sürücüler açık kaynak olsaydı dünya daha iyi bir yer olsa da, durum böyle değildir; örneğin, iyi bir 3D GPU performansı istiyorsanız, özellikle tescilli sürücülerle sıkışmışsınız) vb.
  • Bazı kişilerin çekirdeklerini veya bazı üçüncü taraf modüllerini yeniden derlemeleri gerekir. Daha yeni çekirdekler genellikle eski derleyicilerle derlenemez.

Sonuç olarak, daha yeni bir çekirdek sürümüne geçmemenin birincil nedeni üçüncü taraf modülleridir.

Bununla birlikte, bazı dağıtımlar son çekirdek olarak bir seçenek sunmaktadır. Örneğin, Debian çekirdek testlerini backport yoluyla kararlı sürüm kullanıcıları için kullanılabilir hale getirir. Benzer şekilde, Ubuntu LTS'de, daha yeni Ubuntu sürümlerinden çekirdekler kullanılabilir, ancak varsayılan olarak kullanılmaz. Bu çoğunlukla dağıtım tamamlandığında henüz desteklenmeyen yeni donanım kurulumları için kullanışlıdır.


9

Dağıtım için çalışmıyorum, ancak en az iki neden düşünebilirim:

  • Bazı dağıtımlar özel yamalarını henüz ana hatta birleştirilmeyen Çekirdeğe uygular. Bu, Çekirdeğin her güncellemesi için, yamalarının hiçbir şeyi kırmamasını ve hala düzgün çalışmasını sağlamak için ihtiyaç duydukları anlamına gelir.
  • En son kararlı Çekirdek sürümü bile bir hata içerebilir, güvenilirliği ciddiye alan dağıtımlar, müşterilerine bir Çekirdek vermeden önce bazı test prosedürlerinden / işlemlerinden geçmek isteyecektir.

2
Dağıtıma özgü yamalar yine de yukarı akış için tasarlanmamıştır. Ve en son yukarı akış çekirdeği ortalama olarak bir dağıtımın test edilmiş "stok" çekirdeğinden daha fazla hata içerecektir. Bir dağıtım tarafından dağıtılan çekirdeğin çoğu, kodu gereğinden fazla değiştirmemekle birlikte mümkün olduğunca çok hatayı düzeltmeye / düzeltmeye çalışmaktır.
Faheem Mitha

0

Daha muhafazakar dağılımlar , istikrar uğruna istikrarlı çekirdek sürümlerini takip eder (ve aktif olarak katılırlar) . Daha maceracı olanlar, en yeni ve en büyük vanilyanın bir çekirdeği bir versiyonunu ve ayrıca geliştirme ucundan (ve evde yetiştirilen bazılardan) desteklenen bir yamalar serpiştirir.

Mevcut çekirdek geliştirme politikası, Linus'un versiyonunun parlak, yeni oyuncaklarla ilerlemesidir ve toptan değişikliklerden korkmaz. Bazı versiyonlar, titiz testler ve stabilizasyonun temelini oluşturacak şekilde kararlı (seri olarak) olarak kabul edilir ve kararlı seriler verir.

Tüm bunlar, kullanılan araçlar nedeniyle mümkündür, herkes kendi git ağacını tımar edebilir , ilginç yukarı akış dallarını ve ağaçları yerel olarak senkronize edebilir, başkalarından atar ve yerel değişiklikleri özgürce paylaşabilir.


Kararlı çekirdek serisi belirli bir sürümün kararlılığına dayanarak seçilmez, isteğe bağlıdır. Bu yıldan başlayarak, istikrarlı seri her yıl yayınlanan ilk sürüme dayanacaktır ... Her bir çekirdek sürümünün kararlı olması ve uyumluluğu hiçbir zaman geriye döndürmemesi gerekir.
Stephen Kitt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.