Linux çekirdeğinin 25 yıllık gelişimi layman'ın terimleriyle nitelendirilebilir veya soyutlanabilir mi? [kapalı]


12

Linux çekirdeği neredeyse 25 yaşında . 1991'den bu yana Linux çekirdeğinin gelişim tarihinin kısa bir versiyonunu (başlangıç ​​tarihi) ve 1994'ten bu yana parçacık halinde (1.0.0) gelmek zorunda kalsaydım, yapamadım. Her çekirdek sürüm notunu okumak için yapabileceğim en iyi şey, 3.11 sürümüne kadar çekirdeğe eklenen genel sürüm özellikleri olan aşağıdakileri sağlamak olacaktır (notlar ve bağlantılar atlanmıştır):

  • Linux çekirdeğinin 1.0 sürümü 14 Mart 1994'te piyasaya sürüldü. Linux çekirdeğinin bu sürümü yalnızca tek işlemcili i386 tabanlı bilgisayar sistemlerini destekledi. Taşınabilirlik bir sorun haline geldi ve bu nedenle 1.2 sürümü (7 Mart 1995'te yayınlandı) Alpha, SPARC ve MIPS mimarilerine dayanan işlemcileri kullanan bilgisayar sistemleri için destek kazandı.
  • Sürüm 2.0 9 Haziran 1996'da yayınlandı. Dizide 41 sürüm vardı. 2.0'ın en önemli özelliği SMP desteği (yani tek bir sistemde birden fazla işlemci desteği) ve daha fazla işlemci türü desteği idi.
  • Sürüm 2.2 (26 Ocak 1999'da piyasaya sürüldü) genel spinlock'u kaldırdı ve gelişmiş SMP desteği sağladı ve m68k ve PowerPC mimarileri ile yeni dosya sistemleri (Microsoft'un NTFS'si için salt okunur destek dahil) için destek ekledi.
  • 4 Ocak 2001'de yayınlanan 2.4.0 sürümü , ISA Tak ve Kullan, USB ve PC Kartları için destek içeriyordu. Ayrıca Hewlett-Packard'ın PA-RISC işlemcisi için destek içeriyordu. 2.4.x için geliştirme, dizi boyunca daha fazla özellik sunulduğu için biraz değişti: Bluetooth desteği, Mantıksal Birim Yöneticisi (LVM) sürüm 1, RAID desteği, InterMezzo ve ext3 dosya sistemleri.
  • Sürüm 2.6.0 , 18 Aralık 2003 tarihinde piyasaya sürüldü. 2.6.x için geliştirme, serinin süresi boyunca yeni özelliklerin dahil edilmesi yönünde daha da değişti. 2.6 serisinde yapılan değişiklikler arasında: µClinux'un ana hat çekirdek kaynaklarına entegrasyonu, PAE desteği, birkaç yeni CPU hattı desteği, ALSA'nın ana hat çekirdek kaynaklarına entegrasyonu, 2 32 kullanıcıya kadar destek ( en fazla 2 16 ), en fazla 2 29 işlem kimliği desteği (yalnızca 64 bit, 32 bit kemerler hala 2 15 ile sınırlıdır), cihaz türlerinin sayısını ve her türden cihaz sayısını önemli ölçüde artırdı, gelişmiş 64 bit desteği, 16 terabayta kadar dosya boyutlarını destekleyen dosya sistemleri desteği, çekirdek içi önleme, Yerel POSIX İş Parçacığı Kitaplığı desteği (NPTL), Ana hat çekirdek kaynaklarına kullanıcı modu Linux entegrasyonu, ana hat çekirdek kaynaklarına SELinux entegrasyonu, InfiniBand desteği ve çok daha fazlası. 2.6.x sürümleri boyunca birkaç dosya sisteminin eklenmesi de dikkat çekicidir: FUSE, JFS, XFS, ext4 ve daha fazlası. 2.6 çekirdek serisinin geçmişi hakkındaki ayrıntılar, kernel.org'un 2.6 çekirdek serisi kaynak kodu sürüm alanındaki ChangeLog dosyalarında bulunabilir.
  • Sürüm 3.0 , 22 Temmuz 2011'de yayınlandı. Torvalds, büyük değişikliğin "HİÇBİR ŞEY. Kesinlikle hiçbir şey" olduğunu açıkladı. 30 Mayıs 2011 Torvalds'ın "... bir sonraki sürümü sadece tamamen yeni bir parlak sayı değil, aynı zamanda iyi bir çekirdek de yaptığımızdan emin olalım." Beklenen 6-7 haftalık geliştirme sürecinden sonra, Linux'un 20. yıldönümü yakınında piyasaya sürülecekti.
  • Aralık 2012'de Torvalds, i386 işlemcilere yönelik desteği kaldırarak çekirdek karmaşıklığını azaltmaya karar verdi ve 3.7 çekirdek serisini orijinal işlemciyi hala destekleyen son seri haline getirdi . Aynı seri ARM işlemcisi için birleşik destek.
  • 2 Eylül 2013'te yayımlanan 3.11 sürümü , geçici dosya güvenlik açıklarını azaltmak için yeni O_TMPFILE bayrağı (2), deneysel AMD Radeon dinamik güç yönetimi, düşük gecikmeli ağ yoklaması ve zswap (sıkıştırılmış takas önbelleği) gibi birçok yeni özellik ekler.

Ben de uzun yıllar şimdi de ekleyebilirim ki Linux Vakfı edilmiş raporlama çekirdek gelişimi üzerinde. Bunlar 2012-2013 Çekirdek Gelişiminde Öne Çıkanlar:

  • 536 şirketi (bildiğimiz) temsil eden 3.738 bireysel geliştiriciden neredeyse 92.000 değişiklik kümesi birleştirildi.
  • Ana hatta çok sayıda önemli yeni özellik birleştirildi. Bunlar arasında tam sorunsuz çalışma, kullanıcı ad alanları, ARM için KVM ve Xen sanallaştırma, programlayıcıda varlık başına yük takibi, kullanıcı alanı kontrol noktası / yeniden başlatma, 64 bit ARM mimari desteği, F2FS flash odaklı dosya sistemi, amaçlanan birçok ağ iyileştirmesi bulunur gecikme ve bufferbloat problemlerinde, blok depolama cihazları için hızlı önbellekleme sağlayan iki bağımsız alt sistem ve çok daha fazlası.
  • Android'e özgü çekirdek özellikleri üzerindeki uzun süredir devam eden kavga tamamen arka plana dönüştü. Çok tartışılan "wakelocks" özelliğinin yerini en yeni Android cihazlarda kullanılan farklı bir ana hat çözümü aldı.
  • Geliştirme çekirdeklerindeki hataları bulmak için otomatik araçların kullanımı bu dönemde önemli ölçüde artmıştır. "Üçlü" fuzz test cihazı ve sıfır gün oluşturma ve önyükleme sistemi gibi araçlar, yayın öncesi çekirdeklerde çok sayıda hata buluyor, geliştirme döngüsünü kısaltıyor ve topluluğun daha kaliteli sürümler sunmasını sağlıyor.
  • Mobil ve yerleşik endüstrilerin katkıları artmaya devam ediyor. Örneğin Linaro, Samsung ve TI birlikte bu yazının önceki versiyonundaki değişikliklerin% 4.4'üne katkıda bulundu; 3,10'a kadar olan dönemde, tüm değişikliklerin neredeyse% 11'ine katkıda bulunmuşlardır.
  • Çekirdek projesi, Kadınlar için Sosyal Yardım Programına ilk kez katıldı ve 7 mevcut pozisyon için 41 başvuruya yol açtı. Başvuru işlemi sırasında çekirdeğe 374 düzeltme eki gönderilmiş ve bu düzeltme eklerinin 1 / 3'ünden fazlası 3,10 çekirdek sürümünde kabul edilmiştir. Stajyerlik süreci devam etmektedir, ancak bunun sonuçları gelecekteki çekirdek piyasaya sürülene kadar ortaya çıkmayacaktır.

Dahası, bireysel taahhütlerin ötesinde metriklere sahip olduğumuz için çekirdeğe ne olduğunu ölçmek çok zor değil . Örneğin, 1994'teki 1.0.0 çekirdeğin 176 250 kod satırına sahip olduğunu biliyoruz; 3.10 gibi çağdaş bir çekirdeğin 15 803 499 kod satırına sahip olduğunu biliyoruz. Oldukça fazla. Çekirdek salım sıklığı (3.10 için 63 gün) ve değişim oranı (konuştuğumuzda saatte 9 veya daha fazla komisyon) artmıştır. Linux Vakfı'nı alıntılamak için:

Bu değişim oranını yıllarca devam ettirme yeteneği, daha önceki herhangi bir kamu yazılım projesinde görülmemiş bir durumdur.

Ama bütün bunlar bence çok az fikir veriyor. Bu nedenle şunu sorarım:

  1. Bir asır evrim bu çeyrek özetle edilebilir nitelikli zamanla bu çekirdeği oluşturan tüm listelenmiş özelliklerin doğrusal ek ötesinde?
  2. Ve bu Linux çekirdeğinin ne hakkında olduğu veya nereye gittiği hakkında bir fikir veriyor mu? 25 yıllık gelişimden sonra kesinlikle bu konuda bazı sonuçlar çıkarılabilir mi?

Layman'ın terimleriyle, her şeyi söylemeye başvurmadan her şeyi söyleyen soyut bir cevap arıyorum.


"229 işlem kimliğine kadar destek" bana atladı, bu yüzden bunu googledim ve tek referans, paragrafın orijinal kaynağı gibi görünüyor . Süreç kimlikleri 16 bitlik (yani ~ 16.000) bir aralıkta olduğunu düşünmüştüm ama aslında bundan çok daha fazlası olabilir . Kesinlikle birkaç yüz değil.
goldilocks

3
Bu soru çok geniş çünkü konuyla ilgili Wikipedia makalesini arıyor.
Gilles 'SO- kötü olmayı bırak'

Burada bir makale yazmak istiyor musunuz? Bu iyi, ama ne yapmaya çalıştığınız konusunda spesifik iseniz, tavsiye akıllıca olur. Ben sadece yerel sulama delik sonraki akşam için iyi bir özet hazır değil sanırım;)
goldilocks

