Як проект Linux Kernel відслідковував помилки в перші дні?


29

Всі ми знаємо, що Лінус Торвальдс створив Git через проблеми з Біткером. Що не відомо (принаймні мені) - як відстежувались проблеми / квитки / помилки до цього часу? Я спробував, але нічого цікавого не вийшло. Єдиною дискусією, яку я зміг отримати на цю тему, була ця дискусія, де Лінус поділився питаннями щодо використання Bugzilla .

Спекуляція: - Найпростішим способом відстежити помилок на початковій фазі було б помістити квитки у власну гілку, але я впевнений, що досить швидко це не змінилося б із шумом, сприймаючи добрі помилки.

Я бачив і використовував Bugzilla, і якщо тільки ви не знаєте правильних "ключових слів", час від часу вас би натикали. Примітка: Я спеціально зацікавлені в перші роки (1991-1995) , як вони використовуються для відстеження проблем.

Я переглянув дві нитки, « сагу SCM про Kernel » та « Trivia: Коли git self-host? », Але жоден із них не згадував про відстеження помилок ядра в перші дні.

Я здійснив обшук і не зміг знайти жодного програмного забезпечення для відстеження помилок FOSS, яке було там у 1991-1992 роках. Bugzilla, Request-tracker та інші з’явилися набагато пізніше, тож вони, схоже, вийшли.

Основні питання

  1. Як тоді Лінус, обслуговуючі підсистеми та користувачі повідомляли про помилки в ті дні?
  2. Чи використовували вони якесь програмне забезпечення для відстеження помилок, робили гілку помилок і вручну здійснювали питання та дискусії щодо помилки в ній (було б дорого та болісно це зробити) чи просто використовували електронну пошту.
  3. Значно пізніше з'явилася програма Bugzilla (перший реліз 1998 р.), І, здається, це основний спосіб повідомляти про помилки після цього .

З нетерпінням чекаю більш чіткого уявлення про те, як це робилося в старі часи.


2
Я можу сказати, як це обробляється до сьогодні для самої розробки git - я припускаю, що це схоже на те, як це робиться для ядра Linux: Вони не використовують жодного програмного забезпечення для відстеження помилок: Про помилки повідомляють та обговорюють про розробку список адресатів. Це, можливо, дивно, але працює дуже добре. Пропозиція щодо використання програмного забезпечення для відстеження помилок виникає часто, тому ви можете дізнатися багато про це, шукаючи архіви списків git. (Дайте мені знати, коли він відкриється, тому я можу дати відповідь)
Волкер Зігель,

1
@VolkerSiegel Це було відновлено. Хоча я не бачу, як відповідь про git перетворюється на відповідь про ядро ​​Linux.
Faheem Mitha

Цей документ про подання виправлень, автором якого є Енді Клін, напевно, дає вам найбільше уявлення про те, про що Ви питаєте Лінуса: halobates.de/on-submitting-kernel-patches.pdf
slm

1
У цьому документі описано, як тепер можна слідкувати за розробкою ядра за допомогою git: landley.net/writing/git-bisect-howto.html
slm

З того, що я виявив у минулому, коли я це досліджував, немає жодних відслідковувачів помилок / трекерів, що видають проблеми. Зазвичай вони робляться дистрибутивами, велика помилка для РЗ. Патчі та їх програми - це те, як вони орієнтуються на відстеження змін. Цей інструмент PatchWork показує вам це: linux-mips.org/wiki/Patchwork . Ви можете побачити його в прямому ефірі тут: patchwork.linux-mips.org/project/linux-mips/list . Це такі типи інструментів + ​​списки розсилки.
slm

Відповіді:


20

На початку, якщо у вас було щось внести свій внесок (виправлення або повідомлення про помилку), ви надіслали це посиланням Лінусу. Це перетворилося на надсилання його до списку (який linux-kernel@vger.rutgers.eduраніше kernel.orgбув створений).

Не було контролю за версіями. Час від часу Лінус ставив тарбол на FTP-сервер. Це було еквівалентом "тегу". Доступними інструментами на початку були RCS та CVS, і Лінус їх ненавидить, тому всі лише відправляють патчі. (Є пояснення від Лінуса про те, чому він не хотів використовувати CVS.)

Були й інші власні системи керування версіями до біткера, але децентралізована розробка Linux, заснована на добровольчих роботах, унеможливила їх використання. Випадкова людина, яка щойно знайшла помилку, ніколи не надішле патч, якщо йому доведеться пройти власну систему контролю версій, а ліцензії починаються з тисяч доларів.

Біткер обминув обидві ці проблеми: він не був централізований, як CVS, і, хоча це не було безкоштовне програмне забезпечення, учасники ядер дозволяли ним користуватися без оплати. Це зробило це досить добре на деякий час.

Навіть при сучасній розробці на основі git, списки розсилки все ще є дією. Коли ви хочете щось внести, ви підготуєте це з git, звичайно, але вам доведеться обговорити це у відповідному списку розсилки, перш ніж воно злиється. Bugzilla є для того, щоб виглядати "професіоналом" і набирати наполовину запечені повідомлення про помилки у людей, які не дуже хочуть вступати в них.

