巧用FreeBSD 5.3内核启动做了点手脚的麒麟2.1
[将非技术内容独立出去,文字无改动] 巧用FreeBSD 5.3内核启动做了点手脚的麒麟 2.1-01 上回书说到,麒麟开发组在我的分析发布之后不久,就删除了网站上的 2.0-14/21 的光盘镜像,取而代之的是发布了一个新版本 2.1-01 。 如上回我所提到的那样,麒麟 2.1-01
[将非技术内容独立出去,文字无改动]
巧用FreeBSD 5.3内核启动做了点手脚的麒麟2.1-01
上回书说到,麒麟开发组在我的分析发布之后不久,就删除了网站上的2.0-14/21的光盘镜像,取而代之的是发布了一个新版本2.1-01。
如上回我所提到的那样,麒麟2.1-01相对于以前版本(2.0-14/21)进行了特殊化处理。主要是做了两件事情,一个是用objcopy/strip去掉了符号信息,strip了,而且还有一些额外的小动作,这样“成功的”回避了我那篇相似性分析中所用的分析方法;再一个就是修改了引导程序,所以用直接引导内核的方式已经是不可以用FreeBSD内核启动麒麟了,给大家尝试新版本情况下FreeBSD内核同麒麟内核的兼容性带来了一些障碍。
我之前不理解这种换门的行为有什么意义,有一位网友点醒的好,这叫做“迅雷不及掩耳盗铃”--(形容掩耳盗铃速度之快,呵呵)。
也有些人对我的“换门说”产生了质疑,怀疑是不是麒麟2.1真的在结构上有重大改进才导致的无法启动。那么好吧,今天,我们就来证实麒麟2.1确实是换了一个门而已。
系统引导
系统引导,一般为多级,大多数情况下,从MBR接过引导权后,稍加处理后,会转交给一个比较高级的引导程序,一般由这个引导程序来负责启动内核。在Windows NT/2000中是NT Loader;Linux中可能是Grub;在FreeBSD中是Boot Loader。有很多的引导程序比较高级具有多系统的引导能力,有的还具有传递引导权给下一级引导程序的能力。Grub就是其中之一。
麒麟的引导过程
麒麟为了多系统引导和图形化界面,采用了Grub作为第一级引导程序。在选择了"Kylin"后,Grub将加载第二级引导程序,对于2.0-14/21来说使用的是FreeBSD的Boot Loader,而2.1-01开始,麒麟开发组调整了这个引导程序,虽然大体上还是和FreeBSD的Boot Loader相同,但是修改了一些东西,导致这个Boot Loader属于Kylin 2.1-01专用的Boot Loader,既无法启动FreeBSD,也无法启动Kylin 2.0-14/21。也就所谓的自家人不认自家门了。呵呵。
在这个过程中,Boot Loader相当于一个点火器或者钥匙,只有和内核配套,遵循加载内核的约定,才能够成功的将内核加载起来。但是这个引导程序对于运行中的系统安全性和稳定性影响甚微,所以,修改其引导程序的目的,大家可以发挥想象力了。
证明我所说的换门问题很简单,我们只要将门再换回来就行了。今天我们所做的,就是使用FreeBSD的Boot Loader来帮助加载FreeBSD 5.3的内核,最后成功的挂载各个系统模块,并引导图形界面成功。
需求:
1、一个FreeBSD 5.3的内核。我建议重新编译一个内核(和上回一样,要是上回编译了就不用再编译了),加上Linux兼容等可选模块,这样更贴近麒麟的做法。不过最低要求不需要加很多,只要加上Linux兼容的部分就行,我建议至少加上下面的选项:
options COMPAT_LINUX
options LINPROCFS
device sound
2、一个可以运行的麒麟操作系统,是2.1-01版本。
操作步骤:
1. 将新编译的内核随便起一个名,在这个例子中,我将其命名为freebsd_5.3_sl,并存在home目录中。
2. 在FreeBSD 5.3中做下列准备工作:
mkdir ~/boot
mkdir ~/boot/kernel
cp ~/freebsd_5.3_sl ~/boot/kernel/
cp /boot/loader ~/boot/
echo "load /boot/kernel/freebsd_5.3_sl" > ~/boot/loader.rc
echo "boot" >> ~/boot/loader.rc
cd ~
tar -czvf boot.tar.gz boot
3. 将boot.tar.gz传到Kylin的/root目录下,然后在Kylin中开一个shell,执行:
cd /
tar -zxvf /root/boot.tar.gz
这样,就把FreeBSD的Boot Loader和内核已经放好位置了,并且也已经写好了启动脚本。装好了钥匙也装好了门,一切就绪了。
4. 下面,来开始我们的引导之旅吧。:)reboot 重新引导麒麟操作系统。
5. 在GRUB的引导界面移动光标到Kylin上后按e (如果默认就在Kylin上,就直接按e)
6. 将光标移动到第二行,kernel那行,然后按e
7. 我们会看到如下的行。
修改/boot/booter mute为/boot/loader。呵呵,人家从2.0-18的loader换成了booter就是为了不让我们能够启动FreeBSD,今天我们就给它换回来。
8. 回到这个页面后按b,将引导boot loader
9. 好,现在系统开始真正引导了,但是大家会从随后的几个画面发现,麒麟从2.0-01开始,再也不显示Copyright信息了,不但连加州大学的版本信息不显示,连他自己的版本信息也不显示了。据传闻,这样是为了让界面更加干净。嗯,确实挺“干净”。呵呵。不过谁要是特意的想看Copyright,还是可以从dmesg来看到的。
10. 成功的启动了X Window,进入图形界面的登录窗口。
11. 输入口令登录后,开始加载Gnome各个组件
12. 成功的启动了完整的图形界面,大家可以从uname中看到FreeBSD 5.3-RELEASE。
(其实也可以cat /proc/version的,这回抓图的时候忘了,不好意思,呵呵。)
至此,我们完成了仅仅替换为FreeBSD 5.3的内核和引导内核用的引导程序,就做到了完整系统的启动。虽然还有一些警告信息,但是系统服务基本都是正常启动的。和上回的2.0-14/18一样,麒麟开发组新发布的2.1-01同FreeBSD的“兼容性”依旧很不错。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

