无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2179|回复: 6
打印 上一主题 下一主题

初学系统启动过程,做了个总结拿来交流

[复制链接]
跳转到指定楼层
1#
发表于 2007-12-20 20:26:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学系统的启动,对自己这两天的学的作个总结。发上来是希望交流下,如果有地方有误、有缺,或需要补充的请各位大大指出,好让小弟知而后改,也避免误导大家。

每个阶段及其小阶段都蕴含着很多关联的知识,LZ只能列举小部分(从网上搜的,一般是自己不明白的地方),想了解更多的,只有靠各位自己去搜了。

预引导阶段:

POST上电自检:是微机接通电源后,系统进行的一个自我检查的例行程序。这个过程通常称为POST——上电自检(Power On Self Test)。对系统的几乎所有的硬件进行检测。

系统启动自举程序:在完成POST自检后,ROM BIOS将按照系统CMOS设置中的启动顺序搜寻软硬盘驱动器及CDROM、网络服务器等有效的启动驱动器
,读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。

BIOS中断调用:BIOS中断服务程序,它是微机系统软、硬件之间的一个可编程接口,用于程序软件功能与微机硬件实现的衍接。

引导程序:Boot Sector[1]工作。主引导记录(MBR)[2]被装入内存,并且程序开始执行,活动分区的引导扇区被装入内存。NTLDR从引导扇区被装入并初始化。

引导阶段:

1、初始引导加载器阶段:
NTLDR1、NTLDR将计算机微处理器从实模式转换为32位平面内存模式
2NTLDR开始运行适当的小文件系统驱动程序(mini-file system drivers)。小文件系统驱动程序是建立在NTLDR内部的,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区
2、操作系统选择阶段:
计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini[3]的结果。
NTLDR装载所选操作系统
*如果NT/XP被选择,NTLDR运行Ntdetect.com;对于其他的操作系统,NTLDR装载并运行Bootsect.dos然后向它传递控制。

3、硬件检测阶段:
Ntdetect.com 搜索计算机硬件并将列表传送给NTLDR
以便将这些信息写进注册表的HKEY_LOCAL_MACHINE\HARDWARE

4、配置选择阶段:
计算机含有多个硬件配置文件[4]列表,可以通过按上下按钮来选择。如果只有一个硬件配置文件,计算机不显示此屏幕而直接使用默认的配置文件加载系统

加载内核阶段:
ntldr加载称为Windows XP内核的ntokrnl.exe[5]
接着ntldr加载硬件抽象层[6]HALhal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键,NTLDR读取其下的select键来决定哪一个Control Set(控制集)[7]将被加载。(NTLDR加载该控制集\service\...start键值为0的最底层设备驱动;同时,加载并初始化start键为1的设备驱动。当作为Control Set镜像的Current Control Set被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。

初始化内核阶段:
在初始化内核阶段开始的时候,彩色的Windows XPlogo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务:
1、内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。
2、内核通过引用HKEY_LOCAL_MACHINE\system\CurrentControlSet的默认值复制Control Set来创建了Clone Control SetClone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改。
3、系统完成初始化以及加载设备驱动程序。
内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...start键值为1的设备驱动程序,对有错的设备进行报错。
4Session Manager启动了Windows XP高级子系统以及服务。
Session Manager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。

登陆

PS由于刚学启动部分不是很懂操作系统内部的注册表和内核工作,所以加载内核和初始化内核阶段编辑的很模糊,自己也不是很懂,看了个大概,勉强可以看吧。。。。

一些名词解析及补充:
[1]
Boot Sector 也就是硬盘的第一个扇区, 它由 MBR (Master Boot Record), DPT (Disk Partition Table) Boot Record ID 三部分组成.
MBR 又称作主引导记录,存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序). DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD), 记录了磁盘的基本分区
信息. 主分区表分为四个分区项, 每项 16 字节, 分别记录了每个主分区的信息
(因此最多可以有四个主分区).
Boot Record ID 即引导区标记占用两个字节 (0x1FE and 0x1FF), 对于合法
引导区, 它等于 0xAA55, 这是判别引导区是否合法的标志
[2]
一般多系统引导程序 ( SmartFDISK, BootStar, PQBoot ) 都是将标准主引导记录(MBR)替换成自己的引导程序, 在运行系统启动程序之前让用户选择要启动的分区。
而某些系统自带的多系统引导程序 ( lilo, NT Loader ) 则可以将自己的引导程序放在系统所处分区的第一个扇区中, Linux 中即为 SuperBlock (其实 SuperBlock 是两个扇区)
对于做多系统启动,我想应该也就从这个MBR和boot.ini进行心动的吧。如果系统间是兼容的应该两个都可以,不兼容的话就是用前


