Linux Kernel 项目在早期是如何跟踪错误的?

shi*_*ish 30 linux kernel git history

我们都知道 Linus Torvalds 因为 Bitkeeper 的问题创建了 Git。不知道(至少对我而言)是,在那之前如何跟踪问题/故障单/错误?我试过了,但没有得到任何有趣的东西。我能够就该主题进行的唯一讨论是Linus 对使用 Bugzilla 的担忧

推测: - 人们在初始阶段跟踪错误的最简单方法是将票放在自己的分支中,但我确信这不会随着噪音超过好错误而迅速扩展。

我见过并使用过 Bugzilla,除非您有时知道正确的“关键字”,否则您会被难住。注:我在最初几年(1991- 1995年),它们如何特别感兴趣用于跟踪问题。

我确实查看了两个线程,“内核 SCM 传奇”和“琐事:git 何时自托管? ”但是这些都没有提到早期内核的错误跟踪。

我四处搜索,但没有找到 1991-1992 年存在的任何 FOSS 错误跟踪软件。Bugzilla、Request-tracker 和其他工具出现得更晚,所以它们似乎已经过时了。

关键问题

  1. 那时,Linus、子系统维护者和用户是如何报告和跟踪错误的?
  2. 他们是否使用了一些错误跟踪软件,制作了一个错误分支并手动提交了关于其中的错误的问题和讨论(这样做会很昂贵且很痛苦),或者只是使用电子邮件。
  3. 很久以后,Bugzilla 出现了(1998 年首次发布),这似乎是之后报告错误主要方式

期待更清晰地了解过去的事情是如何完成的。

小智 20

一开始,如果您有什么要贡献的(补丁或错误报告),您可以将其邮寄给 Linus。这演变成将其邮寄到列表(linux-kernel@vger.rutgers.edu之前kernel.org已创建)。

没有版本控制。有时,Linus 会在 FTP 服务器上放一个 tarball。这相当于一个“标签”。一开始可用的工具是 RCS 和 CVS,而 Linus 讨厌这些,所以每个人都只是邮寄补丁。(Linus 解释了为什么他不想使用 CVS。)

还有其他 Bitkeeper 之前的专有版本控制系统,但是 Linux 的去中心化、基于志愿者的开发使得它们无法使用。如果必须通过专有版本控制系统(其许可证起价为数千美元),一个刚刚发现错误的随机人员将永远不会发送补丁。

Bitkeeper 解决了这两个问题:它不像 CVS 那样集中,虽然它不是自由软件,但内核贡献者可以不用付费就可以使用它。这让它足够好一段时间了。

即使今天是基于 git 的开发,邮件列表仍然是行动所在。当你想贡献一些东西时,你当然会用 git 准备它,但你必须在合并之前在相关的邮件列表上讨论它。Bugzilla 是为了看起来“专业”,并从那些不想真正参与进来的人那里吸收半生不熟的错误报告。

要查看一些旧的错误报告说明,请获取历史 Linux 存储库。(这是一个 git 存储库,包含 git 存在之前的所有版本;由于它是从 tarball 重建的,因此大多数情况下每个版本都包含一个提交)。感兴趣的文件包括READMEMAINTAINERSREPORTING-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.
Run Code Online (Sandbox Code Playgroud)


mr.*_*tic 15

这些流程使用了新闻组 (USENET) 和(主要是)电子邮件。一个错误“存在”作为一个线程,在主题中放置“ [BUG REPORT]”或“ LINUX BUG REPORT”是一种常见的约定。没有错误 ID。鉴于典型的用户群,错误报告通常带有补丁。使用了一种被遗忘已久的软件工具:(ibug见下文),除了diff+ patch

Linux 安装和入门(1994 年 1 月,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 [...]
Run Code Online (Sandbox Code Playgroud)

1992年

这是 1992 年 12 月 (0.98.6) 在 comp.os.linux 上的错误报告和修复:https ://groups.google.com/d/topic/comp.os.linux/TwPA00rZMJo/discussion

很早就出现了一个邮件列表ML-Linux的错误(1992/1993),从这个早期的常见问题Slackware的1.01分配:

VI.01) 看来 $#@! 在 linux 上移植不能正确运行,我该怎么报告错误?

