📄 00000001.htm
字号:
三. 系统启动过程简介 <BR> <BR> 系统启动过程主要由一下几步组成(以硬盘启动为例): <BR> <BR> 1. 开机 :-) <BR> 2. BIOS 加电自检 ( Power On Self Test -- POST ) <BR> 内存地址为 0ffff:0000 <BR> 3. 将硬盘第一个扇区 (0头0道1扇区, 也就是Boot Sector) <BR> 读入内存地址 0000:7c00 处. <BR> 4. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于 <BR> 则转去尝试其他启动介质, 如果没有其他启动介质则显示 <BR> "No ROM BASIC" 然后死机. <BR> 5. 跳转到 0000:7c00 处执行 MBR 中的程序. <BR> 6. MBR 首先将自己复制到 0000:0600 处, 然后继续执行. <BR> 7. 在主分区表中搜索标志为活动的分区. 如果发现没有活动 <BR> 分区或有不止一个活动分区, 则停止. <BR> 8. 将活动分区的第一个扇区读入内存地址 0000:7c00 处. <BR> 9. 检查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于则 <BR> 显示 "Missing Operating System" 然后停止, 或尝试 <BR> 软盘启动. <BR> 10. 跳转到 0000:7c00 处继续执行特定系统的启动程序. <BR> 11. 启动系统 ... <BR> <BR> 以上步骤中 2,3,4,5 步是由 BIOS 的引导程序完成. 6,7,8,9,10 <BR>步由MBR中的引导程序完成. <BR> <BR> 一般多系统引导程序 (如 SmartBootManager, BootStar, PQBoot 等) <BR>都是将标准主引导记录替换成自己的引导程序, 在运行系统启动程序 <BR>之前让用户选择要启动的分区. <BR> 而某些系统自带的多系统引导程序 (如 lilo, NT Loader 等) <BR>则可以将自己的引导程序放在系统所处分区的第一个扇区中, 在 Linux <BR>中即为 SuperBlock (其实 SuperBlock 是两个扇区). <BR> <BR> 注: 以上各步骤中使用的是标准 MBR, 其他多系统引导程序的引导 <BR>过程与此不同. <BR> <BR> <BR> <BR> 第二部分 SmartBootManager 技术资料 <BR>一. 简 介 <BR> 1. SmartBootManager 是什么? <BR> SmartBootManager (简称 SBM) 是一个独立于任何操作系统的启动 <BR>管理器, 它可以让用户在启动计算机的时候选择要启动的分区(或软驱). <BR> 与 OS/2 BootManager, System Commander, PQ-Boot 等不同的是, <BR>SBM 的尺寸非常小, 可以安装在硬盘 0 磁道的隐含扇区中, 无需任何 <BR>分区和系统. <BR> SBM 不是 OS Loader, 它必须与 OS Loader 相配合才能启动操作 <BR>系统. 例如, 要启动 Linux 还必需安装 lilo (或其他类似软件), <BR>DOS / Windows 9x / Windows NT 也有自己的 OS Loader. <BR> 2. SBM 的特点 <BR> 除了以上所说的小巧以外, SBM 还具有许多特点, 如: <BR> * 友好的用户界面 <BR> * 强大的口令保护功能 <BR> * 自动搜索分区 <BR> * 支持多硬盘, 可以引导逻辑分区 <BR> * 支持软驱启动 <BR> * 支持大硬盘(使用扩展 Int 13h) <BR> * 支持从逻辑分区上启动 DOS / Windows 9X 系统. <BR> <BR>二. SBM 程序简介 <BR> SBM 的所有核心程序都用 nasm 写成, 为了方便编程, 将主程序分成了 <BR>几个不同功能的模块: <BR> <BR> ui.asm 用户界面模块, 完成窗口绘制, 字符串输入等功能 <BR> hd_io.asm 磁盘 IO 模块, 负责访问磁盘驱动器 <BR> knl.asm 核心模块, 主要完成分区搜索, 分区启动等功能 <BR> utils.asm 实用函数模块, 包括数字<->字符串转换等函数 <BR> main.asm 主程序 <BR> loader.asm 调用程序, 用以替换标准 MBR, 负责装载主程序 <BR> tempdata.asm 程序使用的临时变量和缓冲区 <BR> theme-us.asm 英文界面数据 <BR> theme-zh.asm 中文界面数据 <BR> <BR>其他详细内容以后再写吧. <BR> <BR>三. SBM 使用技巧 <BR>1. 用 SBM 管理 DOS/Windows 9x/NT, Linux, FreeBSD 应注意的事项 <BR>* DOS 6.22 及以前版本只能安装在硬盘的前 2G 空间以内 <BR>* Windows 95 及以前版本只能安装在 8G 以内(即 1024 柱面以内) <BR>* Windows NT 4.0 最好安装在第一个分区, 不然的话需要用 SBM 把 <BR> 前面所有 Windows NT 能够识别的分区都隐藏起来, 才能启动 NT. <BR>* 必须把 lilo 安装到 SuperBlock, 否则 SBM 会破坏 lilo!!! <BR> <BR> 如何把 lilo 移到 SuperBlock: <BR> 编辑 /etc/lilo.conf 文件, 修改 boot= 参数, 例如: <BR> boot=/dev/hda2 # /dev/hda2 是 linux 所在分区 <BR> 执行 lilo <BR> <BR>* FreeBSD 好像不能安装到逻辑盘上(我没有亲自实验过) <BR>* 要想启动逻辑盘或第二块(或以后)硬盘上的 DOS/Windows 9X, 必须 <BR> 用 SBM 把前面的所有 FAT 分区都隐藏起来. <BR> <BR> <BR>先写这么多吧, 以后想到什么在说. <BR> <BR>-- <BR>※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.26.80] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -