当前位置:文档之家› 操作系统启动过程

操作系统启动过程

操作系统启动过程
操作系统启动过程

操作系统的启动实验报告

操作系统实验报告 工程大学 计算机科学与技术学院

一.实验概述 1.实验名称:操作系统的启动 2.实验目的: 1)跟踪调试EOS在PC机上从加电复位到成功后启动的全过程,了解操作系统的启动过程; 2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。 3.实验类型:验证,设计 4.实验容: 1)准备实验,启动OS Lab,新建一个EOS Kernel项目; 2)调试EOS操作系统的启动过程 ①使用Bochs作为远程目标机 ②调试BIOS程序 ③调试软盘引导扇区程序 ④调试加载程序 ⑤调试核 ⑥查看EOS启动后的状态和行为 二.实验环境 操作系统:windows XP 编译器:Tevalaton OS Lab 语言:C++ 三.实验过程 1.设计思路和流程图: 2.实验过程:

1)在Console窗口中输入调试指令sreg,查看当前CPU中各个段寄存器的值,其中CS寄存器信息行中的“s=0xf000”表示CS寄存器的值为0xf000。 2)输入调试命令r,显示当前CPU中各个通用寄存器的值,“rip: 0x00000000:0000fff0”表示 IP 寄存器的值为 0xfff0。 3)输入调试命令 xp /1024b 0x0000,查看开始的 1024 个字节的物理存。在Console 中输出的这 1K 物理存的值都为 0,说明 BIOS 中断向量表还没有被加载到此处。 4)输入调试命令 xp /512b 0x7c00,查看软盘引导扇区应该被加载到的存位置。输出的存值都为 0,说明软盘引导扇区还没有被加载到此处。 可以验证 BIOS 第一条指令所在逻辑地址中的段地址CS寄存器值是一致的,偏移地址和 IP 寄存器的值是一致的。由于存还没有被使用,所以其中的值都为0。 5)输入调试命令 vb 0x0000:0x7c00,这样就在逻辑地址 0x0000:0x7c00(相当于物理地址 0x7c00)处添加了一个断点。输入调试命令 c 继续执行,在 0x7c00 处的断点中断。中断后会在 Console 窗口中输出下一个要执行的指令,即软盘引导扇区程序的第一条指令。 6)输入调试命令 sreg 验证 CS 寄存器(0x0000)的值。

操作系统作业二

1 填空题 1.设单CPU环境下,有三道作业,它们的提交时间及运行时间如下表: 若采用短作业优先调度策略,作业单道串行运行时的调度次序为 J1,J3,J2 ,平均周转时间= 8 。 2.进程间通信的类型有:基于内存通信、基于文件通信、基于网络通信 和基于报文传递通信。 3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短作业将得 到优先调度;当各个作业要求运行的时间相同时,等待时间长得到优先调度。 4.有三个同时到达的作业J1,J2和J3,它们的执行时间分别是T1,T2和T3,且T1

C、多个进程竞争,资源出现了循环等待 D、多个进程竞争共享型设备 3.( C )不是分时系统的基本特征: A、同时性 B、独立性 C、实时性 D、交互性 4.进程所请求的一次打印输出结束后,将使进程状态从(B D) A、运行态变为就绪态 B、运行态变为等待态 C、就绪态变为运行态 D、等待态变为就绪态 5.一作业进入内存后,则所属该作业的进程初始时处于( B C)状态。 A、运行 B、等待 C、就绪 D、收容 6.运行时间最短的作业被优先调度,这种企业调度算法是(C ) A.优先级调度 B.响应比高者优先C.短作业优先D.先来先服务 7.产生死锁的主要原因是进程运行推进的顺序不合适(C ) A.系统资源不足和系统中的进程太多B.资源的独占性和系统中的进程太多 C.进程调度不当和资源的独占性D.资源分配不当和系统资源不足 8. B 是指从作业进入系统到作业完成所经过的时间间隔; D 是从作业进入后备队列起,到被调度程序选中时的时间间隔。 A:响应时间;B:周转时间;C:运行时间; D:等待时间;F:触发时间。 9.CPU的调度分为高级、中级和低级三种,其中低级调度是指 C 调度。 A:作业B:交换C:进程 10. 批处理系统的主要缺点是( B )。 的利用率不高 B.失去了交互性 C.不具备并行性 D.以上都不是 11. 引入多道程序的目的在于( B A)。 A.充分利用CPU,减少CPU等待时间 B.提高实时响应速度 C 有利于代码共享,减少主、辅存信息交换量充分利用存储器 12. 在分时系统中,时间片一定,(B ),响应时间越长。 A.内存越多 B.用户数越多 C.后备队列 D.用户数越少 13. 我们如果为每一个作业只建立一个进程,则为了照顾短作业用户,应采用 SJF B ;为照顾紧急作

