在ZDNet 澳大利亚这篇特别报道中,公开源文件共享软件Samba的创立者解释了他怎么开始编写软件,这一软件使他赢得了Bulletin杂志2003年度ICT行业最受欢迎的100人大奖。
在ZDNet 澳大利亚这篇特别报告中,公开源代码共享软件Samba的创立者解释了他怎么开始编写软件,这一软件使他赢得了Bulletin杂志2003年度ICT行业最聪明的100人大奖。
我完成了我的理论物理学专业的学位,建成了一个计算机重力波模拟天文台。这充满了乐趣,(编者注:一些,可能)但我想要一些与我的博士专业不同的东西,所以在一些观察后,我结束了在澳大利亚国立大学(ANU)计算机科学实验室的机械语言识别的学习。
在研究工作中,我常常有新的想法,但从原始的计划出发要走很长的路,所以多年后我不再改变主题,而选择能反应我的研究方向的问题。我不再研究有效的分类及传输数据的途径,转而选择了众所皆知的’rsync alqorithm’的开发。
我发布了这种运算法则可自由执行作为一种开放的源程序叫做rsync.事实上它非常受欢迎,特别是在UNIX社区,这使我非常高兴。
Samba始于软件工程的延迟。那是1991年,我在攻读我的在语音识别领域的博士学位,一个机会来自于beta测试,这个数字工程叫做“Wind-X”(后来改名为Excursion).像许多博士生一样,我非常高兴以我的方式进行研究,所以我签署了beta测试计划,并开始评估Wind-X,这为我提供了展示X-Windows 应用软件从Unix 服务器转换到Windows PCs的能力。
当时我用的是PC-NFS在我的视窗桌面和Sun4服务器间分离文件。如果你在1991年做过任何网络工作,你就很有可能回忆起每个提供商都有他们自己的TCP/IP协议,而非使用单一的操作系统。PC-NFS和Wind-X也不例外,这意味着他们不可能共存,也意味着在检测Wind-X时我不能够在视窗和Sun Unix 服务器之间分享文件。
我注意到Wind-X有它自己的文件分享系统叫做Pathworks,但它不能在Sun服务器上工作,它只能在Digital自身的操作系统上工作(当时是Ultrix 和VMS).我想Pathworks使用的协议不会太难而无法设计出,所以我开始建立与Pathworks和Sun兼容的服务器,以使我可以在评估Wind-X时继续使用Sun服务器。我的工作被严重拖延,这非常糟糕。
我在我的视窗桌面和本地的Ultrix Pathworks服务器之间搜索了很多数据,并开始设计协议。在一个星期的通宵熬夜设计之后,我的粗糙的第一版“基于SunOS的 Pathworks服务器”完成了。在完全没有灵感的时候,我叫它“服务器0.1”。 它真的不是好的编码,当然它也不是非常可靠的,但是最重要的事情是我之后决定将它免费向世界发布.这就是Samba的最初基础.
我第一次听到Linux是1992年11月Dan Shearer给我写信的时候,他问我关于我的免费“Pathworks 服务器”计划,并告诉我Linux讨论小组对我的计划有兴趣。我向他询问Linux,马上被吸引住了。从那后,我成了疯狂的Linux用户和开发者。
当我第一次免费发布“服务器”我没有用GPL.相反,我加了简单的便条写着“用此软件,自己承担风险”。我没有期待谁能用它,所以许可证条件看起来不是很重要。
在我使用Linux后,我注意到它在更为复杂的许可下发布,叫做GNU GPL.刚开始我并不是真正的理解,但是马上我就意识到它对于开发免费软件是多么的好。当我认识到GPL的优越性时,我马上把Samba的许可改成了GPL.如果我当时没有那么做,我几乎可以肯定地说Samba不会取得今天这样的成功。