终端机无盘启动过程基本分析_第1页
终端机无盘启动过程基本分析_第2页
终端机无盘启动过程基本分析_第3页
终端机无盘启动过程基本分析_第4页
终端机无盘启动过程基本分析_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Network Optimization Expert Team终端机无盘启动过程基本分析Network Optimization Expert Team培训主题培训主题1. 计算机系统架构及硬件启动过程2. BIOS的介绍及BIOS启动过程3. PXE介绍及PXE启动过程4. Linux内核启动过程5. 终端机软件启动过程Network Optimization Expert Team1. 1. 计算机系统架构及硬件启动过程计算机系统架构及硬件启动过程Network Optimization Expert TeamPCPC系统架构系统架构介绍介绍(Intel (Intel CPU)CPU)N

2、etwork Optimization Expert Team硬件启动过程流程图硬件启动过程流程图 硬件启动过程。我们可以将一块主板硬件启动电路的关键启动部件用下图表示出來GMCHICHPOWERVRMCPUVID RegulatorButtonPOWERPCI_RSTCPU_RSTPOWER_OKPWR_GDVCCPPS_ON4289657110VIDVID Voltage3Network Optimization Expert Team硬件启动过程硬件启动过程( (一一) ) 当我们按下电脑的开机按钮时,电脑能检测到有开机动作,则会开始下面一系列动作。1、首先,需要220V/110V供给系

3、统电源(Power Supply),则会产生出一组5VSB电压并加载到主板上(电源插头的Pin9),如图五所示。2、按下PWR Button,主板产生PS-ON(POWER Supply-ON)信号,输到电源插头的Pin16。3、系统电源完全工作后,将输出所有电压,如12V -12V 5V 3.3V。4、电源稳定后,还会发出PWR_OK信号给主板。5、主板上的部分电源电路开始工作后,其中的CPU VID(Voltage Identify)电源电路产生电压并输出給CPU,使CPU VID电路工作。同时,时钟合成器电路通电开始工作,产生出各种频率不同的时钟信号。Network Optimizati

4、on Expert Team硬件启动过程(二)硬件启动过程(二)6、CPU输出与Vcore对应的VID信息给VRM(Voltage Regulator Module)稳压電路。7、VRM电路开始工作,输出与VID信息相对应的VCCP电压(电源正电压)并提供给CPU作为它的Vcore工作电压。8、当CPU的VCCP电压稳定后,它会告知VRM电路,VRM电路再产生出PWR_SB信号并送给ICH,告知ICH现在CPU可以正常工作了。9、ICH接收到PWR_GD信号和时钟信号后,发出PCIRST和PLTRST,使GMCH和其它各种跨接于PCI总线上的设备复位。10、GMCH接收到PCIRST 后,发出

5、CPURST给CPU,最终完成各种设备的复位过程。Network Optimization Expert Team2. BIOS2. BIOS的介绍及的介绍及BIOSBIOS的启动过程的启动过程Network Optimization Expert Team什么是什么是BIOSBIOS BIOS是英文Basic Input Output System的缩略语,全称是ROMBIOS,意思是只读存储器基本输入输出系统。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机上电自检程序和系统启动自举程序。BIOS包括有系统BIOS(即常说的主

6、板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本PPT要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。形象地说,BIOS应该是连接软件程序与硬件设备的一座桥梁,负责解决硬件的即时要求。Network Optimization Expert Team什么是内存地址什么是内存地址所以我们来了解一下内存的地址。我们的机器中一般安装有1G(1024M)或2G(2048M)内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问内存。比如说32MB的地址范围用十六进制数表示就是01FFFFFFH,其中0FFFFFH的低端1MB内存

7、非常特殊,因为最初的8086处理器能够访问的内存最大只有1MB,这1MB的低端640KB被称为基本内存,而A0000HBFFFFH要保留给显示卡的显存使用,C0000HFFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000HC7FFFH处,IDE控制器的BIOS在C8000HCBFFFH处。 Network Optimization Expert TeamX86低端内存分配图Network Optimization Expert TeamBIOSBIOS启动过程图启动过程图Network Optimization Expert

8、 TeamBIOSBIOS启动过程启动过程( (一一) ) 第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让 CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情), 它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址 FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是