WindowsXP启动过程概述

WindowsXP启动过程概述 从按下计算机开关启动计算机,到登入到桌面完成启动,一共经过了以下几个阶段: 1. 预引导(Pre-Boot)阶段; 2. 引导阶段; 3. 加载内核阶段; 4. 初始化内核阶段; 5. 登陆。 每个启动阶段的详细介绍 a) 预引导阶段 在按下计算机电源使计算机启动,并且在Windows XP专业版操作系统启动之前这段时间,我们称之为预引导(Pre-Boot)阶段,在这个阶段里,计算机首先运行Power On Self Test (POST),POST检测系统的总内存以及其他硬件设备的现状。如果计算机系统的BIOS(基础输入输出系统)是即插即用的,那么计算机硬件设备将经过检验以及完成配置。计算机的基础输入输出系统(BIOS)定位计算机的引导设备,然后MBR(Master Boot Record)被加载并运行。在预引导阶段,计算机要加载Windows XP的NTLDR文件。 b) 引导阶段 Windows XP Professional引导阶段包含4个小的阶段。 首先,计算机要经过初始引导加载器阶段(Initial Boot Loader),在这个阶段里,NTLDR 将计算机微处理器从实模式转换为32位平面内存模式。在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,初始引导加载器阶段就结束了。 接着系统来到了操作系统选择阶段,如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取boot.ini的结果。(至于操作系统选单,由于暂时条件不够,没办法截图,但是笔者模拟了一个,见图一。) 在boot.ini中,主要包含以下内容: [boot loader]

计算机启动过程

计算机启动过程 讲课教师:黄小龙 计算机启动过程总体分为两个过程,即硬件启动过程和操作系统启动过程。本课中操作系统我们仅选用Windows XP 的启动过程讲解。 一、硬件启动过程 ⑴加电 按下电源开关后,电源就开始向主板和其它设备供电,此时电压还不稳定, 主板上的控制芯片组会向CPU 发出并保持一个RESET(重置)信号,让CPU 初始化。当电源开始稳定供电后,芯片组便撤去RESET 信号(如果是按下Reset 按钮来重启,那么松开该按钮时芯片组就会撤去RESET 信号)。然后,CPU 马上就从地址FFFF0H 处开始执行指令(这是BIOS 的起始地址),但放在这里的只是一条跳转指令,跳到系统真正的BIOS 启动代码处,由BIOS 的代码进行下一步的POST 自检。 ⑵BIOS 进行post

POST就是加电自检,它是Power On Sel f Test的缩写。它是检查一些关键设备是否存在和能否正常工作,如内存和显卡等。如果发现错误,则通过喇叭发声来报告错误情况,此时的声音长短和次数代表了错误类型。 注:由于POST的检测过程在显示卡初始化之前,因此POST 自检过程发现的错误是无法在屏幕上显示出来的。 ⑶BIOS检测硬件的各种信息 BIOS进行加电自检后,就开始检测计算机上硬件设备的各种信息,如设备类型、工作频率、芯片组型号、出厂厂商等。这阶段的硬件检测顺序是:显示卡、CPU、内存、其它标准硬件设备(如硬盘、光驱、软驱、外设等)。 ⑷BIOS更新ESCD 按下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的数据,这些数据被存放在CMOS之中。通常ESCD数据只在系统硬件配置发生改变后才会进行更新,因此不是每次启动都能看到"Update ESCD... Success"这样的信息。不过,某些主板的BIOS在保存ESCD数据时使用了与Windows 9x 不相同的数据格式,于是Windows 9x在每一次启动都会把ESCD 数据转换成自己的格式,导致BIOS每次重新启动时都认为是硬件配置发生变化,并重新改写ESCD数据,这就是为什么有的计算机在每次启动时都会显示"Update ESCD... Success"信息的原因。

操作系统实验-第二讲、操作系统的启动

操作系统 实验报告 哈尔滨工程大学 计算机科学与技术学院