1
Bu veya benzeri tezler yazmayı planlayan en az birkaç kişi olduğunu belirsiz bir şekilde hatırlıyorum. Konuyla ilgili akademik literatür bulacağınızdan şüpheleniyorum ... Mevcut yayınlara işaret etmekten başka, sorularınızın cevaplanması için aylarca araştırma gerektirecek gibi görünüyor.
derobert

Sorunuzda, belki de burada iyi bir cevap almak için bize layman'ın şartlarından bahsetmeniz gerekir. Bunun dışında, bunu lkml'ye gönderin ve kronolojinizle ilgili geri bildirimlerini alın. Önemli bir şeyi kaçırdıysanız, sizi bilgilendireceklerdir.
Bananguin

Yanıtlar:


11

Sen sor:

Bir yüzyılın bu çeyreği evrimi, zaman içinde bu çekirdeği oluşturan tüm listelenen özelliklerin doğrusal eklenmesinin ötesinde özetlenebilir mi? Ve bu Linux çekirdeğinin ne hakkında olduğu veya nereye gittiği hakkında bir fikir veriyor mu?

Bu tür soruların iyi tanımlanmış cevapları olduğundan şüpheliyim. Ancak, Linux çekirdeğinin gelişimini sağlayan güçleri anlamak zor değil.