9、Award BIOS还是AMI BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处,這个地方就是.硬件ROM。Network Optimization Expert TeamBIOSBIOS启动过程启动过程( (二二) ) 第二步: 系统BIOS的启动代码首先要做的事情就是进行POST(PowerOn Self Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过 程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时

10、只会检查640K常规内 存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉 到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。 Network Optimization Expert TeamBIOSBIOS启动过程启动过程( (三三) ) 第三步: 接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡 BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出

11、一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。 Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS启动过程启动过程( (四四/ /五五) ) 第四步: 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。 第五步: 接着系统BIOS将检测和显示CPU的类型和工作频率,然后开始测试所有的RA

12、M,并同时在屏幕上显示内存测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。 Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS启动过程启动过程( (六六/ /七七) ) 第六步: 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CDROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。 第七步: 标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开

13、始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。 Network Optimization Expert TeamBIOSBIOS启动过程启动过程( (八九八九) ) 第八步: 到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。 第九步: 接下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统

14、配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主 板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update ESCD Success”这样的信息.Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS启动过程启动过程( (十十) ) 第十步: ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘、网卡或光驱启动

15、。以从C盘启动为例,系统BIOS 将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并 执行引导程序。我们的终端机将从网卡进行PXE启动。Network Optimization Expert Team3. PXE3. PXE介绍及介绍及PXEPXE启动过程启动过程Network Optimization Expert TeamPXEPXE的介绍的介绍 PXE(preboot execute environment预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模

16、式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端机基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如windows,linux等。目前终端机用的是GPXE是一个开源的网络启动程序。Network Optimization Expert TeamPXE启动Linux内核流程图引导程序Network Optimization Expert TeamPXEP

17、XE的启动过程的启动过程( (一一) )PXE协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。1. 客户端发送动态获得IP地址的广播包到网络上。2.DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包。 Network Optimization Expert TeamPXEPXE的启动过程的启动过程( (二二) ) 3. 客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务器的I

18、P 地址(DHCP服务器066选项,这就是TFTP服务器的IP地址) 启动文件名(DHCP服务器067选项,这里的启动文件名就是pxelinux.0 或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件)4.然后客户端到联系启动服务器(TFTP服务器)获得Linux内核映像文件vmlinux及内核小系统initrd.gz并执行,这样基本上就完成了pxe启动Linux内核的过程。Network Optimization Expert Team

19、4. Linux4. Linux内核启动过程内核启动过程Network Optimization Expert Team内核启动过程(一)内核启动过程(一)系统读取内核映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。Network Optimization Expert Team内核启动过程(二)内核启动过程(二)start_ke

20、nrel()定义在init/main.c中,它就类似于一般可执行程序中的main()函数,系统在此之前所做的仅仅是一些能让内核程序最低限度执行的初始化操作,真正的内核初始化过程是从这里才开始。函数start_kerenl()将会调用一系列的初始化函数,用来完成内核本身的各方面设置,目的是最终建立起基本完整的Linux核心环境。Network Optimization Expert Team内核启动过程(三)内核启动过程(三)start_kernel()中主要执行了以下操作:(1) 在屏幕上打印出当前的内核版本信息。(2) 执行setup_arch(),对系统结构进行设置。(3)执行sched_

21、init(),对系统的调度机制进行初始化。先是对每个可用CPU上的runqueque进行初始化;然后初始化0号进程(其task struct和系统空M堆栈在startup_32()中己经被分配)为系统idle进程,即系统空闲时占据CPU的进程。Network Optimization Expert Team内核启动过程(四)内核启动过程(四) (4)执行parse_early_param()和parsees_args()解析系统启动参数。(5)执行trap_in itQ,先设置了系统中断向量表。0-19号的陷阱门用于CPU异常处理;然后初始化系统调用向量;最后调用cpu_init()完善对CP

22、U的初始化,用于支持进程调度机制,包括设定标志位寄存器、任务寄存器、初始化程序调试相关寄存器等等。(6)执行rcu_init(),初始化系统中的Read-Copy Update互斥机制。Network Optimization Expert Team内核启动过程(五)内核启动过程(五) (7)执行init_IRQ()函数,初始化用于外设的中断,完成对IDT的最终初始化过程。(8)执行init_timers(), softirq_init()和time_init()函数,分别初始系统的定时器机制,软中断机制以及系统日期和时间。(9)执行mem_init()函数,初始化物理内存页面的page数据结

23、构描述符,完成对物理内存管理机制的创建。Network Optimization Expert Team内核启动过程(六)内核启动过程(六)(10)执行kmem_cache_init(),完成对通用slab缓冲区管理机制的初始化工作。(11)执行fork_init(),计算出当前系统的物理内存容量能够允许创建的进程(线程)数量。(12)执行proc_caches_init() , bufer_init(), unnamed_dev_init() ,vfs_caches_init(), signals_init()等函数对各种管理机制建立起专用的slab缓冲区队列。(13 )执行proc_roo

24、t_init()Wl数,对虚拟文件系统/proc进行初始化。Network Optimization Expert Team内核启动过程(七)内核启动过程(七)在 start_kenrel()的结尾,内核通过kenrel_thread()创建出第一个系统内核线程(即1号进程),该线程执行的是内核中的init()函数,负责的是下一阶段的启动任务。最后调用cpues_idle()函数:进入了系统主循环体口默认将一直执行default_idle()函数中的指令,即CPU的halt指令,直到就绪队列中存在其他进程需要被调度时才会转向执行其他函数。此时,系统中唯一存在就绪状态的进程就是由kerne_hr

25、ead()创建的init进程(内核线程),所以内核并不进入default_idle()函数,而是转向init()函数继续启动过程。Network Optimization Expert Team内核启动过程(八)内核启动过程(八)用户层init依据inittab文件来设定运行等级内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。其实/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是“:id:5:init default:”,这就表明Linux需要运行在等级5上。Network Optimization Expert Team内核启动过程(九)内核启动过程(九)init进程执行rc.sysinit在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论