[...] 请注意,我的“ml-linux-bugs@dg-rtp.dg.com”错误报告列表已被淘汰。事实证明,Linux 的 bug 很少,大部分都在新闻组或通过 Linus 解决,然后我才能积累和发布。:) 简而言之:如果 Linux 或 Linux 移植软件中存在错误,通常会在下一个补丁级别或版本中修复。

有“linux-kernel”电子邮件列表(在原始版本上运行vger)、新闻组 alt.os.linux,然后是 comp.os.linux(在 1993 年迅速分裂为一个层次结构)。

这个来自 comp.os.linux 的早期 Linux 常见问题解答 (v1.11 Nov 1992)也建议直接向 Linus 发送电子邮件。

1992 年,Matt WelshRunning LinuxLinux BibleTLDP宣布ibug协助生成通过电子邮件发送的错误报告(具有讽刺意味的是,当时你无法在 Linux 上运行它,因为它缺乏足够的网络来发送电子邮件)。

电子邮件错误报告模板linux.temp也定期发布在 comp.os.linux 上,错误报告的更新linux.fix.temp有一个更新模板

还有一个补丁存储库 (FTP),据我所知,这主要是(并非专门)用于为移植到 Linux 的程序提供补丁。

1993-1994

内核源代码的 CVS 副本很常见,我能找到的最早的是 Dirk Steinberg 的,来自 kernal-0.99.14 时代。我能找到的第一个公告是 1993 年 1 月在 linux-activists 上发布的。您仍然可以找到存档副本 (1994)。Dirk 还在 CVS 中维护了 cvs 二进制文件和 libc 源代码。

CVS 不是用来跟踪当代意义上的错误,一些开发人员更喜欢使用它,并且补丁经常以 cvs 生成的差异的形式提交。

1995-1996

大约在这个时候(1995 年 10 月),David S. Miller 开始将 CVS 用于 Linux 内核的 SPARC 端口(Linux/SPARC 端口)。到 1996 年 2 月,其他几个内核开发人员独立使用 CVS 来跟踪补丁,来自 linux-kernel这个线程这个线程:Alan Cox、Stephen Tweedie、Kai Henningsen。(第二个帖子报道了 Russ Nelson 陈述了 Linus 对 CVS 的反感。)

1997-1998 年

1998 年 4 月,在 Linus 的第二个孩子出生后不久,CVS 的问题再次出现,从 linux-kernel 看到这个子线程(Linus 在那里直接重申了他对 CVS 的担忧)。

1997 年 12 月,Andrew Tridgell发布了 jitterbug,一个基于 Web 的错误跟踪器。到 1998 年 6 月,Alan Cox 在 linux-kernel提倡“linux-patches”JitterBug 。据我所知,这是 Linus 和其他主要开发人员使用的第一个实际错误跟踪系统,遗憾的是“linux-patches”实例不再在线。

1998 年 9 月,Larry McEvoy首次在 linux-kernel 上推广了 bitkeeper

1999 年及以后

1999/2000 年,lkml FAQ开始提到(Q 1-16)到(原始)vger 上的 CVS 树。这在当时由 Andrew Tridgell 维护。

到 2001 年 12 月,Jitterbug 已经失宠,看到这个 linux-kernel线程,Linus、Alan Cox 和许多其他人参与讨论为什么。

到 2002 年 1 月,Linus 开始对 bitkeeper(已被 PowerPC Linux 内核团队使用)产生兴趣

2002 年 2 月,Linus 开始将 Bitkeeper用于 2.5 开发树。

2002 年 11 月,OSDL宣布为 2.5 树托管 Linux Bugzilla 。(如果您还没有阅读问题中的bugzilla 链接,现在就去阅读,它包含老式的 Linus 咆哮)。

2005 年 4 月,Linus 宣布离开 BitKeeper,大约在他第一次提到git名字的时候。在git 具备自托管能力后不久,Linus 停止使用 BitKeeper 并开始将 git 用于内核。

2008 年 12 月,发布了适用于 linux-kernelPatchwork补丁跟踪器,这是一个与 SCCS 无关的基于 Web 的补丁跟踪器,它与邮件列表集成以跟踪补丁和跟进。它的使用一直持续到今天,在https://patchwork.kernel.org/上大约有 40 个以这种方式跟踪的列表,尽管并非所有列表都处于活动状态。

参考

有用的参考:

  • +1 击败了我对*真正*早期的洞察力的答案。我从来不知道`dg.com`。以前是 Data General,现在是 Dollar General。有点悲伤,也有点搞笑。 (2认同)