麒麟操作系统内核同其他操作系统内核的相似性分析(4)
-
85.57%
5.03%
10.72%
10.63%
10.29%
10.44%
4.06%
kylin_2.0.21_lsb
1,120,079
31.92%
41.94%
14.55%
100.00%
91.06%
91.06%
-
5.38%
10.83%
10.31%
10.20%
10.35%
4.35%
linux_2.6.16
666,204
9.47%
9.71%
13.13%
5.38%
5.38%
5.39%
5.38%
-
11.89%
12.09%
12.21%
12.07%
6.30%
netbsd_2.1
1,503,585
6.49%
7.42%
13.68%
8.06%
8.18%
7.97%
8.06%
5.20%
-
53.35%
17.53%
16.72%
4.10%
netbsd_3.0
1,616,659
6.19%
7.11%
12.65%
7.54%
7.90%
7.89%
7.54%
4.98%
24.40%
-
13.96%
14.61%
3.73%
openbsd_3.7
1,228,137
7.95%
9.58%
16.54%
9.27%
9.97%
9.71%
9.27%
6.43%
20.77%
18.44%
-
88.89%
5.20%
openbsd_3.8
1,260,707
7.72%
8.84%
16.52%
8.88%
9.53%
9.52%
8.88%
6.29%
20.65%
18.47%
84.56%
-
5.00%
OpenSolaris_5.11
396,534
11.87%
12.00%
16.84%
12.50%
12.46%
12.46%
12.50%
13.37%
15.90%
15.82%
16.66%
16.49%
-
从数据表中反映出来的血亲关系来看,Kylin 2.0的内核和FreeBSD 5.x的血亲关系最近,在30.43%-48.18%之间,和FreeBSD 6.0的关系稍远,在14.55%-24.61%之间。而和其他的操作系统关系都比较疏远。和NetBSD、OpenBSD的相似度在10%左右,而同Linux的相似度只有5.38%,
与OpenSolaris的相似度虽然比NetBSD和OpenBSD还高,达到了12.50%,但是这个绝对数值不应该视为OpenSolaris与麒麟的关系更接近。因为,OpenSolaris的代码行数仅有396,534行,仅相当于NetBSD的1/4。在相似度计算公式中,分母较小,容易致使结果的相似度较大,因此不应该说麒麟内核和Solaris更相似,应该说麒麟内核同Solaris,NetBSD和OpenBSD的相似度相当。
另外,我们可以注意到OpenSolaris和FreeBSD 6, NetBSD, OpenBSD的相似度略高于其他系统内核,但是都比较低。我们从这个不大的差异中可以感觉到Solaris同BSD的或近或远的关系。其实虽然Solaris代码已经不是基于BSD构建的Unix了,但是由于SVR4中也吸收了BSD的部分代码,因此Solaris在相似度上,还是客观的体现了和BSD偏近的关系。
从数据中我们还可以看到麒麟的这几个内核的相似度很高。Kylin 2.0.0和Kylin 2.0.21 lsb的相似度是100%,Kylin 2.0.14和2.0.21的相似度也是接近100.00%。其中的具体差异行数如下:
原始内核\目标内核
汇编行数
kylin_2.0.0
kylin_2.0.14
kylin_2.0.21
kylin_2.0.21_lsb
kylin_2.0.0
1,120,079
-
170,553
170,641
0
kylin_2.0.14
1,190,443
101,029
-
145
101,029
kylin_2.0.21
1,190,562
101,328
26
-
101,328
kylin_2.0.21_lsb
1,120,079
0
170,553
170,641
-
我们可以看出其实光盘引导用的内核同安装后的/boot/kernel_lsb/ 目录下的内核是相同的。而Kylin 2.0.21和2.0.14相比仅仅修改了几十行代码而已,变动很小,从数值上看,变动主要是增加了一些代码。而从2.0.0到2.0.14变动稍大一些。
在后面的分析中,我们没必要对很相似的内核一起进行重复分析,因此,将基于Kylin 2.0.0和Kylin 2.0.21这两个麒麟内核进行分析。
从现在的结果我们已经可以看出麒麟和FreeBSD的5.x版本有很近的血亲关系,最高达到了与FreeBSD 5.2的48.18%的相似度,这种相似性甚至已经明显超过了和FreeBSD具有很近的同源关系的NetBSD, OpenBSD。即使是最初基于NetBSD的代码而建立的OpenBSD,在与其渊源极深的NetBSD比较时,最高也不过20.77%的相似度。
至此,我们基本上可以确定麒麟操作系统内核中有大量的FreeBSD 5.x 的源代码。为了进一步确定麒麟操作系统和FreeBSD的相似性到底有多少,我们接下来将针对Kylin内核和FreeBSD的内核作比较。
2.2.4 Kylin与FreeBSD各个版本间的内核相似度分析
这次我们针对Kylin和FreeBSD这两个操作系统的内核进行相似度的比对。参与比对的将包括Kylin的2个典型内核和FreeBSD 5.x全系列内核,具体是Kylin 2.0.0, Kylin 2.0.21, FreeBSD 5.0, FreeBSD 5.1, FreeBSD 5.2, FreeBSD 5.2.1, FreeBSD 5.3, FreeBSD 5.4, FreeBSD 5.5 beta4。
原始内核\目标内核