西西河

主题:【原创】Linux是什么? -- 请尽量

共:💬23 🌺12 新:
全看树展主题 · 分页 上页
家园 这是个很好的问题。

ragtime说的对,Linux的测试大军就是那些成千上万的的Linux用户。Linus曾经说过,没有任何机构的QA Lab能比得上这些Linux用户的basements和cabinets。他们有着千奇百怪的软硬件组合、还有各种各样你都想不到的用途和使用方式。Open source软件项目的一个原则是“release early, release often”,目的之一就是让用户帮助测试。

另外,Linux不十分在意API的稳定性,特别是内核各个部分之间的接口。这大概也是open source的一个特点吧。People do it for fun.所以大家都追求完美。当然,这并不是说Linus和他的副手热衷于打破向后兼容。恰恰相反,对于和用户程序(user space applications)之间的API,也就是用户程序可见的部分,Linus是非常注意保护的。但是,如果他认为变动带来的收益比付出的代价高,he will go for it for sure.

理论上说,Linux的开发是没有进度表的。什么时候Linus和他的副手们满意了,什么时候他就发布一个新版本。这个新版本可能没有包含你所希望的新功能,甚至还可能会有问题。没关系,下一个版本会很快出来的。如果问题严重,或者你等不及下一个版本,有许多的热心肠的人会发布补丁。

自从2.4版发布后,大部分的the most active contributors每年会在加拿大的Ottawa会面一次,就是所谓的Linux Summit。在这个会上,大家会讨论接下来要干什么,大致怎么干。然后大家基本上就遵循着这个不成文的计划安排自己的部分。IBM、Intel、HP、Oracle、SGI等也会派人参与,并和大家讨论如何让Linux更好地支持自己的软件、硬件。

他们也一直在探求一个最佳的开发模式。比方说,什么时候应该停止增加新功能、什么时候应该branch the code for the next major release。到现在为止,都还没有形成规矩,靠摸索前进。毕竟,他们所做的没有先例可循。公司、机构在软件开发方面积累的经验教训也不太适合。

所幸的是,到目前为止,Linux的开发还是很成功的,没有发生过大的事故,也没有出现很多人曾经担心,部分人曾经预言过的fork。大家求同存异,所有的努力还是拧成一股绳的,继续“紧密团结在以Linus为核心的领导集体周围”。在这方面,Linus功不可没。他的技术能力、管理能力、洞察力、幽默感以及亲和力在Linux Community赢得了一致的认同。(有点象个人崇拜了

家园 飞砖一块,接着!

还请兄台明鉴,小弟对Linux实无偏见,只是就事论事提几个问题而已,莫怪。

说起软件测试,其实应该是一种很有组织性的工作。

即使有成千上万的用户在使用,假如没有一套好的制度把他们组织起来,效果如何,恐怕没有什么保证。

我不否认目前的Linux很稳定,但未来的每一次对内核的修改,假如没有足够有效的测试,都存在很大的风险。

楼下ragtime兄的那句话不敢苟同,编程水平高,责任心强,只能减少臭虫的数目,并不能保证最终产品的质量。

至于项目进度,再商言商,没有进度表,简直无法想象。

家园 有关Linux的测试和开发进度

依靠用户进行测试,当然只是一个方面。很多active contributors也都有自己的test suites。每个人的兴趣不一样,侧重点也就不一样。最后在OSDL,也就是如今Linus挂靠他的“组织关系”的地方,还有专门的队伍负责对Linux内核进行测试。

但是由于操作系统内核的特殊性,无法有效地使用automated unit test等方法,绝大部分的test suites不过是负载测试而已。相当部分的quality assurance依赖于静态代码分析,包括code review。

当然,我同意测试应该是一项高度协调的任务,既要确保覆盖面,又要能够快速重复。如果有人能够协调所有的测试努力,可以更有效的利用所有的资源,得到更好的结果。

或许在这方面,其他open source操作系统如FreeBSD等可以有经验借鉴?

Linux很注重code review。其实Linus和他的副手们的很大一部分精力是花在审查其他contributors送进来的patches(不光是bug fixes,还有new features)。还有一些“外围”的contributors组织了一个活动叫Linux Kernel Janitors (http://janitor.kernelnewbies.org/),任务就是在一些老鸟的带领下,审查Linux的所有代码。

另外,象ragtime所说的,Linux的源代码是公开的,任何人都可以查看。事实上,很多人也正在这么干。例如,Stanford大学一帮人用他们的一个工具对Linux内核进行了分析,发现了不少问题。可惜地是,这个工具没有成为open source的一员(coverity.com)。Linus目前自己在写一个具有类似功能的工具,已经初见成效。

Linux的开发进度是招致了不少批评,这也是Linus和他的副手们正在努力改善的地方。但是在增加新功能和尽快稳定下来以发布新版本之间,程序员们总是倾向于前者,because they are doing it for fun.

如果一个在自己产品中使用Linux的供应商需要某个feature或bug fix,要么自己去做,要么请人来做。Open source makes this possible.

至于说到在商言商,Linux恰恰不是一个商业实体。到目前为止,Linux还是一个volunteer project,虽然商业机构的介入越来越多了。

Commerial offerings的开发进度表又有多少可信度呢?微软的Longhorn一再推迟,成了long wait,feature还越来越少。其他公司的vapourware也是一抓一大把。宣布一个进度表但是无法遵守,又有多大意义呢?

家园 谢谢,非常受教!
家园 应该还是有一个名词叫UNIX KERNEL吧?

在init 零号进程启动之前?载入系统的不就是内核吗?

家园 问题就在于内核的名字不叫UNIX。Linux也好、FreeBSD也好,

各个操作系统的内核是不同的,虽然他们都可能符合UNIX标准。

家园 老兄严格治学的态度很专业。翻翻以前的书,如果讲某种操作系统,

比如IRIX,肯定会说IRIX KERNEL,那么对solaris也一样,或者就简称kernel.但如果跳出具体的某种操作系统名称,泛指unix操作系统的时候,说unix kernel应该是有意义的。

为了验证我的说法,google一下unix kernel,返回6M多个结果,远高于solaris kernel的2M.

家园 当然,如果是泛指,没有问题。就好像你可以说丰田的

Corolla和本田的Civic都使用的是四缸内燃机一样。其实,细细追究起来,两种引擎的差别决定了两种汽车很不相同的动力特性。

全看树展主题 · 分页 上页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河