因为维基百科是开源的,所以我可以修改任何我想要的东西。但如果有人删除,添加不良内容,修改有用内容会发生什么?维基百科为防止这种情况做了什么?
最后一个问题适用于任何其他开源软件:linux,php等。他们如何知道哪些贡献有用,哪些有害? 谢谢。
答案 0 :(得分:6)
开源开发与维基百科并不完全相同。首先,开发人员仍然可以控制他们接受的代码。另一方面,没有什么可以阻止您使用自定义更改创建自己的版本。这样做是为了在上游提交之前对它们进行测试,或者对于应该或不应该进入的内容存在一些分歧。
开源开发人员通常查看,运行和测试他们收到的所有代码,并依靠声誉来确定某人的代码需要多少审查。
Linux内核就是一个很好的例子。我用Con Kolivas的补丁集运行一个内核。这些补丁可能永远不会被接受到主内核中,但是他会在他的网站上保留他的补丁,以防有人想要使用他的修改。这并不像他创造了一个全新的内核,他只需要偶尔更新补丁,这样他们仍然可以工作。
Linus Torvalds在他的Google Tech Talk中介绍了他的Git VCS中的一些想法:
http://www.youtube.com/watch?v=4XpnKHJAok8
特别有趣的是他的“信任网”的概念和他任命负责内核某些部分的人的策略(例如,Alan Cox曾经负责TTY代码,并亲自批准了该部分的所有补丁。代码。)
Eric S. Raymond还撰写了很多关于开源开发的重要资料。他的相关论文列于此处:
http://catb.org/esr/writings/homesteading/
答案 1 :(得分:3)
审核流程
在维基百科的情况下,这是由对等方以ad-hoc方法完成的,但有一些例外。高度有争议的页面将被审核,并且必须批准更改。
同样,当将补丁提交给开源项目时,会进行审核,以确保补丁不会添加新错误或不是恶意错误。当然,审核过程永远不会是完美的,并且可以捕获补丁可能导致的所有可能的错误,但通常会在可观的开源项目中观察到尽职调查。
答案 2 :(得分:2)
有一个经典的例子,说明当攻击者试图向包含允许root访问的后门的Linux内核提交补丁时,开源项目如何阻止恶意代码。有一篇关于未遂袭击的文章here。
警报审核人员注意到可疑更改时发现了。见here。恶意更改在进入官方内核版本之前就已被捕获。
答案 3 :(得分:0)
请参阅优秀的“制作开源软件”一书的code review部分。
归结为拥有版本控制系统(跟踪并在需要时还原更改)并拥有良好的代码审查系统。