2015 年 1 月 9 日,国家自然科学一等奖授予了计算机科学家、中国工程院院士张尧学及其团队。但这一奖项立刻引发了争议,许多研究者认为这一项目太偏向工程,太过普通,《科学》杂志的官方网站也对此进行了报道。
在接受科技日报采访时,张尧学提供了一个视频链接,展示了基于透明计算的“透明桌面”项目的运行状况。但是,网友很快发现其中一段帮助文本是英文。经搜索发现这段文本来自加拿大软件工程师约丹·约丹诺夫(Iordan Iordanov)的远程桌面客户端 bVNC,这是一个“开源软件”,源代码是公开的。
视频地址:http://v.qq.com/page/h/v/q/h0145ebh1vq.html
视频截图。可以看到叠加在 PPT 界面上的帮助文本是英文:“Direct, Swipe Pan: Swipe to pan around...”
果壳网为此对约丹诺夫进行了专访,他在专访中表示,根据视频可以明确判断出透明桌面肯定使用了他的代码,而且他的代码在其中应该起了很重要的作用。但是,只要项目组愿意将他们的完整成果按照开源软件协议公开源代码,那就不算是违反了软件业的原则——不过,学术领域的原创性就另当别论了。
果壳网:你能简单介绍一下你的项目吗?
约丹诺夫:我的 bVNC 是一个虚拟网络计算(VNC)客户端,它是在远程桌面客户端代码库里的源代码基础上开发的。这个代码库里面还有好几个其他的项目——其中有一个名叫 aRDP 的远程桌面协议(RDP)客户端,一个名叫 aSPICE 的独立计算环境简单协议(SPICE)客户端,还有一个名叫 Opaque 的红帽企业虚拟平台开源版(oVirt/RHEV)客户端。这后两个软件包,可能就是透明桌面项目的基础。
它允许用户连接到远程设备上运行的远程桌面,可以选择使用多种协议。目前支持的协议是 VNC,RDP 和 SPICE 这三种;除此之外,我的客户端还支持 oVirt/RHEV 架构,使用的是一个叫做 libgovirt 的红帽二进制库。而且,它还提供 SSH 隧道功能,提供额外安全性。
一旦连接到了远程桌面,用户就能输入文本或操纵鼠标和远程桌面互动。远程鼠标操纵可以使用多种输入模式,包括直接模式、模拟触控板模式和单手模式,每一种有不同的优缺点,取决于用户喜欢如何使用他们设备的触屏。
果壳网:你的项目的版权状况如何?
约丹诺夫:我使用的授权是 GPLv2 或者 v3,不同子项目版本有差异。这一授权允许别人在满足一定条件的情况下使用我的代码,具体条件可参见 GPL 相关条目。大致说来,这些条件可以部分概括如下:
如果有人在我的项目基础上创作了衍生作品,并且不是留作自己用,而是分发给别人,那他们必须把整个衍生作品的完整源代码也公布出来。而且,对于这些源代码他们只能使用 GPL 授权,不能换成别的授权。
所以,他们的项目也应遵循 GPL,具体什么版本取决于他们用了哪些子项目。bVNC,aRDP 和 aSPICE 的协议是 2 版,而 Opaque 则是 3 版。
关于 GPL 授权的详情,请参见这两个链接:
果壳网:能否断言透明桌面项目组使用了你的代码?
约丹诺夫:是的,十分明显他们把我的软件整合到了他们的项目里,这从屏幕上的可绘制对象——Ctrl, Alt, Shift 等等的位图按钮可以看出来,还有弹出的信息框(关于当前选择的输入模式的信息和分辨率)也能证明这一点。此外,他们所展示的功能,在我的软件里已经实现了。他们的项目的移动端和我的项目非常相似,几乎到了完全等同的地步(bordering on identical to my project)。
不过,我并没有下定论说他们是“盗窃”了这些代码。如果他们试图把源代码改换授权重新发布,或者发布了二进制软件而不同时发布源代码,那么这就算是盗窃,不过他们已经承诺不会这样做了。
(编者注:此处的“承诺”,指的是认证微博账号“透明桌面项目组微博”在新浪微博发布的声明。)
话虽如此,鉴于他们获得了如此巨大的成功,如果他们能联系一下我,允许我参与进他们的项目组,我将十分荣幸——不过这并非我的明确要求。不管怎么说,如果没有我的工作,他们是没办法像现在这样在移动设备上展示他们的工作的。他们在透明桌面项目里展示的移动设备灵活性,大概是整个展示中最重要的一部分,而他们选择在视频的最后表演这一部分,大概是因为它的“哇哦指数”(wow-factor)最高吧。
果壳网:帮助文本也算吗?
约丹诺夫:这取决于帮助文本的授权。我的帮助文本和代码一样,是 GPL 授权的,也受限于以上所述同样的条件。这个例子里,我相信他们遵循授权就可以自由使用我的软件附带的帮助文本。
果壳网:透明计算这个概念新吗?
约丹诺夫:现在透明计算这个想法已经不新了。VMWare(私有软件)和红帽(开源)各自都有一套方案,它们基本上都可以实现这个研究组所展现的内容。红帽的产品名为 oVirt,和我的 Opaque 客户端联合使用,本质上就能达成他们所展示的所有功能。但由于语言因素,我无法准确得知他们研究组到底做出了哪些额外贡献,我非常希望他们能来联系我,甚至是寻求合作,这样让我能做出更大的贡献。
果壳网:如果 GPL 授权被违反了,开源社区会采取行动吗?
约丹诺夫:鉴于透明桌面项目组出来澄清了他们的立场,并明确指出他们打算遵守 GPL 授权,我不认为开源社区会采取什么行动。不过,假如真的有人违反了 GPL,那么一定会面对巨大的舆论谴责,广泛的讨论和声讨,甚至视具体情况有可能对簿公堂。但在这件事里我不认为这些会发生。
果壳网:你觉得他们如果不参考你的代码,能实现这些功能吗?
约丹诺夫:实现任何功能都是有可能的,但代价是巨大的时间和人力。我认为他们的项目组在别人的成果基础上工作并不是什么过错——开源软件本来就是这样的呀!如果他们试图把这个想法当成完全原创的去宣传(对此我表示怀疑),那么这就是学术上的不端行为,但这和 GPL 授权的条款就没有关系了。就这个问题我没法发表评论,主要是因为语言障碍,我不能完全理解整件事情的来龙去脉。
果壳网:他们既然是使用了别人的代码,那有没有什么地方他们做得不好?
约丹诺夫:我注意到的一个奇怪的事情是,他们在移动端演示的输入法都是英文。我希望他们能开发一种输入汉字的办法。如果他们需要,可以来找我谈谈。我倒的确挺喜欢他们把用户有权访问的远程虚拟机展示出来的方式,我很希望这部分贡献也能反过来融合到我的项目里。
果壳网:你的软件有多少用户呢?
约丹诺夫:我们的源代码库上的几个项目在 Google Play、Blackberry World 和 Amazon App Store 上都有下载。如果算上整个市场和所有子项目,那么迄今为止我的软件获得了 250000 次以上的独立下载。
果壳网:你为什么会想到做这个项目呢?
约丹诺夫:有几个因素。
第一当然是迎接技术挑战、得到学习新技术的机会。这些项目和我作为职业程序员的全职工作完全不同,让我有机会能把时间用在全新的有趣的东西上。
第二是为全世界的人提供一项有益的服务。世界已经相互连通,把软件放在 Github 这样的代码网站和 Google Play、Blackberry World 这样的应用市场上,能让它们很容易触及全球范围的用户,并产生影响。
第三是我想创造出能经历时间考验的软件,永远不会消失。对于私有软件,一次公司合并或者一次糟糕的商业决策,就能让它从市场上消失不见;但如果创造出优秀的开源软件,能和最好的私有软件竞争,这样的开源软件就能够永存。这也让年轻的程序员能从软件中学到东西,甚至为软件做出贡献。