[3]
Windows XP主要依赖Boot.ini文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别。Boot.ini在缺省状态下被设定为隐含和系统文件属性, 并且被标识为只读文件。
从“运行”里输入“c:\boot.ini”,
可打开boot.ini文件。其常见格式如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(X)disk(Y)rdisk(Z)partition(Q)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
SCSI(X)disk(Y)rdisk(Z)partition(Q)\WIN98="Microsoft Windows 98" /fastdetect
现在来解释下里面的内容:
该文件分为Boot loader(引导加载)和Operating systems(操作系统)两大部分。
在引导加载部分,timeout=xx表示等待用户选择操作系统的时间,默认是30秒,用户可以根据需要自行更改。default=xxxx表示缺省情况下系统默认要加载的操作系统路径,表现为启动时等待用户选择的高亮条部分。现在说下“multi(0)disk(0)rdisk(0)partition(1)”的意思:
实际上这是根据ARC规则命名的,它是x86RISC计算机中用于标识设备的一种通用方法。ARC名字指向存放操作系统文件的分区,对于磁盘设备, ARC名字的构成如下:
Component(X)disk(Y)rdisk(Z)partition(Q)
ComponentX部分有两种有效值,即multiSCSI,它用于标明硬件适配器。multi表示一个非SCSI硬盘或一个由SCSI BIOS访问的SCSI硬盘,而SCSI则表示一个SCSI BIOS禁止的SCSI硬盘。X值表示操作系统的系统根目录所在的分区所在的硬盘所在的磁盘控制器在同一磁盘控制器上的序号(X0开始)。
disk(Y)对于SCSI硬盘来说,Y值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Y0开始);对于multi来说,Y值无任何意义,恒为0
rdisk(Z)对于multi来说,Z值表示操作系统的系统根目录所在的分区所在的硬盘在同一个磁盘控制器上的硬盘序号(Z0开始);对于SCSI硬盘来说,Z值无意义,恒为0
partition(Q)Q值表示操作系统的系统根目录所在的分区在同一硬盘上主分区的序号(Q1开始)。
后面的参数简述:
/basevideo 强制系统进入640x480/16色VGA模式
/bootlog 将引导日志写入%SystemRoot%\Ntbtlog.txt中
/fastdetect 不检查并行和串行端口, 让即插即用驱动程序完成这个任务
/nodebug 禁用内核调试器, 可以加速引导过程, 但可能会导致蓝屏死机
/noserialmice:comx 禁用对指定COM端口的鼠标端口检查

