Linux Çekirdeği projesi Erken Günlerdeki hataları nasıl takip etti?


29

Linke Torvalds'ın Bitkeeper ile ilgili sorunlar nedeniyle Git'i yarattığını hepimiz biliyoruz. Bilinmeyen (en azından benim için), sorunlar / biletler / böcekler o zamana kadar nasıl takip edildi? Denedim ama ilginç bir şey bulamadım. Konuyla ilgili alabildiğim tek tartışma Linus'un Bugzilla'yı kullanma konusundaki endişelerini paylaştığı konu oldu .

Spekülasyon: - İnsanları ilk aşamada böcekleri izlemenin en kolay yolu, biletleri kendi branşına koymak olabilirdi, ancak oldukça hızlı bir şekilde, iyi böceklerin üstesinden gelen gürültüyle ölçeklenmeyeceğinden eminim.

Bugzilla'yı gördüm ve kullandım ve zaman zaman doğru 'anahtar kelimeleri' bilmezseniz güdük olur. NOT: Özellikle onlar nasıl olarak ilk yıllarda (1991-1995) ile ilgilenen kulüpler için kullanılan sorunları izlemek.

" Kernel SCM destan " ve " Trivia: Ne zaman git evsahibi oldu? " Diye iki konuya baktım ancak bunlardan hiçbiri ilk günlerde çekirdeğin hata izlemesinden bahsetmedi.

Etrafı araştırdım ve 1991-1992 yıllarında bulunan herhangi bir FOSS hata izleme yazılımını alamadım. Bugzilla, İstek İzleyici ve diğerleri çok daha sonra geldiler, bu yüzden dışarı çıktılar.

Anahtar sorular

  1. Alt sistem yöneticileri ve kullanıcılar Linus o günlerde hataları nasıl raporlar ve izler?
  2. Bazı hata izleme yazılımları kullandılar mı, bir hata dalı oluşturdular ve eldeki hata ile ilgili sorular ve tartışmalar yaptılar mı (bunun için pahalı ve acı verici olurdu) ya da sadece e-posta kullandılar.
  3. Çok sonra, Bugzilla ortaya çıktı (1998 ilk sürümü) ve bu daha sonra hataları rapor etmenin birincil yolu gibi görünüyor .

Eski günlerde işlerin nasıl yapıldığına dair daha net bir resim olmasını bekliyorum.


2
Git'in gelişimi için bugüne kadar bunun nasıl yapıldığını anlayabiliyorum - Linux çekirdeği için nasıl yapıldığına benzer olduğunu varsayıyorum: Herhangi bir hata takip yazılımı kullanmıyorlar: Hatalar geliştirme hakkında rapor ediliyor ve tartışılıyor mail listesi. Muhtemelen şaşırtıcı, ama çok iyi çalışıyor. Bir hata takip yazılımı kullanmak için soru önerisi sıklıkla gündeme gelir, bu nedenle git listelerinin arşivlerini aramanız hakkında çok şey öğrenebilirsiniz. (Ne zaman açıldığında haberim olsun, bu yüzden cevap verebilirim)
Volker Siegel

1
@VolkerSiegel Şimdi yeniden açıldı. Buna rağmen git ile ilgili bir cevabın Linux çekirdeği ile ilgili bir cevaba nasıl dönüştüğünü göremiyorum.
Faheem Mitha

Andi Kleen tarafından hazırlanan yamaları göndermeyle ilgili bu belge, muhtemelen Linus'a soracağınız
slm

1
Bu belge şimdi git gelişimini kullanarak çekirdeğin gelişimini nasıl takip edebileceğinizi açıklıyor
slm

Bunu araştırdığımda geçmişte bulduğum şeyden, hata izleyici / sorun izleyici yok. Bunlar tipik olarak distrolar tarafından yapılır, bugzilla RH için büyük bir tanedir. Yamalar ve uygulamaları, değişiklikleri nasıl takip ettiklerini gösterir. Bu araç, PatchWork size şunu gösterir: linux-mips.org/wiki/Patchwork . Burada çalışırken canlı olarak görebilirsiniz: patchwork.linux-mips.org/project/linux-mips/list . Bu tür araçlar + posta listeleri.
slm

Yanıtlar:


20

Başlangıçta, katkıda bulunacak bir şeyiniz varsa (bir yama ya da hata raporu), Linus'a gönderdiniz. Bu, listeye (daha linux-kernel@vger.rutgers.eduönce kernel.orgoluşturulmuş olan) postalamada gelişti .

