谈 “工具链” 的时候,你为何只谈 “字符工具链”?这种字符工具链,也只能片面地代表一个操作系统,甚至在被 “图形工具链” 稀释以后,完全不能表征一个操作系统了。图形部分才是一个操作系统的主要体现者。大量的应用程序是基于 “图形工具链” (图形内核、图形外壳、图形应用程序编程接口)的。把 GNU 字符工具链与 Linux 字符内核联合起来,只能表征传统意义下的 “操作系统” 概念,不能满足现代操作系统的要求,不能体现时代特征;两者的联合,对于操作系统的鉴别(区分),不具有根本性的意义(从某种程度上也可以说是没有意义的)。难道说,如果有人把 Android 的字符底层弄成 “GNU + Linux 内核”,就可以堂而皇之把 Android “坐实” 为 GNU/Linux 系统了吗?可见,以传统 “字符” 概念来区分现代操作系统,是多么无趣、多么荒谬!
linux 是个内核。但从一开始,linux 就采用了 GNU 的 GPL 协议,并且很自然地与 GNU 的外围工具组合起来,形成当时的字符操作系统。你可以说 Linux 内核弥补了 GNU 操作系统的不足(GNU 自己也有内核,因此不能说是填补空白)。就像婚姻一样,这搭配是天作的一对。那么,这个操作系统的名称应该叫啥呢?它可以叫 “GNU”,也可以叫 Linux,或者也可以叫别的任何一个名字。众多发行版出现以后,上帝已经把这个操作系统的名字确定了,就叫 Linux。起初,Linux 系统也只是字符系统,不含图形。后来有了图形。你不可以把拥有图形的 Linux 系统再换个别的名字,因为这一切都是历史,都是自然形成的,都是经过上帝 “审阅” 和 “认可” 的。什么是上帝?大自然就是上帝。
Linux 作为操作系统,这个名字已经被占用,上帝已认可。就好比,诸葛亮的名字已经占用了,别人起名的时候,你好意思再用这个名字吗?Android 自知不属于上帝早已认可的 “Linux 发行版” 行列,就直接把操作系统起了个新的名字,叫 Android。人家 Android 自己心虚,就不敢说自己是 Linux 发行版,你 Linux 自己慌啥呢?就跟汉城一样,没有人说你汉城是中国的城市,你自己慌啥呢?你不能说,“这个牛叉的富翁 Android 来了,他有可能侵占我 Linux 的名字,我得赶紧改个名字,让让位,以便这位大爷来侵占” ——荒谬吧?
有人说了,我把一个废旧的 Android 手机,变成了一个 Linux 的服务器,我不用图形界面。此时,我的系统是 Linux 吧?既然您都是高手了,我的文章可不是给您看的。您也许已经把手机的系统彻底改造成 GNU 工具链 + Linux 内核,也或者就保持 Android 的字符底层没变。无论哪一种,您爱称呼它是啥,是您自己的事。您乐意说是 Linux,它就是 Linux,您乐意说它是 Android,那它就是 Android。我觉得,前者称为 Linux 较好,后者称为 Android 较好。因为碰巧,这两个都是有名有姓的,就像 “诸葛亮” 之类的名字那样。Linux 本就是经过上帝(和历史)认证过的 GNU 工具链 + Linux 内核。而 Android 的字符工具链部分正好也与 GNU 不同。如果(未来)新的 Android 干脆采用 GNU 工具链 + Linux 内核,那时,您叫它啥名字,已经无关紧要了(既然您完全不涉及图形方面)。我不知道 GPL 3 是否能够阻止 Android 采用 GNU 工具链。我觉得是很难阻止的。因为 Android 的主体是一个运行于 Linux 内核之上的 “应用程序”,地位就跟 Linux 之上的那些工具链是一样的,只不过是可以闭源的(即,授权协议是不同的)。甭管 Linux 内核 + 字符工具链是啥授权协议,一般都不会阻止在它之上运行的闭源商业 “应用程序” 的开发和发行。Android 的图形主体(这是个 “应用程序”),完全可以合法地运行于 GNU 工具链 + Linux 内核 之上。就是说,折腾 Linux 内核以及 GNU 工具链的授权协议,倘若其目的仅仅是不让 Android 采用,我认为这犯了基本的逻辑错误,根本阻止不了,属于瞎折腾。就算能阻止 Android 采用 Linux 内核,也没啥意义。因为字符内核的比重很轻,很容易被别的内核取代。真正关键的部分,是在图形 API 上。