什么叫“二元组”?“二元组”其实就是形如(A,L)的二元有序组,其中A,L代表任意的抽象元素。
进入Linux(或开源)世界,一些事情不易说得清楚。为表达更为清楚、准确,我们引入“二元组”的概念,并且做以下规定:
A = Author(作者、或权利人);
L = License(某种自由/开源许可条款)。
假设某程序(源代码文件)的作者是A。作者A为了尽可能地普及该程序(使得许多人都能够使用它),采用一种他自己认为合适的自由/开源许可条款将“二元组”(A,L)写入该程序的“版权注释”中,并且同时声明该“版权注释”不得更改(Alter)或移除(Remove)。至此,该程序就开始在互联网上四处传播,不分国界、不分民族、不分用途、不分语种,......自始至终携带着这个“二元组”(A,L)的版权信息。我们将该程序记为P(A,L)。
根据GPL和开源许可条款(OSI)的明文规定,程序必须允许衍生(或修改),但是,衍生操作也不是随意进行的,必须尊重原始作者A在编写该程序时的初始目标或意愿,努力与其保持一致。在衍生作品中,可以注明修改者的姓名和修改内容以及修改时间,但是,不许“喧宾夺主”,取A而代之(注意:某些开源许可条款甚至还明文要求衍生品必须选用新的版本号或新的程序名称,以示区别)。这就是说,假定衍生品为P‘,那么,它仍然要用P‘(A,L)来表达,原始作者不变。
人们容易理解,发行版D = { P(A, L) },即各种相关程序的集合。当然,在此时我们应当设想,字母P,A和L的右下角均带有各自相应的不同下标。“胡拿主义”的根本错误就在于:故意将D = {P(A, L)}淡化为D = {P(空位,L)},还在前面冠以“国产”美名,到处招摇,还伸手向政府要钱。
按照国际通行惯例,一般地说,某发行版D中的程序P有一半的数量是由本国开发者所开发(该准则比较粗旷),则称为“本国发行版”,否则,只能称其为是某种发行版的版本名称,比如,小狗、小猫等发行版。实际上,Linux发行版不分地区、国界就是这个意思,说什么“北京版”,“上海版”也许能行,只要不是说这是原产地的名称。由此,什么是“假国产Linux”就不言自明了。
Ubuntu奠基人Mark Shuttleworth先生曾经说过,一般而言,搞Linux发行版不容易发财,但是(紧接着,在and连接词之后),他表示,他本人并不认为这是一件坏事情。一个发行版可以传播很广(比如:Ubuntu发行版),凭借发行版本身虽然说发不了什么财,但是,可以从其他相关方面去发大财。中国老百姓缺乏版权保护意识那是由于长期历史原因所造成的,短时间内不可能完全改变、扭转,只能顺其自然,另想他途。全面推广使用自由软件发行版可能就是一种最好的选择。“胡拿主义”以及“拿来”大联盟并不能挽救中国软件业,反而只会严重干扰中国软件产业的健康发展。这就是历史留给我们的经验教训。