第二讲操作系统的启动 一、实验概述 1. 实验名称 操作系统的启动 2. 实验目的 1)、跟踪调试eos在pc机上从加电复位到成功启动的全过程,了解操作系统的启动过程。 2)、查看eos启动后的状态和行为,理解操作系统启动后的工作方式。 3. 实验类型(验证、设计) 验证 4. 实验内容 1)、启动OS Lab。 2)、新建一个EOS Kernel 项目。 3)、在“项目管理器”窗口中打开boot 文件夹中的boot.asm 和loader.asm 两个汇编文件。boot.asm 是软盘引导扇区程序的源文件,loader.asm 是loader 程序的源文件。简单阅读一下这两个文件中的NASM 汇编代码和注释。 4)、按F7 生成项目。 5)、生成完成后,使用Windows 资源管理器打开项目文件夹中的Debug 文件夹。找到由boot.asm 生成的软盘引导扇区程序boot.bin 文件,该文件的大小一定为512 字节(与软盘引导扇区的大小一致)。找到由loader.asm 生成的loader 程序loader.bin 文件,记录下此文件的大小1566 字节,在下面的实验中会用到。找到由其它源文件生成的操作系统内核文件kernel.dll。 二、实验环境 进行实验使用的操作系统、编译器、语言及工具等。 操作系统:Windows XP 编译器:Tevalaton OS Lab 语言:C++

三、实验过程(每次实验不一定下面6条都写,根据实际情况定) *需要解决的问题以及解答 (1)、自己设计两个查看内存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。 答:命令为:xp /512b 0x7a00和cp /512v 0x9fe00。因为第一个用户区的高位地址截止到0x7c00,第二个用户区高位地址截止到0xA0000,命令表示显示从0x7a00和0x9fe00以后512b空间的所有字节码,即两个用户区的高位地址端,可以看到所有字节全为0,说明高地址端是空白的。如图一、图二所示。(2)、自己设计一个查看内存的调试命令,验证上位内存的高地址端已经被系统占用。 答:命令为:xp /512b 0xffe00。因为上位内存的高位地址截止到0x100000,命令表示显示从0xffe00以后的512b空间的所有字节码,即两个用户区的高位地址端。可以看到所有字节都有值,说明高地址端被占用。如图三所示。(3)、根据之前记录的loader.bin文件的大小,自己设计一个查看内存的调试命令,查看内存中loader程序结束位置的字节码,并与loader.lst文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。 答:命令为xp /8b 0x1616.程序的初始位置为0x1000,加上1566的十六进制61E-8b,答案即为1616.如图四、图五、图六、图七所示。 (4)、仔细比较实验指导10-5图和10-6图,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,那个是应用程序的主线程,它和系统线程有什么区别? 答:进程列表中ID为31的进程是应用程序的进程,其优先级为8,包含1个线程,主线程ID为33,映像名称为a:\hello.exe。而ID为1的是系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程,系统进程没有映像名称。主要区别为:应用程序的进程优先级较低。 线程列表中ID为33的线程是应用程序的线程,其优先级为8,处在阻塞状态,而ID为20~28的是系统进程,其优先级为24,其中ID为22的处于运行状态

WINDOWS操作系统启动过程详解

WINDOWS操作系统启动过程详解 基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。 预引导阶段: 当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。 如果计算机BIOS是支持即插即用的(基本上,现阶段能够买到的计算机和硬件都是支持这一标准的),而且所有硬件设备都已经被自动识别和配置,接下来计算机将会定位引导设备(例如第一块硬盘,设备的引导顺序可以在计算机的BIOS设置中修改),然后从引导设备中读取并运行主引导记录(Master Boot Record,MBR)。至此,预引导阶段成功完成。 引导阶段: 引导阶段又可以分为:初始化引导载入程序、操作系统选择、硬件检测、硬件配置文件选择这四个步骤。在这一过程中需要使用的文件包括:Ntldr、Boot.ini、https://www.doczj.com/doc/d013005521.html,、Ntoskrnl.exe、Ntbootdd.sys、Bootsect.dos(非必须)。 初始化引导载入程序: 在这一阶段,首先出场的是ntldr,该程序会将处理器由实模式(Real Mode)切换为32位平坦内存模式(32-bit Flat Memory Mode)。不使用实模式的主要?因是,在实模式下,内存中的前640KB是为MS-DOS保留的,而剩余内存则会被当作扩展内存使用,这样Windows XP将无法使用全部的物理内存。而32位平坦内存模式下就好多了,Windows XP自身将能使用计算机上安装的所有内存(其实最多也只能用2GB,这是32位操作系统的设计缺陷)。 接下来ntldr会寻找系统自带的一个微型的文件系统驱动。大家都知道,DOS和Windows 9x操作系统是无法读写NTFS文件系统分区的,那么Windows XP的安装程序为什么可以读写NTFS分区?其实这就是微型文件系统驱动的功劳了。只有在载入了这个驱动之后,ntldr 才能找到硬盘上被格式化为NTFS或者FAT/FAT32文件系统的分区。如果这个驱动损坏了,就算硬盘上已有分区,ntldr也认不出来。 读取了文件系统驱动,并成功找到硬盘上的分区后,引导载入程序的初始化过程就已?完成了,随后我们将会进行下一步。 操作系统选择: 这一步并非必须,只有在计算机中安装了多个Windows操作系统的时候才会出现。不过无论计算机中安装了几个Windows,计算机启动的过程中,这一步都会按照设计运行一遍,但只有在确实安装了多个系统的时候,系统才会显示一个列表,让你选择想要引导的系统。 如果已经安装了多个Windows操作系统,那么所有的记录都会被保存在系统盘根目录下一个名为boot.ini的文件中。ntldr程序在完成了初始化工作之后就会从硬盘上读取boot.ini 文件,并根据其中的内容判断计算机上安装了几个Windows,它们分别安装在第几块硬盘的第几个分区上。如果只安装了一个,那么就直接跳过这一步。但如果安装了多个,那么ntldr就会根据文件中的记录显示一个操作系统选择列表,并默认持续30秒。如果你没有选

