对于开源我并没有什么太高深的理解,只是这两天的事情给我的一些启发而已。在这里简单的表述一下,首先要明确的第一件事情是开源不代表免费,也不代表你拥有代码的全部处置权。这里我不想对于对待的所有的权利进行说明,也不想讨论权利的问题。只是从开源代码的生命周期来看。
其实自从去年开始处理IDA的各种插件开始,接触到很多非常不错的插件,但是很多的插件都是停留在5.0-5.5的状态,并且很多的插件没有提供源代码。像这种插件就只能任由他死去。而对于另外一些开放源代码的插件则可以通过简单的sdk的修正和一些简单的修复就可以重新编译出来支持IDA Pro 6.x以上的版本。而这一些使得代码能够有更长远的生命,也能够让更多的人用到这个东西。于是在无形中代码就变得更加长命。而由于多年以前代码的托管并不是十分方便,于是很多的代码并没有托管到第三方的开源代码服务器上,只能下载到压缩包。
这些代码虽然历史悠久但是只要通过简单的小手术就可以让这些代码重新焕发青春,有的代码不更新不是因为没有人用,而是因为没有人愿意维护,或者只是为了编译代码自己用。而这些编译代码自己用的人却又不想共享修改之后的代码,于是从网上看到的代码很多的都是好几百年前的代码。
单以IDA的插件为例,很多的插件已经有数年没有更新:
而这些插件有的提供了完整的代码,对于这一部分插件是完全可以重新编译使用的。但是由于管理或者作者放弃维护,很多的代码就变得不再适应现在的情况。而如果把这些代码重新修正,并且以开源项目的形式发布出去,很多的东西还是可以恢复青春的。
就想这周我发布的ida sync插件的开源项目,虽然这个代码已经数年没有重新编译过了,但是在今天我看到的时候发现竟然有四次下载。这也就说明还是有人对这个插件感兴趣的,也就是说我的工作没有白做。当然如果他们能够真正的用到这个插件更好。这个插件的开源项目要感谢Pedram Amini 对于开源的支持,在他的基础之上才有这个开源插件的发布。在邮件沟通的过程中他本人对于我让这份代码重新焕发生机也非常高兴。
在我看来这才是开源的真正意义,让有用的代码服务于有需求的人,延长代码的生命周期。
2 comments
写得那么简,还以为你会长篇大论一下,说说国内环境之类的。对于开源的态度,看得出很真挚,所以也就决定了你的身份,呵呵。
嘿嘿,长篇大论的东西已经很多人写啦。个人的一些想法而已。