早在2006年2月12日,longhong就说可以用FreeBSD 6.0的内核替换掉Kylin的内核,然后成功的启动麒麟操作系统。见,http://www.kylin.org.cn/KylinForum/read.php?tid=537&fpage=1
虽然它给出了具体的操作步骤,可是还是有不少人不知道怎么做。而且由于麒麟开发组修改了启动部分,所以也没有机会让人在启动的时候切换不同的内核启动,(准确说可以切换,但是只限于kernel, kernel_smp, kernel_oracle三个内核间切换),这样加大了尝试的难度。
今天我反着来,呵呵,我将尝试用Kylin的内核去替换掉FreeBSD的内核并且尝试启动。
每一步我都给出贴图,估计大家不会有什么疑问了。按着图示,每个人都可以重现我所说的话。:)
需求:
1、一个已经可以运行的FreeBSD 5.x操作系统,我建议5.3以后的版本,因为麒麟和5.3以后的版本最接近。并且为了好看,最好可以装上X window。
2、一个正在运行的2.0-14或2.0-21麒麟操作系统。主要就是为了取内核,其他部分没用。
注意:
由于某种原因,麒麟操作系统2.1-01这个版本虽然功能上的变动不一定很大,但是在回避我分析报告中所采用的分析方法上还是做了一定的努力的。一方面是对内核进行了特殊处理,包括使用objcopy将其符号信息都给strip掉了,另一方面是修改了引导的部分。以至于用麒麟2.0-14/21的bootloader都无法引导2.1-01了,呵呵,自家人不认字家门了。人家自己家都不认了,自然也无法用FreeBSD来引导了。但是我实在搞不懂这种类似于换门的行为能说明什么?难道因为门换掉了,这个屋子里面的东西也就都换了么?呵呵。
由于上述原因,该实验只对麒麟2.0-14/2.0-21内核有效。
操作步骤:
1. 首先大家启动麒麟操作系统,然后把 /boot/kernel/kernel 文件拷贝出来。(至于是ftp,ssh,甚至发到email里这些方式我就不管了,只要弄出来就行)
2. 将 kernel 改名为 kylin20,并拷贝到 FreeBSD 操作系统的 /boot/kernel/ 目录下。
3. reboot 重新启动。
4.
在这个启动画面的时候按6,(10秒内没按可就正常启动了)
5.
显示OK后,依次输入下面三条命令:
unload
load /boot/kernel/kylin20
boot
6.
看到了吧,系统开始引导了。
7.
虽然有一些报错信息,但是没有关系,不去管他们。最终我们看到了熟悉的login:
8.
登录进去了。uname -a可以看到当前的系统内核可是 KYLIN 2.0-18 哦。呵呵。不过因为我没有去加载linprocfs所以
/proc/目录还是空的。
9. 接下来让我们启动图形界面吧。
startx
啊,不好意思,这是xfce4的启动界面,xfce4里面还是空的呢。那我们启动KDE好了:)
10. 修改了~/.xinitrc后。启动KDE
KDE启动中……
11. 大功告成了。
这就是我们用麒麟内核替换了FreeBSD内核,而成功的启动了FreeBSD操作系统,而且还启动了图形界面。呵呵,其实FreeBSD的中文图形界面也不是很差吧。:)
看来麒麟的内核还具有其没有对外宣称的另一个重要特性,就是与FreeBSD完全兼容哦。呵呵。