泡了一段时间的论坛,发现太多东西要学,孔老夫子的弟子说过:仰之弥高,钻之弥深。不可谓不是此刻心情。看了几篇内核的,使我想起了硬件,就想在论坛搜搜关于计算机的启动的,可是没找到(可能是没有搜到关键处
),今天整理了下思路,写出来分享给和我一样的新手,大牛请绕行,各位同仁,若发现纰漏,请斧正,以免误人子弟。在此谢过。
1.按下主机电源按钮,电源开始给主板和许多设备设备(如鼠标,键盘等)供电【电源将220V交流电转变成12V,5V直流电压供给主板】。主板控制芯片不断向CPU发出reset(重置)信号直到电压稳定,电压稳定后CPU才开始进入工作状态(CPU光荣而艰巨的任务开始了
)
2.CPU从0FFFF处开始执行代码(其实此处只有一条跳转指令JMP ),JMP的目的地址就是主板上的封装的基本输入输出系统BIOS第一行代码的地址。[坐机按DEL键进入BIOS,笔记本好像是F2,我没用过本本
。进入后通过设置光驱位第一启动项来通过光盘重装系统。用处很多,以后献上。]
3.BIOS的功能可以分为3个部分:1)自检以及初始化化 2)程序服务请求和硬件中断处理 3)BIOS设置 主要关注第一项功能
1)BIOS执行上电自检(Power On Self Test POST)。完整的POST自检包括对CPU、系统主板、基本的640KB内存、1MB以上的扩展内存、系统ROM BIOS的测试;CMOS中系统配置的校验;初始化视频控制器,测试视频内存、检验视频信号和同步信号,对CRT接口进行测试;对键盘、软驱、硬盘及CD-ROM子系统作检查;对并行口(打印机)和串行口(RS232)进行检查。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。 如果正常则显示BIOS的类别 型号等。
然后是初始化,包括创建中断向量,设置寄存器并对外设进行检测及初始化 。
最重要的是对硬件参数的设置。当计算机启动时会读取这些参数并对当前硬件设置,如不符会影响系统启动,运转。
在完成上边两项任务后。BIOS将按照其内置的一块RAM CMOS(可读写存储器,断点后可由其自备电池供电,其所需的功率极低,仅仅需要一节纽扣电池便可以维持数据。如果被加密可以通过放电达到清除密码的目的)设置中的启动顺序寻找硬盘,CD-ROM等有效启动驱动器,读入操作系统 引导记录(硬盘的mbr{0磁道,0扇区,1字节},光盘的不知道
)。
BIOS的 2)的主要功能是为程序以后的调用服务
bios3)的功能主要是COOS的存储
4.主引导记录被装入内存,并且程序开始执行,活动分区的引导扇区被装入内存,BIOS华丽的谢场,将控制大权交给了windowsNT以后版本中的NTLOR文件。NTLOR首先将计算机处理器由实模式下转变为32位的平面内存保护模式(系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存)。NTLDR启动内建的mini-file system drivers(小文件系统驱动程序),通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,为找到相应系统做准备。【fat格式化的磁盘不支持单个文件大于4G,NTFS的可能是16G,不知道什么时候看到的了,下生化危机时就用到了这个小知识,生化危机大约5G。
跑题了】。
5.NTLDR读取BOOT.int,计算机显示器会显示一个操作系统选单,(虚拟机上只有一个系统没有办法给大家截图,我想大家应该知道)
[boot loader]
timeout=4
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
C:\mxldr=MaxDOS 8
我电脑的,如果把timeout=设置成0就不会出现选项画面。
6.硬件检测程序NTDETECT。com负责收集硬件设备信息并将其信息反馈给NTLDR,使NTLDR将这些信息写入注册表的HKEY_LOCAL_MACHINE下的HARDWARE中。【在开始--运行--输入 regedit 可以进入注册表 我曾经不知道怎么进,希望大家都会】
7.接下来是内核的加载。
ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINEsystem键,NTLDR读取select键来决定哪一个Control Set将被加载。控制集中包含设备的驱动程序以及需要加载的服务。NTLDR加载HKEY_LOCAL_MACHINEsystemservice...下start键值为0的最底层设备驱动。当作为Control Set的镜像的Current Control Set被加载时,ntldr传递控制给内核,初始化内核阶段就开始了。
内核初始化:
1)内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINEHARDWARE键。
2) 内核通过引用HKEY_LOCAL_MACHINEsystemCurrent的默认值复制Control Set来创建了Clone Control Set。Clone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改。
3)系统完成初始化以及加载设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描HKEY_LOCAL_MACHINEsystemCurrentControlSetservice...下start键值为1的设备驱动程序。
4)Session Manager启动了Windows XP高级子系统以及服务,Session Manager启动控制所有输入、输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。
8.登陆 登陆完成后全部完成。
【post检测响铃代码确定故障】。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
AWARD BIOS
1短声 系统正常启动
2短声 常规错误 CMOS设置不正确
1长1短 RAM或主板错误 可以换换内存 若还报错只能换板子了
1长2短 显示器或者显卡有问题
1长3短 键盘控制器有问题 查主板
1长9短 BIOS损坏 应该换FLASH RAM
连续不断的长响 内存条未插紧或者已经损坏
不停短响 电源 显示器 和显卡没有插好
重复短响 电源问题
无声也不显示 电源问题 或者停电
AMI BIOS
1短 内存刷新失败 换内存
2短 内存ECC校验错误 进入CMOS将内存校验设为"disable"
3短 系统基本内存前64KB错误 换之
4短 系统时钟错误
5短 CPU问题 检查插线
6短 键盘控制器有问题 查主板
7短 系统实模式工作无法切入保护模式
8短 显卡问题
9短 ROM BIOS问题
1长3短 内存损坏
1长8短 显示测试失败 看看显卡的插线
好困啊,第一次发帖子,不好大家见谅,希望对大家有点用。
有必要练练打字
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)