当小伙伴的电脑缺失一定的文件之后就会出现应用程序无法正常启动0xc000012d的情况,其实只要重新下载文件并安装就可以很好的解决了哟。应用程序无法正常启动0xc000012d:1、首先用户需要下载“.netframework”。2、然后找到下载地址并将其下载到自己的计算机上。3、然后在桌面双击开始运行。4、安装完成之后返回之前错误的程序位置,再次打开程序即可。

解决Ubuntu启动黑屏的实用技巧与方法引言:Ubuntu是一款广受欢迎的Linux操作系统,但有时候在启动过程中可能会遇到黑屏问题。这种问题可能由于多种原因引起,如显卡驱动问题、软件冲突或系统错误等。本文将介绍一些实用的技巧和方法,帮助解决Ubuntu启动黑屏问题,以保证系统的稳定运行。一、更新并重新安装显卡驱动进入恢复模式:在启动时按下Shift键,进入

重装系统也未必是个万全之策,可是重装后发现电脑开机会显示黑底白字,然后给出提示:rebootandselectproperbootdevice,这是怎么回事?出现这样的提示一般是引导出错所致。为了帮助到了大家,为此,小编就给大家带来了解决的方法了。电脑使用是越来越普及了而遇到电脑的故障也越来越来多,这不,最近有用户在电脑开机时遇到显示黑屏,并提示RebootandSelectproperBootdevice,无法正常启动电脑系统。这是怎么回事呢?又该怎么去解决呢?让用户一头雾水,下面,小编就来跟

wps是使用非常广泛的办公软件,包括了文档、表格和PPT,且支持多端同步。如果在编辑wps时出现提示“不能启动此对象的源应用程序”,要如何解决?出现这个问题可能是因为你正在尝试打开一个链接或文件,但是它的源应用程序已经不存在或者被删除了。 以下是一些修复方法: 1、重新安装WPS软件:尝试重装WPSOffice来修复该问题,确保您使用的是最新版本。 2、手动更改默认程序:试着将默认程序更改为WPS,可以按右键单击需要打开的文件,选择“打开方式”,然

在当前智能手机市场上,处理器可谓是各大手机厂商争夺的焦点之一。作为手机的“大脑”,处理器的性能直接影响到手机的运行速度、多任务处理能力以及游戏体验等方面。目前,麒麟8000处理器作为华为旗舰手机的配备,备受关注。那么,它与骁龙处理器相比,究竟有何优劣呢?首先,从性能方面来看,麒麟8000处理器采用了最新的台积电5nm工艺制造,拥有更加先进的制程技术,提升了能

麒麟8000与骁龙处理器性能分析:细数强弱对比随着智能手机的普及和功能不断增强,处理器作为手机的核心组件也备受关注。目前市场上最为常见且性能出色的处理器品牌之一就是华为的麒麟系列和高通的骁龙系列。本文将围绕麒麟8000和骁龙处理器展开性能分析,探讨两者在各方面的强弱对比。首先,让我们来了解一下麒麟8000处理器。作为华为公司最新推出的旗舰处理器,麒麟8000

在Ubuntu22.04上安装Linux内核可以按照以下步骤进行操作:更新系统:首先,确保你的Ubuntu系统是最新的,执行以下命令更新系统软件包:sudoaptupdatesudoaptupgrade下载内核文件:访问Linux内核官方网站()下载所需的内核版本。选择一个稳定版本并下载源代码文件(以.tar.gz或.tar.xz为扩展名),例如:wget解压文件:使用以下命令解压下载的内核源代码文件:tar-xflinux-5.14.tar.xz安装构建依赖:安装构建内核所需的工具和依赖项。执

wallpaperengine启动时,有4种不同的选项,有很多用户不知道wallpaperengine启动选哪一个,一般wallpaperengine启动时选择第一个:启动32位即可。wallpaperengine启动选哪一个答:启动32位。1、一般wallpaperengine启动时选择第一个:启动32位即可。2、wallpaperengine启动时,有4种不同的选项:启动32位;启动64位。3、启动32位:这是一般推荐的选项,适用于大多数用户。4、启动64位:如果系统支持64位,可以选择此选