Щоб побачити деякі старі інструкції щодо звітування про помилки, знайдіть історичний сховище Linux . (Це сховище git, що містить усі версії до існування git; здебільшого воно містить один коміт на випуск, оскільки він був реконструйований з тарболів). Файли цікавих об'єктів README, MAINTAINERSі REPORTING-BUGS.

Одна з цікавих речей, яку ви можете там знайти, - це це з Linux-0.99.12 README:

 - 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

Процеси використовували групи новин (USENET) та (переважно) електронну пошту. Помилка "існувала" як нитка, введення " [BUG REPORT]" або " LINUX BUG REPORT" в тему було звичайною умовою. Ідентифікаторів помилок не було. Зважаючи на типову базу користувачів, звіт про помилки часто надходив із виправленням. Був використаний один давно забутий програмний інструмент: ibug(див. Нижче), крім цього diff+ patch.

З установки та початку роботи Linux (січень 1994 р., Архівізована копія v2.0) >

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 рік

Ось звіт про помилку та виправлення з грудня 1992 року (0.98.6) на comp.os.linux: https://groups.google.com/d/topic/comp.os.linux/TwPA00rZMJo/discussion

Дуже рано з’явився список електронних листів ml-linux-bugs (1992/1993), з цього раннього FAQ у дистрибутиві Slackware 1.01:

VI.01) Здається, що $ # @! Порт на Linux не працює належним чином, що мені робити з повідомленнями про помилки?

[...] Зауважте, що мій список звітів про помилки "ml-linux-bugs@dg-rtp.dg.com" припинено. Виявляється, у Linux так мало помилок, більшість з яких вирішуються на групі новин або через Linus, перш ніж я зможу їх накопичити та розмістити. :) Коротше кажучи: якщо є помилка в Linux або в Linux-портативному програмному забезпеченні, вона, як правило, буде виправлена ​​в наступному патч-рівні або версії.

Був список електронних листів "linux-kernel" (який працював на оригіналі vger), групи новин alt.os.linux, потім comp.os.linux (який швидко розпався на ієрархію в 1993 році ).

Цей ранній FAQ щодо Linux (v1.11 листопада 1992 р.) Від comp.os.linux також пропонує безпосередньо надіслати електронний лист Linus.

У 1992 році Метт Уельш ( запуск Linux , Linux Bible , TLDP ) оголосивibug про допомогу в створенні звітів про помилки, надіслані електронною поштою (за іронією долі, ви не могли запускати це в Linux на той час, оскільки у нього бракувало достатньої кількості мереж, щоб можна було надіслати електронний лист).

Шаблон звіту про помилкуlinux.temp електронної пошти також періодично публікувався на comp.os.linux, і оновлення до звіту про помилки мали шаблон оновленняlinux.fix.temp .

Було також сховище патчів (FTP) , наскільки я можу сказати, це було здебільшого (не виключно) для патчів програм для перенесення до Linux.

1993-1994

Копії CVS джерела ядра були поширеними, найдавніший, який я можу знайти, - це Дірк Штейнберг, з епохи kernel-0.99.14. Перша заява я можу знайти з кінця січня 1993 року на Linux-активістів. Ви все ще можете знайти архівні копії (1994) . Дірк також підтримував резюме бінарних файлів та джерела libc у CVS.

CVS не використовувався для відстеження помилок у сучасному розумінні, деякі розробники вважали за краще використовувати його, а патчі часто надсилалися у вигляді створених відеофайлів.

1995-1996

Приблизно в цей час (жовтень 1995 р.) Девід С. Міллер почав використовувати CVS для порту SPARC ядра Linux ( порт Linux / SPARC ). До лютого 1996 р. Декілька інших розробників ядер незалежно використовували CVS для відстеження виправлень, з linux-ядра ця нитка та нитка : Алан Кокс, Стівен Твіді, Кай Хеннінгсен. (Другий потік повідомляє Расса Нельсона, заявляючи про неприязнь Лінуса з перших рук до CVS.)

1997-1998

У квітні 1998 року, незабаром після народження другої дитини Лінуса, питання CVS знову з'явилося, з Linux-ядра дивіться цей підряд (Лінус знову підтверджує свою стурбованість щодо CVS там).

У грудні 1997 року Ендрю Тріджелл випустив jitterbug , веб-трекер помилок. До червня 1998 р. Алан Кокс "linux-патчі" JitterBug підтримував Linux-ядро . Наскільки я можу сказати, перша фактична система відстеження помилок, яку використовували Лінус та інші ключові розробники, на жаль, екземпляр "linux-patches" вже не в мережі.

У вересні 1998 року Биткер вперше просувається Ларрі МакЕвой на linux-ядрі .

1999 р. І пізніше

До 1999/2000 рр. Lkml FAQ почав посилатися (Q 1-16) на дерево CVS на (оригінальному) vger. Це підтримував у той час Ендрю Тріджелл.