Birincisi, bilgisayarlar giderek daha önemli şeyler. Chomsky, bir yerlerde herhangi bir sanayileşmiş ekonominin merkezi olduğunu belirtir. İşletim sistemi olmadan bilgisayar hiçbir şey değildir, bu da işletim sistemlerini önemli kılar.

80'lerde ve 90'larda bir süre için tescilli işletim sistemleri yükseldi. Bu bir bakıma doğal olmayan bir durumdu. Microsoft'un Windows bir süredir baskındı ve bir anlamda hala öyle, ancak sadece ağ efektlerini kullanarak konumunu korudu.

İnternetin yükselmesiyle birlikte bir topluluk işletim sistemi üretmek mümkün oldu. Bununla birlikte, bu tür bir işletim sistemi, yalnızca mülkiyetine sahip olamadığında yararlı olacaktır. BSD işletim sistemleri ailesi bu kategoride değildi. Bu nedenle, Linux çekirdeğinin mülkiyeti sağlanamayan bir topluluk işletim sisteminin kalbi olarak yükselmesi.

Bir çok büyük bilgisayar satıcısının Linux çekirdeğinin arkasında olduğuna dikkat edin. Neden? Bireyler özgürlüğü önemsiyor. Topluluklar özgürlüğü önemsiyor. Şirketler yalnızca kâr ve ilgili stratejilere önem vermektedir. Birçok bilgisayar şirketinin "metalaştırılmış" bir işletim sistemi, bir "seviye oyun alanı" kavramıyla barış yaptığını düşünüyorum. Bir işletim sistemine sahip olarak Microsoft'un çok para kazanmasına örnek verdiler, ancak herkes Microsoft olamaz ve tek bir tedarikçinin böyle bir güç pozisyonuna sahip olması, en azından sorunlu olduğunu söylemek gerekirse, diğer şirketler açısından haksız avantaj.

