5月 202014
 
Copyright (c) 2006  Dancefire (dancefire#gmail).
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
作者:Dancefire (dancefire # gmail dot com ) 2006/04/27
( PDF格式及分析所用脚本程序下载连接:http://www.dancefire.org/file/kernel_similarity_analysis_1.0.zip )
一、引言
麒麟操作系统是由国防科技大学、中软公司、联想公司、浪潮公司和民族恒星公司五家单位合作研制的服务器操作系统。按照麒麟官方的说法:
“Kylin服务器操作系统是国家863计划的重大研究成果,拥有完全自主版权的内核,与Linux在应用上二进制兼容,并支持64位,是中国独立研发成功的、具有完全自主知识产权的服务器操作系统。”[1]
 — 来自麒麟官方网站 http://www.kylin.org.cn/news.htm
“银河麒麟操作系统是针对未来的主流网络服务和高性能计算服务的需求,参照国际主流标准,参考Darwin、FreeBSD、Linux和其它商用操作系统,借鉴UNIX操作系统和微内核操作系统的设计思想,设计并实现具有自主版权的、可支持多种CPU芯片和多种计算机体系结构的、具有高性能、高可用性与高安全性的、并与Linux应用和设备驱动二进制兼容的中文服务器操作系统,”
摘自麒麟操作系统2.0.21内自带的帮助文档
近日,有不少人对麒麟操作系统宣称的“完全自主版权”和“中国独立研发成功”这两个核心问题产生了质疑。随着麒麟2.0.14和2.0.21系统可以通过麒麟的官方网站下载后(http://www.kylin.org.cn/download.htm ),这种质疑的声音越来越大。麒麟除内核以外的应用大部分都来自自由组织GNU的代码,这些代码并不属于“中国独立研发”,而且他们的版权也不属于麒麟操作系统的开发者。更有甚者,有人开始通过反汇编麒麟操作系统内核发现和美国的FreeBSD开放源代码操作系统非常相似。随后又有人成功的用FreeBSD的内核启动了麒麟操作系统。按照麒麟官方的介绍,麒麟具有Linux的二进制兼容的能力,可是丝毫没有提及与FreeBSD的兼容性,使得麒麟内核与FreeBSD的关系变得比较引人注目。在官方介绍中的简简单单的“参考”是无法解释这种相似程度的。
在强烈的关注声中,麒麟开发人员在2006年2月16日,给出了一个说明,《关于银河麒麟操作系统的说明》[3],发布在 http://www.kylin.org.cn/download.htm 。其中提到了和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的内核进行了可执行代码的相似度分析。
在整个过程中,我将尽量保持客观的原则进行分析。由于麒麟操作系统属于封闭源代码系统,因此在无法获得内核源代码的情况下,我将只进行二进制可执行代码文件的相似度分析。由于可执行代码受编译环境、内存分布情况以及模块的变动的影响很大,因此,会产生即使采用同一套代码,却产生很低的相似度情况。但是,对操作系统内核这种大型软件系统来说,却不会因为不同的代码而产生很高的相似度的情况。因此,我们将这次对二进制可执行代码分析所得的相似度作为相似度的下限。换句话说,真实的相似度应该会高于此次分析结果,但是由于分析方法的局限性,无法取得上限。

Continue reading »

11月 272008
 

Linux 最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu 等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于 Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。 Continue reading »

9月 092008
 

cnBeta.com

今天编译了7-stable的代码更新,发觉FreeBSD的版本号变成了7.1- PRERELEASE ,印证了前几天的传闻,Release 7.1 已经进入发布前的准备,7.1应该是7-stable代码产生的分支,7.1将携带更好的驱动和多处理器性能成为奥运后的开源社区的一大亮点!

更令人感兴趣的是kde 4.1.1马上要发布,除了修补了众多kde 4.1.0的臭虫外,在khtml的性能上有所提升,目前freebsd-kde小组正在紧锣密鼓的构建kde 4.1.1的ports,FreeBSD 7.1 Release 是否携kde 4.1.1一起出现很可能成为一个悬念!

4月 172008
 

在安裝有些套件時,如果有相依於 OpenSSL 時,且判斷系統目前使用的 OpenSSL 版本有漏洞問題時,會出現如下的訊息:

Dependency warning: used OpenSSL version contains known vulnerabilities
Please update or define either WITH_OPENSSL_BASE or WITH_OPENSSL_PORT
一般建議的解決方法有二種。

第一種:升級系統(需含系統內建之 OpenSSL 一併升級),再安裝該套件
可以先查詢目前系統所用之 OpenSSL 的版本:

openssl version -v
升級系統可參考 FNP: upgrade core system 或 FNP: upgrade major system。
升級完系統後,再進行一次 OpenSSL 版本之確認。
然後再安裝該套件,這訊息就不會出現了。

第二種:使該套件相依於 ports tree 中的 OpenSSL
這種方法會安裝 ports tree 中新版本的 OpenSSL,然後相依於此新版本的 OpenSSL,而不是系統本身內建的 OpenSSL。只要安裝套件時,加入 WITH_OPENSSL_PORT 的參數,即會安裝 ports tree 中的 OpenSSL,並且該套件也會相依於此。方法如下:

make -DWITH_OPENSSL_PORT install
這裡不建議用參數 WITH_OPENSSL_BASE,因為這表示安裝套件時,是相依於原本系統中可能有漏洞的 OpenSSL,這樣會導致安全性的問題。

4月 082008
 

剑心通明 发表于: 2008-2-29 17:00 来源: BSD爱好者乐园

I posted yesterday about using FreeBSD Update to perform FreeBSD minor version upgrades, e.g., upgrading from FreeBSD 6.2 to FreeBSD 6.3 or from FreeBSD 7.0-BETA1.5 to FreeBSD 7.0-BETA2. Today I'm going to write about the more complicated process needed for major version upgrades, e.g., upgrading from FreeBSD 6.x to FreeBSD 7.x.

NOTE: Before proceeding, if you have FreeBSD Update scheduled to run from a cron job, disable the cron job! Bad Things will happen if FreeBSD Update tries to download security updates in the middle of this upgrade process. The first step necessary is to make sure that you can rebuild all of your installed third-party software (for most people, this means everything installed from the ports tree). Later in the upgrade process it will be necessary to rebuilt all of the ports so that they link to libraries from the new FreeBSD release — so before starting to upgrade FreeBSD itself, we need to make sure that rebuilding the ports won't fail. Continue reading »

4月 032008
 

週四, 01/25/2007 – 17:47 — cheeren

FreeBSD 6.2 Release 釋出已經一個星期了,我在釋出的第一天就從台灣的 Mirror 站台下載了安裝光碟的 ISO
檔,打算找一個風和日麗的黃道吉日來把我的系統好好升級一下。但是,我在下載的同時,依慣例,我會把這一版本的 Release Notes
走馬看花地先看一遍,原本不預期有什麼令人驚奇的發現,然而這次我居然在 Release Notes 當中的一段的標題,看到了這個字眼:

FreeBSD Update

咦?這是什麼東西?看樣子是我要的東西! Continue reading »

3月 282008
 

— by Will Andrews 19 August 2002

The Story

I needed more disk space on my vinum volume, which I created about 18 months ago using 2 IBM DeskStar 30GXP 30GB ATA100 drives. Originally, I created a RAID 0 (stripe) filesystem on top of these drives using vinum. But now I needed more disk space for various processes that I was running on the machine. So I got a new IBM DeskStar 80GB ATA100 drive.

Just like the FreeBSD diary article on vinum, I had an /etc/vinum.conf. Its contents were: Continue reading »

3月 282008
 

FreeBSD 提供了 growfs( 命令。这使得能够实时地调整文件系统的大小, 因而不再受其限制。
http://www.freebsd.org/doc/zh_CN.GB2312/books/handbook/disk-organization.html

growfs 的使用还是受很多限制吧。仔细规划分区的大小,不要把希望寄托在 growfs 上面。

Growing FreeBSD's filesystems with growfs(8)

Introduction

During installation it is important to size filesystems so that we won't be forced to resize them later. However, it often appears with time that one of the partitions is too small. Until today it was impossible to expand the size of a filesystem. FreeBSD 4.4-RELEASE comes with a new utility: growfs(8). This program permits us to enlarge, in certains conditions, the size of an existing ufs filesystem. Continue reading »