Sürüm kontrolü yoktu. Linus, zaman zaman FTP sunucusuna bir tarball koydu. Bu bir "etiketin" eşdeğeriydi. Başlangıçtaki mevcut araçlar RCS ve CVS idi ve Linus bunlardan nefret ediyordu, bu yüzden herkes yamaları yolladı. ( Linus'tan neden CVS kullanmak istemediğine dair bir açıklama vardır .)

Diğer Bitkeeper öncesi tescilli sürüm kontrol sistemleri vardı, ancak Linux'un merkezi olmayan, gönüllü tabanlı gelişimi onu kullanmayı imkansız hale getirdi. Sadece bir hata bulan rastgele bir kişi, binlerce dolardan başlayan lisanslı tescilli bir sürüm kontrol sisteminden geçmek zorunda kalırsa hiçbir zaman bir yama göndermez.

Bitkeeper bu sorunların her ikisini de çözdü: CVS gibi merkezileştirilmedi ve Özgür Yazılım olmasa da, çekirdek katkıda bulunanların ödemeden kullanmalarına izin verildi. Bu bir süre için yeterince iyi yaptı.

Bugünün git temelli gelişimi ile bile, posta listeleri hala eylemin olduğu yerde. Bir şeye katkıda bulunmak istediğinizde, elbette git ile hazırlanacaksınız, ancak birleştirilmeden önce ilgili posta listesinde tartışmanız gerekecek. Bugzilla orada "profesyonel" bakmak ve olmayan kişilerin yarı pişmiş hata raporları emmesi için ise gerçekten yer almak istiyorum.

Eski hata raporlama talimatlarından bazılarını görmek için, tarihsel Linux havuzunu edinin . (Bu, gitmeden önceki tüm sürümleri içeren bir git deposudur; çoğunlukla, tarball'lardan yeniden oluşturulduğundan, sürüm başına bir taahhüt içerir). İlgi Dosyalar içerir README, MAINTAINERSve REPORTING-BUGS.

Orada bulabileceğiniz ilginç şeylerden biri de bu Linux-0.99.12 README'den:

 - if you have problems that seem to be due to kernel bugs, please mail
   them to me (Linus.Torvalds@Helsinki.FI), and possibly to any other
   relevant mailing-list or to the newsgroup.  The mailing-lists are
   useful especially for SCSI and NETworking problems, as I can't test
   either of those personally anyway.

15

İşlemler haber gruplarını (USENET) ve (çoğunlukla) e-postayı kullandı. Bir iş parçacığı olarak "mevcut" bir hata, konuya " [BUG REPORT]" veya " LINUX BUG REPORT" koymak ortak bir konvansiyondu. Hata kimliği yoktu. Tipik bir kullanıcı tabanı göz önüne alındığında, genellikle bir düzeltme eki ile bir hata raporu geldi. Uzun zamandır unutulan bir yazılım aracı vardı: ibug(aşağıya bakınız), bunun dışında diff+ patch.

Gönderen Linux kurulumu ve Başlarken (Jan 1994, v2.0 arşivlenmiş kopyası) >

2.6  The Design and Philosophy of Linux

 When new users encounter Linux, they often have a few misconceptions and
 false expectations of the system. Linux is a  unique  operating  system,
 and  it is important to understand its philosophy and design in order to
 use it effectively.  Time enough for a soapbox. Even if you are an  aged
 UNIX guru, what follows is probably of interest to you.

     In  commercial UNIX development houses, the entire system is devel-
 oped with a rigorous policy of quality assurance,  source  and  revision
 control systems, documentation, and bug reporting and resolution. [...]

     With  Linux,  you  can  throw  out  the entire concept of organized
 development, source control systems, structured bug reporting,  or  sta-
 tistical  analysis.   Linux  is,  and more than likely always will be, a
 hacker's operating system.(4)

                   [...]  For the most part, the Linux community communi-
 cates via various mailing lists and USENET newsgroups. A number of  con-
 ventions have sprung up around the development effort: for example, any-
 one wishing to have their  code  included  in  the  ``official''  kernel
 should  mail it to Linus Torvalds, which he will test and include in the
 kernel [...]

1992

İşte bir hata raporu ve Aralık 1992'den itibaren (0.98.6) comp.os.linux’de düzeltildi: https://groups.google.com/d/topic/comp.os.linux/TwPA00rZMJo/discussion

Çok erken bir tarihte Slackware 1.01 dağıtımındaki bu SSS bölümünden bir ml-linux-bugs (1992/1993) e - posta listesi vardı :

VI.01) Görünüşe göre $ # @! Linux'a aktarılanlar düzgün çalışmıyorsa, hataları bildirme konusunda ne yapabilirim?

[...] "ml-linux-bugs@dg-rtp.dg.com" hata raporlama listemin iptal edildiğini unutmayın. Anlaşılan, Linux'un birçoğu haber grubu üzerinde veya Linus aracılığıyla çözüp onlardan birisini toplayıp göndermeden önce giderilen çok az böceği olduğu ortaya çıktı. :) Kısacası: Linux'ta veya Linux destekli yazılımda bir hata varsa, genellikle bir sonraki patchlevel veya versiyonda düzeltilecektir.

"Linux-kernel" e-posta listesi (orjinalinde yayınlandı vger), newsgroups alt.os.linux, sonra comp.os.linux ( 1993'te hızlı bir şekilde hiyerarşiye ayrılan ) vardı.

Bu erken Linux SSS (v1.11 Kasım 1992) comp.os.linux’dan, ayrıca Linus’a doğrudan e-posta gönderilmesini de önerir.

1992'de Matt Welsh ( Linux'u Çalıştırmak , Linux İncil , TLDP ) ,ibug e-postayla gönderilen hata raporları oluşturmaya yardımcı olduğunu açıkladı (ironik olarak, bir e-posta göndermek için yeterli ağ bağlantısına sahip olmadığı için o zaman bunu Linux'ta çalıştıramazsınız).

Ayrıca bir e-posta hatası rapor şablonulinux.temp düzenli olarak comp.os.linux adresinde de yayınlandı ve bir hata raporunda yapılan güncellemelerlinux.fix.temp bir güncelleme şablonuna sahipti .

Ayrıca, Linux'a taşıma programları için yamalar için çoğunlukla (sadece değil) olduğunu söyleyebildiğim kadarıyla bir yama havuzu da (FTP) vardı .

1993-1994

Çekirdek kaynağının CVS kopyaları yaygındı, en erken bulabildiğim çekirdek 0.99.14 döneminden Dirk Steinberg. Bulabildiğim ilk duyuru , Ocak 1993’te linux-aktivistlerle ilgili. Arşivlenmiş kopyalarını hala bulabilirsiniz (1994) . Dirk, CVS'de cvs ikili dosyalarını ve libc kaynağını da tuttu.

CVS, hataları modern anlamda takip etmek için kullanılmadı, bazı geliştiriciler kullanmayı tercih etti ve yamalar sık ​​sık üretilen cvs formunda gönderildi.

1995-1996

Bu süre zarfında (Ekim 1995) David S. Miller, Linux çekirdeğinin SPARC portu için ( Linux / SPARC portu ) CVS kullanmaya başladı . Şubat 1996 itibariyle, diğer bazı çekirdek geliştiriciler bağımsız olarak CVS kullanarak yamaları takip etmek için, bu konuyu linux çekirdeğinden ve bu konuyu kullanarak : Alan Cox, Stephen Tweedie, Kai Henningsen. (İkinci konu, Russ Nelson'ın Linus'un CVS'ye karşı tiksinmediğini belirttiğini bildirdi.)

1997-1998

1998 yılının nisan ayında, Linus'un ikinci çocuğunun doğumundan kısa bir süre sonra, CVS sorunu tekrar gündeme geldi, linux-çekirdeğinden bu alt başlığı görün (Linus, orada doğrudan CVS ile ilgili endişelerini yineledi).

Aralık 1997’de Andrew Tridgell , web tabanlı bir hata takipçisi olan jitterbug’u piyasaya sürdü . 1998 yılının Haziran ayına kadar "linux-patch" JitterBug, linux çekirdeğinde Alan Cox tarafından savundu . Bu söyleyebileceğim kadarıyla, Linus ve diğer kilit geliştiriciler tarafından kullanılan ilk gerçek hata izleme sistemi, ne yazık ki "linux-yamalar" örneği artık çevrimiçi değil.

Eylül 1998'de, hançer ilk kez Larry McEvoy tarafından linux-çekirdeğinde terfi ettirilir .

1999 ve sonrası

By 1999/2000 lkml SSS (orijinal) vger üzerinde CVS ağacına atıfta (1-16 Q) başladı. Bu o zaman Andrew Tridgell tarafından yapıldı.

Aralık 2001 itibariyle, Jitterbug, gözden düşmüş bu linux-kernel görseniz iplik Linus Alan Cox ve diğerleri neden tartışmaya yer almak.

Ocak 2002 itibariyle Linus, bekçi ile ilgilenmeye başladı (zaten PowerPC Linux çekirdek ekibi tarafından kullanılıyor).

Şubat 2002'de Linus , 2.5 gelişme ağacı için Bitkeeper'ı kullanmaya başladı .

Kasım 2002'de OSDL'nin 2.5 ağacı için Linux Bugzilla'ya ev sahipliği yaptığı duyuruldu . ( Sorudaki bugzilla bağlantısını henüz okumadıysanız , gidip şimdi okuyun, eski Linus rant'ları içerir).

Nisan 2005'te Linus uzakta BitKeeper gelen bir hareket açıkladı zamanlarda, o ilk sözü gitadıyla . Git'in kendini barındırma yeteneğine kavuşmasından kısa bir süre sonra , Linus BitKeeper'ı kullanmayı bıraktı ve çekirdeği için git'i kullanmaya başladı.

Aralık 2008'de linux-çekirdeği için Patchwork yama izleyicisinin açıklandığı açıklandı , bu, yamaların ve takiplerin izlenmesi için posta listeleriyle bütünleşen SCCS agnostik web tabanlı bir yama izleyicisi. Kullanımı bu güne kadar devam etmekte olup, https://patchwork.kernel.org/ adresinde bu şekilde izlenen yaklaşık 40 liste bulunmaktadır , ancak hepsi aktif değildir.

Referanslar

Yararlı referanslar:


1
@ mr-spuratic bunu paylaştığınız için teşekkür ederiz.
Shirish

1
Çok etkileyici belgelerle ilginç araştırma! +1

2
1 içgörü için benim cevap yener gerçekten erken zamanlarda. Asla bilmiyordum dg.com. Veri Genel oldu, şimdi Dolar Genel. Biraz üzgün, ama aynı zamanda çok komik.

İyi cevap. Asi Kod: Linux ve Açık Kaynak Devrimi adlı kitapta da bazı tartışmalar var .
Faheem Mitha

4

Hata raporlamanın gitkendisinin gelişimi için nasıl işlendiğini söyleyebilirim .

Herhangi bir hata takip yazılımı kullanmazlar. Hatalar, geliştirme e-posta listesinde rapor edilir ve tartışılır . Muhtemelen şaşırtıcı, ama çok iyi çalışıyor.

Bazı hata takip yazılımlarını kullanma sorusu ya da önerisi sıklıkla gündeme gelir, bu nedenle git posta listelerinin arşivlerini aramaktan bu konuda çok şey öğrenebilirsiniz.

Bu, "henüz yeterince iyi bir hata izleyici bulamadık" ile ilgili değil;
Fakat aynı zamanda “üstün bir yöntemimiz var” da değil.

Bu yöntemle, projenin veya alt projenin sağlayıcısı (öncü geliştirici gibi bir şey), geliştirme listesinin gayri resmi yöneticisi olarak önemli bir role sahiptir.
Böcekleri ele almak bunun bir parçasıdır ve bu şekilde böcekleri yönetmek için önemsiz bir görev gibi görünmemektedir; Bu kesinlikle bu roldeki kişilerin becerilerine bağlıdır.

Yöntemin en resmi kısmı haftalık durum özeti mesajıdır.
Çeşitli dallarda şu anda olanları kısa öğeler olarak sıralar. Git gelişiminden bir örnek için gmane.comp.version-control.git, posta listesini yansıtan haber grubundakilere bakın : Git.git'te neler pişirilir

Kesin olarak söyleyebileceğim şey: Bu konuda iyi olan bir bakıcınız varsa, son derece iyi çalışıyor.
Örneğin, bir hata izleyicinin tanıtılmasının, değişim yükünün itfa edilmesinden sonra uzun vadede bile, uygulanan özellikler ve kalite üzerinde pozitif bir etki üretkenliği olması beni çok şaşırttı.


Linux çekirdeği için, bugüne kadar git için nasıl yapıldığına benzer.
Linux çekirdek gelişimi için geliştirme posta listeleri kesinlikle önemlidir. Ancak git ile olduğu kadar merkezi bir yer değil. Alt sistemler için, dosya sistemleri veya ağ gibi ayrı listeler vardır.
Çoğunlukla ayrı geliştiriciler tarafından ele alınan ayrı konular olduğundan, bazı grupların kendi gruplarında yerel olarak araçlar kullanması mümkündür.


Bunu DV'ye göndermeyeceğim, ancak bu tür bir cevap olan IMO, tarih etiketini taşıyan bu tür bir Q için, sadece bir sırlamadan çok daha önemli olmalı. En üste gönderdiğim kaynak / referanslardan herhangi birini dahil edip edemediğinizi görün. Bugün bu çabaya yardım edemem ama bu gece ve yarın biraz zaman alabilir. Diğerleri, bu A'yı düzenlemeye cesaretlendirilmeli ve bunu CW A haline getirmeli, böylece çekirdeği geliştirirken bunu nasıl yaptıklarını / yaptıklarını tam olarak yakalayabilsin!
slm

@slm katılıyorum - şu anda yeniden açıldığı ve kısmi bir cevabı olduğu için mutlu olduğum halde, bu soru ayrıntıları içeren ve geçmişi kapsayan daha iyi bir cevabı hak ediyor - sadece bunun için nasıl yapıldığını bilmiyorum doğrudan çekirdek, hepsi spekülasyon olur.
Volker Siegel

1
Herhangi biri uzun süredir bunu yapan çekirdek koruyucularla bağlantıları varsa, bu bağlantılardan birini kullanmak için Q budur. Mattdm, Fedora projesi üzerinde çalışıyor ve bildiğim en yakın proje.
slm
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.