麒麟linux系统提供源代码吗?

一.导言

麒麟操作系统是由国防科技大学、中软公司、联想公司、浪潮公司、国星公司联合开发的服务器操作系统。按照麒麟官方的说法:

“麒麟服务器操作系统是国家863计划的重大研究成果。它拥有完全独立的版权内核,在应用上与Linux二进制兼容,支持64位。是中国自主研发的服务器操作系统,具有完全自主知识产权。”

[1]-来自麒麟官网和863计划官网。

[2]_ 105/industr/industr _ news/l

“银河麒麟操作系统是针对未来主流网络服务和高性能计算服务的需求。它参考了主流的国际标准,Darwin、FreeBSD、Linux等商业操作系统,并借鉴了UNIX操作系统和微内核操作系统的设计思想。设计并实现一个具有自主版权的中文服务器操作系统,能够支持多种CPU芯片和计算机架构,具有高性能、高可用性和高安全性,并兼容Linux应用程序和设备驱动程序。”——摘自麒麟操作系统2.0.21包含的帮助文档。

最近很多人质疑麒麟操作系统的两个核心问题,即“完全自主版权”和“中国自主研发成功”。随着麒麟2.0.14和2.0.21系统可以在麒麟官网()下载,这种质疑的声音越来越大。除了内核,麒麟的大部分应用都来自GNU的代码,不是中国自主研发的,它们的版权不属于麒麟操作系统的开发者。更有甚者,有人开始拆解麒麟操作系统的内核,发现它和美国的FreeBSD开源操作系统非常相似。然后有人用FreeBSD的内核成功启动了麒麟操作系统。根据麒麟官方的介绍,麒麟具有Linux的二进制兼容性,但完全没有提到与FreeBSD的兼容性,这让麒麟内核与FreeBSD的关系更加引人注目。官方介绍中简单的一个“参考”是无法解释这种相似性的。

在强烈的关注中,麒麟开发者于2006年2月16日给出了一个说明,关于银河麒麟操作系统的说明[3],发表于。它提到了与FreeBSD的关系:

“通过评估分析,课题组认为当时正在开发的FreeBSD 5.0比Unix SVR4.2有更好的发展势头,尤其是SMPng项目的开发,为FreeBSD 5.0支持SMP对称多处理器系统奠定了良好的基础,因此将银河麒麟操作系统的系统服务层从SVR4.2升级到了当时正在开发的FreeBSD 5.0。”

声明发出后,大家都有一定程度的理解。不过虽然提到了和FreeBSD的关系,但是很隐晦。没有明确承认官网新闻中报道的失实,没有明确说明麒麟的操作系统是否拥有“完全的知识产权”以及是否“由中国自主研发”,甚至没有在官方页面对事实报道进行更正。而且由于用的是FreeBSD 5.0的代码,所以只限于系统服务层,比例完全不提。这还是让人对这个得到了863计划软件重大项目资助的操作系统到底有多少创新产生了很大的疑问。

为了考察麒麟操作系统内核自主创新的百分比以及与其他操作系统的关系,我分析了麒麟操作系统内核与FreeBSD、NetBSD、OpenBSD、Linux、Solaris的可执行代码的相似性。

在整个过程中,我会尽量保持客观原则进行分析。因为麒麟操作系统是一个封闭的源代码系统,所以我只会在无法获取内核源代码的情况下,分析二进制可执行代码文件的相似度。由于可执行代码受编译环境、内存分布、模块变化的影响很大,所以即使使用同一套代码,相似度也会很低。但是对于操作系统内核这样的大型软件系统,不会因为代码不同而出现高度相似的情况。所以我们把二进制可执行代码的这种分析得到的相似度作为相似度的下限。换句话说,真实的相似度应该高于这个分析的结果,但由于分析方法的限制,无法得出上限。

二、可执行文件的相似性比较

二进制可执行文件的相似性分析一直是个难题。众所周知,即使是相同的源代码,使用相同的编译器,可以用不同的编译参数编译,代码也会产生很大的差异。当有人盗用别人的源代码时,如果两者的源代码无法比较,就很难判断是否抄袭。所以,一直以来,或多或少,总会有人毫无顾忌的在自己的软件中加入开源软件,或者干脆在那些源代码的基础上,通过稍微修改和替换版权信息,宣称自己开发的。因为他们知道只要自己的源代码不公开,抄袭就很难判断。