流程 | 主函数 | 子函数/命令 | 解释 |
准备工作 | valid_dev | 检测磁盘上是否有BLV | |
make_workdir | 构建工作目录 | ||
check_diskspace | 确认/tmp文件系统中有足够的空间容纳ramfs和内核映像 | ||
init_tmpfile_vars | 设置一些辅助用的环境变量,例如ramfs文件的文件名以及proto文件的名称 | ||
构建RAMFS文件,包括库文件、ODM和其他必须的命令 | Create_Ramfs | create_db | 在工作目录中构建精简的ODM |
strip_lib | 在工作目录中复制必须的C库文件 | ||
库文件经过strip处理以节省空间 | |||
build_proto | 最关键的步骤,构建用于mkfs的proto文件 mkfs命令根据proto文件,在创建RAMFS后在其中构建目录,并复制文件,例如/sbin/rc.boot等必须的命令和内核扩展,也包括工作目录中的ODM和C库文件 | ||
check_proto | |||
mk_ramfs | 创建RAMFS,并往其中复制文件 | ||
构建引导映像,包括操作系统内核以及RAMFS | Create_BootImage | compress_ramfs | 创建并压缩ramfs |
copy_ker | 复制/unix内核到临时目录 | ||
mkboot_compresss | 根据临时目录中的/unix内核创建并压缩内核映像 | ||
cat_ker_ramfs | 合并RAMFS和内核映像 | ||
mkboot_image | 通过mkboot命令通知bootstrap BLV在磁盘中的位置 | ||
将合并后的内核映像dd到BLV | |||
复制驱动 | Copy_Device | savebase | 将引导系统必须的驱动程序复制到BLV |
引导操作系统必须具备几个条件:
ü
Bootstrap必须知道可引导映像在磁盘中的起始位置
ü
可引导映像中包括初始化最小设备所需的驱动程序、操作系统内核和库文件,以及其他必须的命令和ODM。
bosboot命令完成上述两个任务