麒麟操作系统内核同其他操作系统内核的相似性分析(2)

王朝other·作者佚名  2006-04-30
宽屏版  字体: |||超大  

734211

40295

12975

-

358820

freebsd_6.0

1,271,723

791490

805184

905427

907359

753022

766311

622653

-

上表中所列出的是FreeBSD的各个版本之间的差异行数,即前面所说到的c。左边列出的是原始内核,顶端列出的是目的内核。左边给出了原始内核的行数。

差异行数和相似度具有相同的含义,毕竟相似度也是通过差异行数计算出来的,因此在以后的叙述中,我们将只列出相似度对比的表格。

下面就是FreeBSD各个版本之间的内核相似度比较。

原始内核\目的内核

汇编行数

freebsd_5.0

freebsd_5.1

freebsd_5.2

freebsd_5.2.1

freebsd_5.3

freebsd_5.4

freebsd_5.5.b4

freebsd_6.0

freebsd_5.0

913,353

-

28.61%

36.79%

36.65%

21.07%

18.91%

18.67%

13.72%

freebsd_5.1

958,699

27.24%

-

38.18%

38.37%

13.76%

17.92%

15.98%

16.60%

freebsd_5.2

1,048,418

32.53%

33.77%

-

99.80%

32.80%

29.46%

32.09%

14.00%

freebsd_5.2.1

1,049,592

40.04%

33.49%

99.69%

-

32.89%

28.95%

29.13%

14.05%

freebsd_5.3

1,161,593

14.72%

16.87%

29.49%

28.01%

-

98.03%

95.49%

25.31%

freebsd_5.4

1,174,287

14.38%

12.49%

26.92%

26.94%

96.97%

-

98.91%

31.54%

freebsd_5.5.b4

1,187,447

14.46%

14.74%

26.34%

26.56%

94.43%

97.80%

-

76.88%

freebsd_6.0

1,271,723

9.58%

12.07%

11.24%

11.18%

32.13%

32.08%

44.41%

-

由于操作系统是逐步发展而来的,因此从5.0-5.5 beta 4都是在前者的基础上,修补前者中出现的bug,并增添新的特性而产生的。我们可以从这个FreeBSD的相似度表中看到这种传承关系。我们可以看出,基本上是越靠近当前版本相似度越高,而离当前版本越远相似度就越低。其中有一些特例的情况,5.1和5.2似乎比较特殊,可能是由于某种原因在5.1中策略有所调整,而在5.2.1或者5.3中又逐渐的恢复回来。

5.2.1和5.2的相似度达到了99.80%,这是正常的,由于在5.2之后,有一系列关键服务,如wu-ftp, OpenSSH和XFree86等的缓冲区溢出的漏洞被揭露出来,致使FreeBSD出于安全考虑而在5.2发布后仅一个月多的时间就立即发布了新的版本,因此5.2.1和5.2的内核上的差异实际上很低,主要是在外围程序上修补了很多安全漏洞[15]。但是出乎我意料的,我没想到在很容易被干扰而降低相似度的情况下,竟然可以达到这么高的相似度,说明这种分析方法对于代码相似度分析在一般情况下是有效的。究其原因,应该是因为FreeBSD的前后传承关系,所以不同的版本虽然代码有不少变动,但是默认的内核配置文件变动不大,因此才有可能出现这种比较高的相似度。另外我们也可以看出,FreeBSD在5.3以后,包括5.4和5.5的内核变动量都不大,由此可以感觉到5.x的系统可能已经基本成熟。

FreeBSD 6.0与5.3以前版本的相似度都不太高,主要是因为6.0已经是和5.x属于不同的代码分支,相对于5.x来说代码有了较大的变化。而另一方面,6.0的分支是在5.4版本发布后建立的,因此,6.0的内核与之前内核的相似度偏低,却和FreeBSD 5.3, 5.4, 5.5 beta 4的相似度较高。

总体上,基本符合版本相近,代码相近的客观事实,分析方法是成功的。

2.2.2 FreeBSD、NetBSD和OpenBSD的内核相似度分析

NetBSD和FreeBSD一样,也是从美国加州伯克利大学的4.3BSD和386BSD衍生出来的Unix操作系统。它以设计简洁、代码规范和高可移植性的特点而著称。从服务器到嵌入式设备都有它的身影[10]。而OpenBSD则是从NetBSD 1.0衍生而来的[11]。因此OpenBSD和NetBSD相对FreeBSD而言具有更近的血亲关系。

原始内核\目标内核

汇编行数

freebsd_5.3

freebsd_6.0

netbsd_2.1

netbsd_3.0

openbsd_3.7

openbsd_3.8

freebsd_5.3

1,161,593

-

25.31%

16.55%

16.61%

第一页    上一页    第2页/共6页    下一页    最后页
第01页 第02页 第03页 第04页 第05页 第06页 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有