LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 651|回复: 0

kernel patch

[复制链接]
发表于 2003-10-31 09:42:12 | 显示全部楼层 |阅读模式
嗨, 各位日安,

我发现到有很多人的计算机里只安装了 Microsoft 的操作系统, 并且往往一安装就是占据了整个硬盘的储存空间. 这造成如果有一天, 该名使用者突然想试试看 Linux 操作系统, 但又不想重新 fdisk, format 硬盘内的宝贵数据 (因为只是想试试看而已), 所以常常就这样放弃了使用 Linux 的大好契机.

这对于推广 Linux 的使用与占有率有一定程度的影响, 所以我小小修改了 Linux kernel 的开机启动流程, 使得这一经过修改的 Linux kernel 可以在不重新 fdisk, format 硬盘的情况下来使用 Linux. (i.e. 整颗硬盘都还是保持 Microsoft windows 操作系统), 经由特别为此 kernel 制作的 bootable 安装光盘安装完后, 可以经由硬盘 (i.e. 安装完后就不再需要光盘了) 来启动一个完整的 Linux 操作系统.

我所 focus 的 Linux kernel 版本编号为 2.2.16, 基本上, 2.2.x 的版本应该都可以使用, 2.0.x 或 2.4.x 就没有试验过了.

我所修改的效果为:

当 lilo (或其它可以达到 multiboot 效果的 boot loader) 启动 Linux kernel 时, kernel 会去 "第一颗" 硬盘的 "第一个分割区" 内 (i.e. /dev/hda1) 的 root directory 寻找一个名为 linux 的档案, (i.e.1 windows 系统下的 C:\linux) (i.e.2 档名全为小写, 因为是写死在 source code 内)

这个 C:\linux 档案就是 Linux 系统的 root file system (可用 loopback device 制作出来), 当 kernel 找到 C:\linux 档案后, 会自动将其 dump 到 ramdisk 内, 而后就以该存在 ramdisk 内的 root file system 来进行整个 Linux 系统的运作. 这样作法的好处是, 纵使该名使用者因不熟悉 Linux 的使用而破坏了 root file system 的架构, 因其破坏的只是存在 memory 内的 root file system copy, 所以当下次重新开机时, root file system 依旧保持一开始的良好状态.

虽然 root file system 的如此实作会让使用者没有办法储存自己的数据, 但可在硬盘内放置另一个利用 loopback device 制作出来的 file, 当 kernel 完成 mount root file system 后, 就可以经由一般的简单程序来 mount 该 loopback file 到 root directory 下的某个 entry directory (i.e. /usr)


http://www.cis.nctu.edu.tw/~is84018/kernel_patch_1/index_zh.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表