До грудня 2001 року Джиттербуг прийшов у немилість, дивіться цю нитку Linux-ядра , Лінус, Алан Кокс та багато інших беруть участь у обговоренні того, чому.

До січня 2002 року Лінус почав цікавитися бітмером (який вже використовується командою ядра PowerPC Linux).

У лютому 2002 року Лінус почав використовувати Bitkeeper для дерева розвитку 2,5.

У листопаді 2002 р OSDL брав Linux Bugzilla для 2,5 дерево було оголошено . (Якщо ви ще не читали посилання на помилку у питанні, перейдіть і прочитайте його зараз, воно містить старовинні тиражі Linus).

У квітні 2005 року Лінус оголосив про відхід від BitKeeper , приблизно в той час, коли його вперше згадували gitпо імені . Незабаром після того, як git став здатний до самостійного хостингу , Лінус перестав використовувати BitKeeper і почав використовувати git для ядра.

У грудні 2008 року було оголошено патч-трекер Patchwork для Linux-ядра , це SCCS-агностичний веб-трекер-патч, який інтегрується зі списками розсилки для відстеження виправлень та подальших дій. Його використання триває і донині, на сайті https://patchwork.kernel.org/ відслідковується приблизно 40 списків , хоча не всі вони активні.

Список літератури

Корисні посилання:


1
@ mr-spuratic дякую, що поділилися цим.
shirish

1
Цікаве дослідження з багатьма захоплюючими документами! +1

2
+1 перемагає мою відповідь за розуміння справді ранніх часів. Я ніколи про це не знав dg.com. Був Даний генерал, зараз Долар Генерал. Вигляд сумний, але і такий собі веселий.

Гарна відповідь. Існують також деякі пов'язані дискусії у книзі Кодекс повстанців: Linux та відкрита революція .
Faheem Mitha

4

Я можу сказати, як обробляється повідомлення про помилки для розвитку самої gitсебе.

Вони не використовують жодного програмного забезпечення для відстеження помилок. Про помилки повідомляється та обговорюється в розсилці розробки . Це, можливо, дивно, але працює дуже добре.

Питання чи пропозиція щодо використання програмного забезпечення для відстеження помилок виникає часто, тому ви можете дізнатися багато про це, шукаючи архіви списків розсилки git.

Справа не в тому, що "ми ще не знайшли помилку, яка є достатньо хорошою";
Але справа також не в тому, що "у нас є чудовий метод".

За допомогою цього методу підтримка проекту чи підпроекту - щось на зразок провідного розробника - відіграє важливу роль як неформального модератора списку розробок.
Поводження з помилками є його частиною, і це не здається тривіальним завданням керувати помилками таким чином; Це, безумовно, залежить від навичок людей у ​​цій ролі.

Найбільш формальною частиною методу є щотижневе підсумкове повідомлення про стан.
У ньому перераховані речі, які зараз відбуваються на різних галузях, як короткі елементи. Для прикладу з розробки git дивіться це у групі новин, що gmane.comp.version-control.gitвідображає список розсилки: Що готується в git.git

Що я можу сказати точно: Якщо у вас є обслуговуючий персонал, який добре в цьому працює, це працює дуже добре.
Наприклад, я був би дуже здивований, якби впровадження трекера помилок позитивно вплинуло на продуктивність на реалізовані функції та якість навіть у довгостроковій перспективі після амортизації накладних витрат.


Для ядра Linux це схоже на те, як це робиться для git, і до сьогодні.
Списки розсилки для розробки ядра Linux, безумовно, важливі. Але це не один список як центральне місце, як це стосується git. Існують окремі списки для підтемати, наприклад, файлові системи чи мережі.
Оскільки є окремі теми, якими керуються переважно окремі розробники, можливо, деякі групи використовують інструменти локально для своєї групи.


Я не збираюсь робити це DV, але такий тип відповідей, IMO, це так, для Q цього типу, який несе тег історії, він повинен бути набагато більш істотним, ніж просто промальовування. Подивіться, чи можете ви включити в нього будь-який із ресурсів / посилань, які я розмістив у верхній частині. Я не можу не допомогти цим зусиллям сьогодні, але, можливо, буде якийсь час пізніше сьогодні і сьогодні. Інші повинні почувати себе заохоченими відредагувати цей A і зробити його CW A навіть таким чином, щоб він повністю фіксував, як вони / зробили це, розробляючи ядро!
slm

@slm Я згоден - хоча я щасливий, що він знову відкрився і має часткову відповідь, це питання заслуговує кращої відповіді, включаючи деталі та висвітлення історії - просто я не знаю деталей, як це робиться для ядро безпосередньо, це було б усіма міркуваннями.
Волкер Зігель

1
Якщо хтось має підключення до сервісних центрів ядра, які роблять це тривалий час, це Q, щоб використовувати одне з цих з'єднань. Mattdm працює над проектом Fedora і є найближчим, про який я знаю.
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.