CDLinux操作系统的结构

Author Avatar
爱睡觉的奶牛 2019年12月13日
  • 在其它设备中阅读本文章

本文转帖自:http://kxs-co.gicp.net/Linux/help/CDLinux/loader.html

1. 目录结构

1.1 打开 CDLinux 的 iso 会有以下目录:

CDlinuxCDLinux 操作系统的核心目录,所有重要的文件都放在这里面
[BOOT] 一个隐藏文件夹,是 mkisofs 时生成的,可直接无视它的存在
efi 存放 efi 启动文件的目录
isolinuxBIOS 启动工具,科学社添加,原 iso 不带此件夹,内有详细说明
boot.cat 一个隐藏文件,打包 iso 时生成的,可直接无视它的存在
mkisofs.sh 科学社重写的打包 iso 脚本,内有详细使用说明,非原 iso 打包工具

1.2 CDlinux 子目录说明:

boot 启动目录
doc 文档目录
extramd 模块存放目录,核心目录
lan 语言目录,在 zh 目录下的 zh-cdl.md 是 fcitx 输入法模块
local 作用与 extra 相同,可以存放 md 模块或 tgz 软件包模块
settings 配置文件目录,设置文件会存放于此,LiveCD 用不到
bzImage 内核映像文件,核心文件
initrd 内核辅助文件,核心文件

2. 加载顺序

下图是一张 Linux 通用加载顺序图:
cdlinux-catalog.png

然而,在 CDLinux 中的文件加载顺序为:
[boot.efi 或 boot.cat] --> [bzImage] --> [initrd] --> [xx-cdl.md] --> [xx-cdl.tgz]
注意:
1,上面的加载顺序中前三个是固定不变的,不管何时都一定会按此顺序加载。
2,xxx-cdl.md 模块的优先级高于 xxx-cdl.tgz,所以是先加载 md 模块再加载 tgz 模块。
3,当有多个 md 模块和多个 tgz 模块时,加载顺序按 [0-9],[A-z] 首字母或数字升序加载。

3. 几个文件简单科普

vmlinux 编译生成的内核映像文件,未压缩
vmlinuzvmlinux 压缩后的内核映像文件
initrd 编译 vmlinux 时如果有把一些重要的硬件设备支持编译成了内核模块,比如:硬盘支持,文件系统支持,固件等时产生的。它把这些模块抢在内核启动前加载,否则内核可能会因为缺少什么而造成系统启动失败
zImage 压缩 vmlinuz 后的文件,即 vmlinux 的第二次压缩内核映像文件
bzImagebig-zImage,大型 zImage 文件,zImage 加载于第一 640K 低端内存,bzImage 加载于大于 1M 以上的高端内存,通常文件比较大