Windows启动过程详解

Windows启动过程详解 我们每天都在和Windows打交道,很多人可能每天都要面对多次W indows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。 本文的适用范围 随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前就有很多选择。当然,这里的选择并不是说AMD或者Intel这种产品品牌,而是指其内部的体系结构。目前常见的CPU体系结构主要基于复杂指令集(Complex I nstruction Set Computing,CISC)或者精简指令集(Reduced Ins truction Set Computing,RISC),我们常用的Intel的Pentium、C eleron系列以及AMD的Athlon、Sempron系列都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽区别。关于这些指令集以及寄存器数据带宽之间的区别等内容比较繁杂,而且不是本文的重点,感兴趣的朋友可以自己在网上搜索相关内容。因为CPU种类的不同,在不同CPU的系统中运行的Wind ows的启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位Windows XP Professional为例向

您介绍。 基本上,操作系统的引导过程是从计算机通电自检完成之后开始进行的,而这一过程又可以细分为预引导、引导、载入内核、初始化内核,以及登录这五个阶段。 在继续阅读之前,首先请注意图1,这是Windows XP的操作系统结构,其中包括了一些在后台工作的组件以及经常和我们打交道的程序。在了解Windows XP的启动过程之前,对系统结构有一个初步概念是很重要的。

计算机操作系统(第四版)课后习题答案第二章