[4]
所谓硬件配置文件,是指在启动计算机时告诉Windows应该启动哪些设备,以及使用每个设备中的哪些设置的一系列指令。当用户第一次安装Windows时,系统会自动创建一个名为“Profile 1”的硬件配置文件,缺省设置下,在“Profile 1”硬件配置文件中启用了所有安装Windows时安装在这台计算机上的设备。
系统属性”“硬件对话框中,可以看到这里有一个硬件配置文件的按钮,点击后会打开所示的窗口,在可用的硬件配置文件列表中显示了本地计算机中可用的硬件配置文件清单。
硬件配置文件的作用
仅加载硬件配置文件中的设备驱动程序
可用硬件配置文件下,使用箭头按钮可以将需要作为默认设置的硬件配置文件移到列表的顶端,这样Windows启动时就只会加载所选配置文件中启用的硬件设备。一旦创建了硬件配置文件,我们就可以使用设备管理器禁用和启用配置文件中的设备,这样在下一次启动计算机时就不会加载该设备的驱动程序,从而提高系统启动速度。
快速切换不同的工作环境
前面已经提到,我们可以同时创建多个不同的硬件配置文件,以适应不同的工作环境,只要在硬件配置文件选择小节上选中等待用户选定硬件配置文件项即可,以后启动计算机时就会出现与多重启动菜单相类似的硬件配置文件选择菜单,届时就可以任意切换不同的工作环境了。
对笔记本电脑用户而言,硬件配置文件将是非常实用的,因为大多数笔记本电脑都是在移动的场合使用,当用户将笔记本电脑从一个地方移动到另一个地方时,硬件配置文件允许用户更改计算机使用的设备,例如我们可以创建多个适用于不同场合的硬件配置文件,这样切换起来就非常方便了。
提高启动速度
如果你并未创建多个不同的硬件配置文件,或者希望启动期间自动加载默认的硬件配置文件而不显示列表项,那么请将硬件配置文件选择小节中的中输入“0”。当然,即使你仍然从列表中选择不同的硬件配置文件,只要在启动时按住空格键就会显示列表了。
恢复缺省配置
如果硬件更改超过一定限度,Windows XP可能会要求用户重新激活系统,这是非常麻烦的。不过,如果我们在每次安装或更改硬件之前备份了原来的硬件配置文件,只要从窗口中点击复制按钮,然后在所示的复制配置文件对语框中键入一个新的文件名就可以了,以后出现问题时,就可以重新导入这个事先备份下来的硬件配置文件。

这里要说明的是,上述操作必须以系统管理员的身份登录才行。

[5]
操作系统内核是计算机硬件的第一次扩充,内核执行操作系统与硬件关系密切、执行频率高的模块,常驻内存。
操作系统内核一般包括下述功能:
一、支撑功能,包括中断处理、时钟管理、原语操作;
二、资源管理功能,包括进程管理、存储器管理、设备管理。
[6]
硬件抽象层隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
硬件抽象层大概分为以下几点HAL

*
上层软件

*虚拟驱动,设置管理模块
*内部通信SERVER
*内部以太网
*内部通信CLIENT
*用户接入口
[7]
控制集中包含设备的驱动程序以及需要加载的服务。
2#
发表于 2007-12-21 13:55:10 | 只看该作者
MBR位于硬盘的0柱面0头1扇区上,C: 盘上的操作系统引导扇位于硬盘的0柱面1头1扇区上,当系统从硬盘开始引导时,首先被BIOS装入的是MBR上的引导程序,然后再由该程序装入操作系统引导扇上的引导程序继续引导,真正的操作系统引导文件的装入,是由操作系统引导扇程序寻址并装入的,至此,操作系统引导才真正开始。
回复

使用道具 举报

3#
 楼主| 发表于 2007-12-21 14:17:37 | 只看该作者
和“预引导阶段”中,MBR引导,然后活动分区上的系统引导程序引导一样
回复

使用道具 举报

4#
发表于 2007-12-28 23:49:44 | 只看该作者
看不太明白
高深了点
回复

使用道具 举报

5#
发表于 2007-12-29 08:50:30 | 只看该作者
学习了。确实不错。谢谢
回复

使用道具 举报

6#
发表于 2010-5-27 09:36:55 | 只看该作者
多谢分享!!看看!!!
回复

使用道具 举报

7#
发表于 2010-5-27 22:05:45 | 只看该作者
学习学习,懂点基本的东西好做事。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-1-15 23:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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