麒麟操作系统内核同其他操作系统内核的相似性分析(3)
16.78%
16.74%
freebsd_6.0
1,271,723
32.13%
-
16.65%
16.22%
15.89%
16.24%
netbsd_2.1
1,503,585
13.08%
13.68%
-
53.35%
17.53%
16.72%
netbsd_3.0
1,616,659
11.76%
12.65%
24.40%
-
13.96%
14.61%
openbsd_3.7
1,228,137
15.60%
16.54%
20.77%
18.44%
-
88.89%
openbsd_3.8
1,260,707
15.26%
16.52%
20.65%
18.47%
84.56%
-
从这个数据表中,我们可以看出计算出来的数据可以反映这种已知的血亲关系。FreeBSD 与NetBSD和OpenBSD的相似度基本在16.5%左右,而NetBSD与OpenBSD的相似度则相对较高。NetBSD 2.1和OpenBSD的相似度为20.65% ~ 20.77%,NetBSD 3.0和OpenBSD的相似度也有18.44%,都高于FreeBSD与NetBSD和OpenBSD的相似度。虽然数值差别并不大,但是具有规律性,基本上也是客观地反映了真实的情况的。
2.2.3 Kylin与FreeBSD, OpenBSD, NetBSD, Linux, Solaris的内核相似度分析
现在我们开始对银河麒麟操作系统进行相似度比对。参与比对的开放源代码操作系统内核有FreeBSD 5.0, FreeBSD 5.2, FreeBSD 6.0, NetBSD 2.1, NetBSD 3.0, OpenBSD 3.7, OpenBSD 3.8, Linux 2.6.16, OpenSolaris 5.11,共9个内核。
除了刚才介绍过的FreeBSD, NetBSD和OpenBSD外,还增加了Linux和Solaris。Linux是Linus基本上从零起步写出来的操作系统,虽然参考了Minix和Unix的实现,但是基本上没有大量的使用任何其它Unix发布的代码[12]。因此,虽然Linux也是一个类Unix系统,然而由于是独立开发的,所以它和前面所列出的BSD衍生操作系统和后面将要提到的Solaris的血亲关系比较远。
从历史的角度来讲,Solaris和BSD很有渊源。在80年代,Sun基于BSD Unix发布了自己版本的UNIX,SunOS。而在90年代初,由于受到AT&T与BSD的官司影响,Sun将其SunOS 4替换为与AT&T共同开发的UNIX System V Release 4的一个版本,并更名为Solaris 2[13]。在2004年早期,Sun开始了一项计划,名为OpenSolaris,将Solaris逐步的放到开放源代码社区中。并在2005年的6月中旬开放了大部分的Solaris源代码[14]。现在已经有一些基于OpenSolaris源代码的操作系统,这次采用的就是一个名为Belenix的Live CD发布版本0.4.2种的内核,uname显示的是SunOS 5.11。
此次引入Solaris来进行比对,也是从一方面希望能够从分析数据中客观地反映出Solaris,相比Linux而言,和BSD有更近的血亲关系。
关于参与比对的麒麟操作系统内核,我们将从发布版本中获得的四个版本的内核拿来进行比对,Kylin 2.0.0, Kylin 2.0.14, Kylin 2.0.21, Kylin 2.0.21 lsb。需要说明的是,官方网站上发布了2.0.14和2.0.18。其中Kylin 2.0.0是来自于麒麟系统安装盘的引导部分,通过uname –a显示出的版本是2.0.0。Kylin 2.0.21虽然是官方网站给出的光盘镜像的版本号,可是启动后,通过uname –a得到的版本号却是2.0.18,这点可能是麒麟开发组在版本管理上的混乱所导致的。
下面就是分析后得到的数据表;
原始内核\目标内核
汇编行数
fb 5.0
fb 5.2
fb 6.0
k 2-0
k 2-14
k 2-21
k 2-21 lsb
l 2.6.16
nb 2.1
nb 3.0
ob 3.7
ob 3.8
os 5.11
freebsd_5.0
913,353
-
36.79%
13.72%
40.53%
30.43%
30.43%
40.53%
6.46%
11.24%
11.37%
10.91%
10.87%
5.02%
freebsd_5.2
1,048,418
32.53%
-
14.00%
48.18%
34.02%
34.02%
48.18%
5.75%
11.02%
10.91%
10.95%
10.94%
4.55%
freebsd_6.0
1,271,723
9.58%
11.24%
-
12.63%
13.19%
13.14%
12.63%
6.61%
16.65%
16.22%
15.89%
16.24%
5.21%
kylin_2.0.0
1,120,079
31.92%
41.94%
14.55%
-
91.06%
91.06%
100.00%
5.38%
10.83%
10.31%
10.20%
10.35%
4.35%
kylin_2.0.14
1,190,443
23.55%
29.98%
24.61%
85.60%
-
100.00%
85.60%
5.04%
10.63%
10.64%
10.30%
10.44%
4.06%
kylin_2.0.21
1,190,562
23.52%
29.95%
21.04%
85.57%
99.99%