第二章 1. 什么是前趋图?为什么要引入前趋图? 答:前趋图(Precedence Graph)是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系。 2. 画出下面四条诧句的前趋图: S1=a:=x+y; S2=b:=z+1; S3=c:=a-b; S4=w:=c+1; 答:其前趋图为: 3. 为什么程序并发执行会产生间断性特征? 程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。 4. 程序并发执行时为什么会失去封闭性和可再现性? 因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。而程序一旦失去了封闭性也会导致其再失去可再现性。 5. 在操作系统中为什么要引入进程概念?它会产生什么样的影响? 为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,从而在操作系统中引入了进程概念。影响: 使程序的并发执行得以实行。 6. 试从动态性,并发性和独立性上比较进程和程序? a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。 b. 并发性是进程的重要特征,同时也是OS的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。 c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。 7. 试说明PCB的作用?为什么说PCB是进程存在的唯一标志? a. PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。 b. 在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。 11.试说明进程在三个基本状态之间转换的典型原因。 答:(1)就绪状态→执行状态:进程分配到CPU资源(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成 12.为什么要引入挂起状态?该状态有哪些性质? 答:引入挂起状态处于五种不同的需要: 终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。处于挂起状态的进程不能接收处理机调度。10.在进行进程切换时,所要保存的处理机状态信息有哪些?答:进行进程切换时,所要保存的处理机状态信息有:(1)进程当前暂存信息(2)下一指令地址信息(3)进程状态信息(4)过程和系统调用参数及调用地址信息。13.在进行进程切换时,所要保存的处理机状态信息有哪些? 答:进行进程切换时,所要保存的处理机状态信息有: (1)进程当前暂存信息 (2)下一指令地址信息 (3)进程状态信息 (4)过程和系统调用参数及调用地址信息。 14.试说明引起进程创建的主要事件。答:引起进程创建的主要事件有:用户登录、作业调度、提供服务、应用请求。 15.试说明引起进程被撤销的主要事件。答:引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作系统干预、父进程请求、父进程终止)。 16.在创建一个进程时所要完成的主要工作是什么? 答:(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat();(2)申请空白PCB;(3)为新进程分配资源;(4)初始化进程控制块;(5)将新进程插入就绪队列. 17.在撤销一个进程时所要完成的主要工作是什么? 答:(1)根据被终止进程标识符,从PCB 集中检索出进程PCB,读出该进程状态。(2)若被终止进程处于执行状态,立即终止该进程的执行,臵调度标志真,指示该进程被终止后重新调度。(3)若该进程还有子进程,应将所

实验一操作系统的引导

羅莇莈莀芆罿膁实验目的<编辑> ?薆膀袄螄腿蝿蒀熟悉hit-oslab实验环境; ?羁羄薅芈薀袄螇建立对操作系统引导过程的深入认识; ?膃肃蒈肈肄莄螆掌握操作系统的基本开发过程; ?袅蚈袀芃膆袆葿能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 螈莈蒃蚄肆芁莃实验内容<编辑> 腿薃蒆芅蝿蒃蒃此次实验的基本内容是: 1.螃肃蒅薀蚃芄羇阅读《Linux内核完全注释》的第6章,对计算机和Linux 0.11的引导过程 进行初步的了解; 2.袅衿膈袂肆膇羁按照下面的要求改写0.11的引导程序bootsect.s 3.聿羀羂薄芇蕿羂有兴趣同学可以做做进入保护模式前的设置程序setup.s。 蒈膂莆蒇莁肂莃改写bootsect.s主要完成如下功能: 1.莂羃蚆袈节膄膈bootsect.s能在屏幕上打印一段提示信息“XXX is booting...”,其中XXX是 你给自己的操作系统起的名字,例如LZJos、Sunix等(可以上论坛上秀秀谁的OS名字最帅,也可以显示一个特色logo,以表示自己操作系统的与众不同。) 螅袆蚀蒂羆莈艿改写setup.s主要完成如下功能: 1.羆芈薁蒄薈肁薁bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而 setup.s向屏幕输出一行"Now we are in SETUP"。 2.肀螁芆蚈虿蚁芃setup.s能获取至少一个基本的硬件参数(如内存参数、显卡参数、硬盘参 数等),将其存放在内存的特定地址,并输出到屏幕上。 3.羁袃袇蒁袁肅膅setup.s不再加载Linux内核,保持上述信息显示在屏幕上即可。 蚅肇羈肁袆莅袁实验报告<编辑> 芇螀膀蒄蝿荿膁在实验报告中回答如下问题: 1.莈莀芆罿膁芀膃有时,继承传统意味着别手蹩脚。x86计算机为了向下兼容,导致启动过程 比较复杂。请找出x86计算机启动过程中,被硬件强制,软件必须遵守的两个“多此一举”的步骤(多找几个也无妨),说说它们为什么多此一举,并设计更简洁的替代方案。

多系统启动引导原理简介

多系统启动引导原理简介 多系统启动引导原理简介 大部分同学对多重系统引导原理的一知半解,我把我知道的简单介绍一下。 我先来介绍分区,从启动引导的角度讲,磁盘分区可以分为系统分区和引导分区。系统分区主要用于启动Windows系统,通常,系统分区总是C:\。而引导分区则是装有Windows操作系统的分区,即%SystemRoot%所在分区。 我们知道,主盘系统分区的第一个扇区中储存着系统的主引导记录,就是通常说的MBR区。它负责搜索磁盘上可启动的分区,然后把引导代码装入内存。对于DOS来说,MBR由Fdisk生成。主引导记录所在分区是系统分区,除此之外装有操作系统并能引导启动的分区是引导分区,引导分区的第一扇区储存着引导代码,用来引导本分区相应的操作系统。 下面我们来看下启动文件,Win98一般为: io.sys、msdos.sys、https://www.doczj.com/doc/d013005521.html,、config.sys、autoexec.bat。五个。其中最重要的是头三个,是启动必需要的。 Win2000/XP的启动文件:ntldr、https://www.doczj.com/doc/d013005521.html,、boot.ini、bootfont.bin、bootsect.dos、https://www.doczj.com/doc/d013005521.html,、ntbootdd.sys等。其中ntldr和https://www.doczj.com/doc/d013005521.html, 对于2000与XP共存的系统引导至关重要。 我简单介绍下各个文件的作用 ntldr,操作系统载入程序,位于系统分区根目录下。 boot.ini, 用于指定Windows的安装位置和磁盘属性。位于系统分区根目录下。bootfont.bin, 对非英文操作系统的启动菜单标题提供文字支持。不是必需的。bootsect.dos, 用于启动旧版操作系统所需要的引导扇区。 https://www.doczj.com/doc/d013005521.html,, 用于检测计算机的硬件配置信息,并将这些信息返回给ntldr。ntbootdd.sys, 当ATA技术被禁用或磁盘控制器是SCSI类型或磁盘控制器不支持扩展INT 13调用时,提供驱动支持。而不用通过BIOS来直接访问。不是必需的。 在含有98或更旧版的多重启动上,问题就复杂点,要由OS Loaer来引导启动。先来认识下OS Loaer,它是Windows自带的多操作系统引导管理工具。注意OS Loaer存在于引导分区第一扇区而非MBR,就是在98或更旧版本系统所在分区。而常见的几种引导工具软件如BootMagic和System Commander则位于MBR区。现在我们假设硬盘里装有98、2000、XP三个系统,那么系统启动时首先由BIOS 把MBR装入内存,并把控制权交给MBR引导启动,计算机搜索MBR中的分区表,找出活动分区,如果在引导分区中有OS Loaer时,主引导记录加载OS Loaer,由OS Loaer读取boot.ini文件,并出现启动选择菜单,如果用户选择启动Win98,那么就装载Bootsect.dos这个文件。Bootsect.dos文件是Win98引导扇区的镜像,位于系统分区根目录下。如果多个操作系统中没有9X或更旧版本的话,则该文件不会存在。如果选Win2000/WinXP,那么就装载Ntldr和https://www.doczj.com/doc/d013005521.html,,由Ntldr和Ntdetect引导启动Win2000/WinXP。(有必要说明一下,2000系统里的Ntldr和Ntdetect与XP里的Ntldr和Ntdetect是不同的,2000可由XP 的Ntldr和Ntdetect引导启动,反过来,2000里的Ntldr和Ntdetect却不能引导XP,这就是为什么在2000与XP共存的机里,重装了2000后不能引导XP 的原因。因为2000会用它的Ntldr和Ntdetect覆盖掉XP的) 呵呵我可能讲得有点啰嗦,不过大家看到这里也许明白我们在多系统环境下重装

电脑启动过程详解

电脑从按完开关加电开始直到进入到系统桌面的整个过程详解本文以Windows2000/xp和Windows Vista/7两个内核做讲解 电脑从加电到进桌面可以分为两大部分: 无论是Windows2000/XP还是Windows Vista/7,在硬件自检方面都是想同的,不同的是在系统加截。 硬件部分: 在讲解前,我们先来了解几个概念: BIOS:即“Basic Input/Output System”(基本输入输出系统),它是一组被“固化”在计算机主板上的一块 ROM 中直接关联硬件的程序,保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制,它包括系统 BIOS(主板 BIOS).其它设备 BIOS(例如 IDE 控制器 BIOS、显卡 BIOS 等)其中系统 BIOS 占据了主导地位.计算机启动过程中各个 BIOS 的启动都是在它的控制下进行的。 CMOS:即“Complementary Metal-Oxide-Semiconductor”(互补金属氧化物半导体),它本是计算机系统内一种重要的芯片,保存了系统引导最基本的资料。 内存地址:我们知道,内存空间的最基本单位是位,8 位视为一个字节,即我们常用的单位 B,内存中的每一个字节都占有一个地址(地址是为了让 CPU 识别这些空间,是按照 16 进制表示的),而最早的 8086 处理器只能识别 1MB(2 的 20 次方 B)的空间,这 1MB 内存中低端(即最后面)的 640KB 就被称为基本内存,而剩下的内存(所有的)则是扩展内存。这 640KB 的空间分别由显存和各 BIOS 所得。 我们来看一下硬件部分的流程图:

操作系统的启动流程

1、预引导(Pre-Boot)阶段 2、引导阶段 3、加载内核阶段 4、初始化内核阶段 5、登陆 每个启动阶段的详细介绍 一、预引导阶段在按下计算机电源使计算机启动, 并且在Windows XP操作系统启动之前这段时间, 我们称之为预引导(Pre-Boot)阶段, 在这个阶段里,计算机首先运行Power On Self Test(POST), POST检测系统的总内存以及其他硬件设备的现状。 如果计算机系统的BIOS(基础输入/输出系统)是即插即用的, 那么计算机硬件设备将经过检验以及完成配置。 计算机的基础输入/输出系统(BIOS)定位计算机的引导设备, 然后MBR(Master Boot Record)被加载并运行。 在预引导阶段,计算机要加载Windows XP的NTLDR文件。 二、引导阶段 Windows XP Professional引导阶段包含4个小的阶段。 首先,计算机要经过初始引导加载器阶段(Initial Boot Loader), 在这个阶段里,NTLDR将计算机微处理器从实模式转换为32位平面内存模式。 在实模式中,系统为MS-DOS保留640kb内存,其余内存视为扩展内存, 而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可用内存。 接着,NTLDR启动内建的mini-file system drivers, 通过这个步骤,使NTLDR可以识别每一个用NTFS或者FAT文件系统格式化的分区, 以便发现以及加载Windows XP Professional, 到这里,初始引导加载器阶段就结束了。 接着系统来到了操作系统选择阶段, 如果计算机安装了不止一个操作系统(也就是多系统), 而且正确设置了boot.ini使系统提供操作系统选择的条件下, 计算机显示器会显示一个操作系统选单, 这是NTLDR读取boot.ini的结果。 三、加载内核阶段在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。 系统加载了Windows XP内核但是没有将它初始化。 接着ntldr加载硬件抽象层(HAL,hal.dll),然后, 系统继续加载HKEY_LOCAL_MACHINE\system键, NTLDR读取select键来决定哪一个Control Set将被加载。 控制集中包含设备的驱动程序以及需要加载的服务。 NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为Control Set的镜像的Current Control Set被加载时, ntldr传递控制给内核,初始化内核阶段就开始了。 四、初始化内核阶段在初始化内核阶段开始的时候, 彩色的Windows XP的logo以及进度条显示在屏幕中央, 在这个阶段,系统完成了启动的4项任务: 内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。 内核通过引用HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了

操作系统原理与实践教程(第二版)第2章习题答案

第2章操作系统的界面 (1) 请说明系统生成和系统引导的过程。 解: 系统的生成过程:当裸机启动后,会运行一个特殊的程序来自动进行系统的生成(安装),生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:CPU类型、内存大小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。按照这些信息的指示,系统生成程序就可以正确地生成所需的操作系统。 系统引导的过程:系统引导指的是将操作系统内核装入内存并启动系统的过程。主要包括初始引导、内核初始化、全系统初始化。初始引导工作由BIOS完成,主要完成上电自检,初始化基本输入输出设备,载入操作系统内核代码等工作。内核被载入内存后,引导程序将CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以及对内核数据结构的初始化,如页表(段表)等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。 (2) 操作系统具有哪些接口?这些接口的作用是什么? 解: 操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。 操作系统包括三种类型的用户接口:命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。 (3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能? 解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,它们包括以下几个类别: 1.控制程序运行:系统通过服务将用户程序装入内存并运行该程序,并且要控制程序 在规定时间内结束。 2.进行I/O操作:用户是不能直接控制设备的,只能通过操作系统与外部设备进行交 互,由系统调用将结果显示在屏幕上或交给用户。 3.操作文件系统:为了保证实现“按名存取”,文件系统应该为用户提供根据文件名 来创建、访问、修改、删除文件的方法,以确保文件数据的安全可靠以及正确存取。 4.实现通信:操作系统需要提供多个程序之间进行通讯的机制,来控制程序的执行顺 序。 5.错误处理:操作系统通过错误处理机制,以便及时发现错误并采取正确的处理步骤, 避免损害系统的正确性和统一性。 (4) 系统调用的用途是什么? 解: 通常,在操作系统内核设置有一组用于实现各种系统功能的子程序(过程),并将它们提供给用户程序调用。每当用户在程序中需要操作系统提供某种服务时,便可利用一条系统调用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括: 1.进程控制类,主要用于进程的创建和终止、对子进程结束的等待、进程映像的替换、 进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等; 2.文件操纵类,主要用于文件的创建、打开、关闭、读/写及文件读写指针的移动和

嵌入式操作系统启动流程

1 什么是BSP: 1. 在通电后, 初始化硬件( bootrom ) 2. 支持VxWorks和硬件驱动通信(Image的底层驱动) 3. 本质上是硬件驱动、初始化的合集; 2 研究BSP内容: 1. 系统image的生成和image的种类 2. image的download 下载过程 3. 系统的启动顺序和过程 4. 调试环境的配置及远端调试的方式和方法 5. 相应BSP设置文件的修改(网络,串口..) 6. BSP各文件的组成和作用. 7. 要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解?主要是32微处理 器(上电启动过程,download image的方式方法,读写ROM地址空间分 配,MMU寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助. 3 BSP主要文件目录的组成及主要文件的作用: 3.1 目录target/config/All: 这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件. configAll.h: 缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用 #define或#口门def方式来更改设置. bootInit.c: 在romlnit.s 后,完成Boot ROM的第二步初始化.程序从romlnit.s 中的romlnit() 跳到这个文件中的romStart().来执行必要的解压和ROM image的放置. bootConfig.c: 完成Boot ROM image的初始化和控制. usrConfig.c: VxWorks image 的初始化代码. 3.2 目录target/config/comps/src: 涉及系统核心的components, 主要由target/config/All 中usrConfig.c 中函数调用 3.3 目录target/config/bspname: 包含系统或硬件相关的BSP文件.

嵌入式操作系统启动流程

1什么是BSP: 1.在通电后,初始化硬件(bootrom) 2.支持VxWorks和硬件驱动通信(Image的底层驱动) 3.本质上是硬件驱动、初始化的合集; 2研究BSP内容: 1.系统image的生成和image的种类 2.image的download下载过程 3.系统的启动顺序和过程 4.调试环境的配置及远端调试的方式和方法 5.相应BSP设置文件的修改(网络,串口..) 6.BSP各文件的组成和作用. 7.要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解.主 要是32微处理器(上电启动过程, download image的方式方法,读 写ROM,地址空间分配,MMU,寄存器,中断定义,..).参照硬件资料, 多读一些源码会有所帮助. 3BSP主要文件目录的组成及主要文件的作用: 3.1目录target/config/All: 这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件.

configAll.h: 缺省定义了所有VxWorks的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用#define或#undef方式来更改设置. bootInit.c: 在romInit.s后,完成Boot ROM的第二步初始化.程序从romInit.s中的romInit()跳到这个文件中的romStart().来执行必要的解压和ROM image的放置. bootConfig.c:完成Boot ROM image的初始化和控制. usrConfig.c: VxWorks image的初始化代码. 3.2目录target/config/comps/src: 涉及系统核心的components,主要由target/config/All中usrConfig.c中函数调用 3.3目录target/config/bspname: 包含系统或硬件相关的BSP文件. Makefile 一些命令行控制images的生成,参见BSP设置部分及生成下载 README BSP发布纪录,版本,总的文档 config.h 包括所有涉及CPU主板的设置及定义(includes,definations),参见BSP设置文件及生成下载 configNet.h 网络驱动的主要设置文件,主要对END驱动设置. romInit.s 汇编语言文件,是VxWorks Boot ROM和ROM based image的入口,参见系统启动部分

计算机操作系统实验_操作系统引导

西北工业大学操作系统实验实验报告 一、实验目的 熟悉GeekOS实验环境。 二、实验要求 编译运行操作系统的启动代码。 三、实验过程及结果 1、编写第一个“操作系统”,代码如下: org 07c00h mov ax,cs mov ds,ax mov es,ax call DispStr jmp $ DispStr: mov ax,BootMessage mov bp,ax mov cx,16 mov ax,01301h mov bx,00aeh mov dl,0 int 10h ret BootMessage: db "hello,OS world!" times 510-($-$$) db 0 dw 0xaa55 结果如图:

修改boot.asm,修改文字颜色,代码如下: org 07c00h mov ax,cs mov ds,ax mov es,ax call DispStr jmp $ DispStr: mov ax,BootMessage mov bp,ax mov cx,16 mov ax,01301h mov bx,00aeh //在此处修改BL的值,可以修改颜色mov dl,0 int 10h ret BootMessage: db "hello,OS world! " times 510-($-$$) db 0 dw 0xaa55 结果如图:

2.在bochs中运行geek OS,结果如图: 四、实验分析 思考:引导扇区的标志是0x55AA,为何代码中写入的却是dw 0xAA55? 答:因为存储时低位在前,高位在后,所以代码中高低位反过来写。 五、所遇问题及解决方法 答:实验过程中,最大的困难就是理解geek OS的代码。一个原因是我们没有学过有关汇编的知识,导致代码中有关汇编的部分一头雾水,难以理解;另一方面是之前自己接触的源码比较少,第一次见到geek OS这么大的工程代码,感觉理解起来很困难,不过,在老师花费了几个小时的讲解下,我最终还是勉强理解了一部分。 这次实验收获有很多,首先是在老师的帮助下掌握了一些有关汇编语言的知识,让我对硬件的一些操作有了初步的了解;其次是初步阅读geek OS源码之后,我对一些系统底层的实现有了更深的了解,让我对操作系统的基本原理和实现方式有了更直观的认识。

相关主题
文本预览
相关文档 最新文档