Bu yüzden, çoğu şirketin Microsoft olma pozisyonunda olmadığı ve belki de olmak istemediği için bir "emtia" işletim sistemini desteklemeye karar verdiklerini düşünüyorum. Yine, eşit bir oyun alanı. Böylece herkes istediği herhangi bir amaçla bu işletim sistemini kullanabilir ve gruptaki hiç kimse başka kimseye karşı avantajlı değildir. Buna bakmanın bir başka yolu, bir işletim sistemi kadar temel bir şeyin tescilli olması, serbest piyasa ilkelerine ciddi bir müdahale olmasıdır. Genelde şirketler, kazanan tarafta olabilirlerse serbest piyasalar lehine değiller ama eğer olamıyorlarsa öyleler.

Linux çekirdeğinin özelliklerinin çoğu gerçekten bu dinamiklerden çıkarılabilir. Örneğin, Unix benzeri bir işletim sisteminin modüler ve biçimlendirilebilir doğası, "emtia" olarak tasarlanmış bir işletim sistemi için çok uygundur. Ayrıca, kısmen çekirdek projesinin hızlı hareket eden doğası, olması gereken şey olmak için tüm bu kurumsal talepleri karşılamaya çalışmasıdır. Çok sayıda etkinlik donanım desteği / sürücüleri etrafında yoğunlaşmakla birlikte, bu alanın dışında da çok fazla etkinlik vardır; sürekli yeni özellikler geliştirilmesi ve mevcut özelliklerin bakımı ve iyileştirilmesi.

Tabii ki, sıradan insanların kullanması için şirketler tarafından kontrol edilmeyen ücretsiz bir işletim sistemine sahip olmak için, genellikle özgür yazılım topluluğu olarak adlandırılan topluluğun veya bazen FOSS'un (Özgür ve Açık Kaynak Yazılım) isteklerini azaltmamalıyız. Sonuçta, Debian ve Fedora gibi projeler, bu değerlere inanan gönüllüler tarafından yürütülmektedir. Ancak, şirketlerin oynadığı rolün de hafife alınmaması gerektiğini düşünüyorum.


1
+1 Linux'u GNU ile birlikte ana akımda şaşkına çeviren sosyo-politik güçler konusunu gündeme getirmek için. Bence bu, "teknik olmayan bir konu" gibi görünse de, aslında işletim sisteminin gelişimi üzerindeki ellerin tanımlayıcı bir özelliği olan kökenlerin çok önemli bir yönüdür - özellikle Eric S. Raymond'un yazılarına bakın - ve geniş bir yelpazede donanım üreticileri tarafından ve internetin tarihsel olarak baskın platformu olarak
goldilocks

^ Birçok insanın evinde linux çekirdeği olduğunu ve bu nedenle (yönlendiriciniz, DVR kutunuz vb.) Bunu bilmediğini unutmayın
goldilocks

Çekirdeği zamanında yerleştirmek ve hakim olan dinamiklere - bilgi işlemin evrimi; iş başvurusu; piyasa güçleri; internet; hesaplama özgürlüğü; lisans; ve yukarıdakilerin hepsinin bir bütün olarak Linux'a bakışla çekirdekte uygulama üzerinde nasıl bir etkisi olduğu. Bunu, doğru bir şekilde değerlendirmek için tarihsel bir perspektife sahip olamayacağımız "doğal olmayan bir durum" hakkındaki açıklamanızda okumak zorundayım - ve bu önemlidir. Her ne kadar çekirdeğe gerçekten odaklanmış olsam da, yukarıdaki puanlarınız ve yorumlarınız hakkında daha fazla düşüneceğim. Teşekkürler!

1
@goldilocks: Android telefonlarınızdan bahsetmiyorum bile.
slebetman
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.