操作系统实验-第二讲、操作系统的启动
操作系统的系统启动与初始化流程
![操作系统的系统启动与初始化流程](https://img.taocdn.com/s3/m/616c5b832dc58bd63186bceb19e8b8f67c1cef1d.png)
操作系统的系统启动与初始化流程在计算机系统中,操作系统负责管理和控制计算机资源的分配和调度,从而提供基本的软硬件支持,保证计算机系统正常运行。
而操作系统的启动与初始化流程是指在计算机开机后,操作系统从停机状态到正常运行状态的过程。
本文将详细介绍操作系统的系统启动与初始化流程。
1、BIOS自检及启动引导当计算机按下电源按钮后,计算机首先进入了基本输入/输出系统(BIOS)的自检阶段。
BIOS会对计算机的硬件进行自检,包括检测内存、硬盘、键盘等外部设备的状态和连接情况。
同时,BIOS还会查找并加载启动引导程序。
启动引导程序位于硬盘或其他存储设备的引导扇区中,其作用是加载操作系统的核心组件。
2、加载操作系统核心组件启动引导程序会读取硬盘上的引导扇区中的信息,找到并加载操作系统的核心组件。
操作系统的核心组件通常包括内核、驱动程序和基本的系统工具。
内核是操作系统的核心部分,负责管理计算机的所有硬件和软件资源。
驱动程序是用于控制各种硬件设备的软件模块,确保硬件设备能够正常工作。
基本的系统工具包括文件管理器、任务管理器等,用于提供用户界面和操作系统的基本功能。
3、初始化操作系统的各种服务和功能在操作系统的核心组件加载完成后,操作系统会进行初始化,包括初始化各种系统服务和功能。
这些系统服务和功能包括进程管理、内存管理、文件系统、网络连接等。
进程管理负责管理和调度计算机中的各个进程,确保每个进程能够得到合理的资源分配和调度。
内存管理负责管理计算机的物理内存和虚拟内存,对内存的分配、回收和交换进行管理。
文件系统负责管理计算机中的文件和目录,提供对文件的访问和存储功能。
网络连接负责管理计算机与外部网络的连接和通信。
4、加载用户界面在操作系统的各种服务和功能初始化完成后,操作系统会加载用户界面。
用户界面是用户与计算机进行交互的接口,通常包括命令行界面和图形界面两种形式。
命令行界面提供了通过输入命令来操作计算机的方式,而图形界面则提供了更加直观和友好的操作方式,通过鼠标和图形元素来操作计算机。
操作系统启动的流程
![操作系统启动的流程](https://img.taocdn.com/s3/m/c812d4644a73f242336c1eb91a37f111f1850ded.png)
操作系统启动的流程操作系统启动是计算机系统中非常重要的一个过程,它负责将计算机硬件初始化并加载操作系统内核,使计算机能够正常运行。
操作系统启动的流程一般包括以下几个步骤:首先是BIOS自检。
当计算机开机时,BIOS(基本输入/输出系统)会首先进行自检,检测计算机硬件是否正常工作。
这个过程包括检测内存、硬盘、显卡等硬件设备,以确保它们能够正常工作。
接着是引导加载程序。
BIOS会在自检完成后,根据设定的启动顺序(通常是先从硬盘启动)来加载引导加载程序。
引导加载程序通常存储在硬盘的引导扇区中,它的作用是加载操作系统内核并将控制权交给操作系统。
然后是加载操作系统内核。
引导加载程序会读取操作系统内核的镜像文件,并将其加载到内存中。
操作系统内核是操作系统的核心部分,负责管理计算机的资源、调度任务、提供系统调用等功能。
接着是初始化操作系统。
一旦操作系统内核加载到内存中,操作系统会开始初始化各种系统服务和驱动程序,以确保计算机能够正常运行。
这个过程包括初始化文件系统、网络服务、设备驱动程序等。
最后是启动用户界面。
一旦操作系统初始化完成,用户界面就会被启动,用户可以通过键盘、鼠标等输入设备与计算机进行交互。
用户界面通常包括桌面、任务栏、应用程序等,用户可以通过它们来操作计算机。
总的来说,操作系统启动的流程是一个复杂而精密的过程,它涉及到硬件初始化、引导加载、内核加载、系统初始化等多个环节。
只有这些步骤都顺利完成,计算机才能够正常启动并运行。
操作系统启动的流程虽然在用户看来是透明的,但却是计算机系统中至关重要的一环。
计算机基础课程第二章 操作系统 第二讲
![计算机基础课程第二章 操作系统 第二讲](https://img.taocdn.com/s3/m/6560d8dfb14e852458fb57bb.png)
6、设置日期和时间的方法?
在控制面板中双击日期和时间图表,用户在该对话框中进行日期和时间设置。
7、应用程序的安装、运行与删除?
1)安装:有些以用软件放入光盘驱动器后,系统将自动启动安装程序,双击Setup或Install名称图表,也可以进行安装,在我的电脑中直接双击该软件图标进行安装。
2)用鼠标右键单击要删除的文件和文件夹,在快捷菜单中选择删除。
4、文件夹有几种属性?
三种:只读、隐藏、存档
5、设置显示属性的方法?
1)设置主题,打开显示属性左上角的主题,Windows XP提供若干桌面主题,在里面可以任意选择。
2)设置桌面背景,打开选项卡,在背景列框中选择背景图片,屏幕就变成为你所选择的图片,还可以打开浏览对话框选择背景图片。背景图片显示的三种方式:平铺、拉伸和居中。
2、移动、复制、粘贴文件和文件夹的方法?
1)在同一驱动下移动文件夹下,直接移动即可,复制时要选中文件的同时按下Ctlr键,拖至目标文件。
2)在不同驱动下,选中文件的同时按下Shfit键,拖至目标文件下,复制直接拖动即可。
3)使用编辑菜单中的命令。
3、删除文件和文件夹的两种方法?
1)选定要删除的文件和文件夹,按下Delete键或者执行菜单下删除。
3)应用程序怎样安装、运行与删除?
教长签名教务科长签名
年月日
授课日期
授课节次
授课班级
教学目的
1、掌握数据录入及中文输入法的基本方法
2、掌握文件和文件夹的创建、移动、复制、删除和重命名
深入解析电脑操作系统的启动过程
![深入解析电脑操作系统的启动过程](https://img.taocdn.com/s3/m/b35a99d850e79b89680203d8ce2f0066f533643c.png)
深入解析电脑操作系统的启动过程电脑操作系统是一台计算机中最重要的软件系统,它负责管理和控制计算机的硬件资源,提供用户与计算机之间的接口。
计算机系统的启动过程是指从计算机通电到操作系统完全加载并准备好接受用户操作的一系列步骤。
本文将深入解析电脑操作系统的启动过程,并分为硬件启动、引导加载和操作系统初始化三个部分进行阐述。
一、硬件启动当计算机通电时,硬件设备开始自检和初始化。
自检过程主要包括CPU、内存、硬盘等硬件设备是否正常工作,以及与外部设备的连接是否良好等。
通过自检,计算机系统能够确保硬件设备的正常运行状态。
接着,计算机会加载BIOS(Basic Input/Output System,基本输入输出系统),BIOS是计算机系统的基本固件,负责将计算机硬件连接到操作系统。
在计算机通电后,BIOS会读取存储在CMOS中的设置信息,包括硬件设备的参数、启动顺序等。
根据这些设置,BIOS会选择相应的设备作为引导设备,用于加载操作系统。
二、引导加载计算机开始引导加载操作系统。
根据BIOS中的设置,计算机会首先寻找引导设备上的引导代码。
在实际操作中,通常是从硬盘的主引导记录(Master Boot Record,MBR)中加载引导代码。
MBR是硬盘上的一个特殊扇区,它包含了引导代码和硬盘分区表。
当计算机找到MBR后,会将其中的引导代码加载到内存中,并执行该代码。
引导代码通常被称为引导加载程序(Bootloader),它的功能是加载操作系统的核心部分。
引导加载程序根据操作系统所在的文件系统类型以及文件路径,找到操作系统文件的位置,并将其加载到内存中。
不同的操作系统可能有不同的引导加载程序,如Windows系统的NTLDR(New Technology Loader)、GRUB(GNU GRand Unified Bootloader)等。
引导加载程序的主要任务是将控制权交给操作系统内核。
三、操作系统初始化操作系统内核被加载到内存后,计算机开始进行操作系统的初始化工作。
操作系统系统启动原理
![操作系统系统启动原理](https://img.taocdn.com/s3/m/5b9a7156b6360b4c2e3f5727a5e9856a561226e9.png)
操作系统系统启动原理
操作系统的系统启动原理可以简要地描述为以下几个步骤:
1. 加电自检(Power-On Self-Test,POST):计算机启动时,
硬件会自动进行自检,检查CPU、内存、硬盘等硬件是否正
常工作,并进行初始化设置。
2. 加载BIOS和引导程序:BIOS(基本输入/输出系统)是计
算机硬件与操作系统之间的程序接口,负责初始化硬件设备,并加载引导程序。
在BIOS中,会设置引导设备的优先级,一
般情况下首先尝试从硬盘启动。
3. 主引导记录(Master Boot Record,MBR):在硬盘的第一
个扇区中,有一个特殊的区域,里面包含了引导程序和分区表。
当BIOS将控制权转交给硬盘时,会读取MBR中的引导程序。
4. 引导加载程序:引导程序的任务是根据分区表的信息,将控制权转交给操作系统的引导扇区。
引导加载程序一般会检测分区中的文件系统类型,并加载相关的文件系统驱动程序。
5. 操作系统引导:操作系统引导程序负责加载操作系统内核,并将控制权转交给操作系统。
操作系统内核会进行初始化设置,并启动系统服务和驱动程序。
6. 用户登录:一旦操作系统启动成功,会显示登录界面,用户可以输入用户名和密码进行登录。
总的来说,操作系统的系统启动原理是通过硬件的自检和初始化设置,加载引导程序和操作系统内核,最终进入用户登录状态。
不同的操作系统可能在细节上有所不同,但整体的启动过程基本类似。
操作系统启动原理
![操作系统启动原理](https://img.taocdn.com/s3/m/6b811da2162ded630b1c59eef8c75fbfc77d94c1.png)
操作系统启动原理
操作系统启动原理是计算机系统中非常重要的一部分,它负责将计算机系统从关机状态转换为可运行状态,并加载操作系统的核心程序到计算机的主内存中。
操作系统的启动过程一般分为硬件初始化、引导加载和操作系统加载三个阶段。
在硬件初始化阶段,计算机的硬件设备会进行自检和初始化,以确保所有硬件设备工作正常。
接下来,在引导加载阶段,计算机会根据硬件设备的启动设备设置,尝试从指定的引导设备中读取引导程序。
引导程序的作用是加载操作系统的核心程序,它通常位于引导设备的引导扇区中。
当引导程序被成功加载到主内存后,计算机进入操作系统加载阶段。
在操作系统加载阶段,引导程序将控制权交给操作系统的核心程序。
核心程序的主要功能是初始化系统资源、建立操作系统的执行环境,然后启动操作系统的主进程。
操作系统的主进程负责进一步初始化系统资源,加载设备驱动程序,并提供操作系统的各种服务和功能。
总的来说,操作系统的启动原理可以概括为硬件初始化、引导加载和操作系统加载三个阶段,其中引导加载阶段是操作系统启动的关键。
通过这个过程,计算机能够顺利地启动并加载操作系统,为用户提供多种功能和服务。
操作系统启动过程
![操作系统启动过程](https://img.taocdn.com/s3/m/6de155d718e8b8f67c1cfad6195f312b3169ebf5.png)
操作系统启动过程操作系统是计算机系统中的核心组件,承担着管理计算机硬件资源和提供用户与计算机系统之间的接口功能。
当计算机通电或重启时,操作系统需要进行一系列的启动过程以确保系统的正常运行。
本文将介绍操作系统的启动过程,并探讨其中的重要步骤和关键环节。
一、引导加载程序(Bootloader)在计算机启动过程中,首先加载的是引导加载程序(Bootloader),也称为引导管理器。
引导加载程序存储在计算机硬件中的固定位置,通常是硬盘的主引导记录(MBR)或可插拔介质中的特定区域。
其主要功能是加载操作系统的核心部分,使计算机能够进入操作系统的启动阶段。
引导加载程序的启动过程可以分为以下几个步骤:1. BIOS自检:计算机通电后,首先由基本输入输出系统(BIOS)进行自检。
BIOS通过检测内存、键盘、鼠标等硬件设备,确保它们的正常工作状态。
2. 引导设备选择:BIOS在自检完成后,会从配置中选择引导设备,查找包含引导加载程序的存储介质。
常见的引导设备包括硬盘、光盘、USB闪存驱动器等。
3. 引导加载程序加载:一旦选择了引导设备,BIOS将读取引导设备上的引导加载程序,并将其加载到计算机的内存中。
二、操作系统内核加载引导加载程序完成后,将控制权交给操作系统的内核。
内核是操作系统的核心部分,负责管理计算机系统的各项功能和资源。
操作系统的内核可进一步分为微内核和宏内核两种不同的架构。
1. 微内核加载:微内核是一种较小、精简的内核架构,只包含操作系统的基本功能。
在微内核加载过程中,内核会完成相关初始化操作,并开始加载其他系统组件。
2. 宏内核加载:宏内核相对于微内核来说更庞大,包含了许多内置的系统组件。
宏内核加载过程中,内核会初始化各个组件,并建立进程管理、内存管理、文件系统等关键功能。
三、初始化操作操作系统内核加载后,系统进入初始化阶段,进行各项系统和硬件资源的初始化工作。
这包括以下几个方面:1. 硬件初始化:操作系统需要与各种硬件设备进行通信,例如显示器、键盘、鼠标、网卡等。
第02讲 Windows操作系统
![第02讲 Windows操作系统](https://img.taocdn.com/s3/m/5092687a7fd5360cba1adb3a.png)
第二讲 Windows操作系统
第二讲 Windows操作系统
第二讲 Windows操作系统 办公自动化一
学习内容
1
认识Windows操作系统
2
系统约定与基本操作
文件操作
3
4
系统设置
办公自动化一
第二讲 Windows操作系统
认识Windows操作系统 Windows是多用户多任务图形化界面的窗口 操作系统,它一方面管理维护系统资源;另一 方 面 为 应 用 软 件 提 供 运 行 平 台 。
输入以下文字:
Windows◎是微软(Microsoft★)公司开发的系统软件; 我们使用的Windows版本是:Windows XP。 正确的关机方法是: 打开“开始”菜单→选择“关闭计算机” →单击“关机” 按钮。
办公自动化一
第二讲 Windows操作系统
文件操作
管理计算机中的文件使用“我的电脑”或“资源管理器”。 双击桌面上的 “我的电脑”图标 打开右侧窗口 “我的电脑”窗口
办公自动化一
第二讲 Windows操作系统
文件操作
新建文件夹与文件
方法一:在需要创建文件夹的窗口中空白处单击鼠标右键, 在打开的快捷菜单中选择“新建”中选择需要新建的内容。 方法二:在窗口的“文件”菜单中选择“新建”中选择需 要新建的内容。
办公自动化一
第二讲 Windows操作系统
文件操作
选择文件(夹)
文件操作
访问磁盘或文件夹
在左侧树形目标中选 择磁盘或右工作区中 双击磁盘或文件夹打 开文件夹。 若知道文件夹路径可 路径表示格式 在“地址”栏输入完 驱动器名称:“C:”、“D:”、“E:”…… 整文件夹路径,如: “\”:表示其内部的。 “C:\windows”。 例: C:\a\b\c表示C盘下的a文件夹中的b文件夹中的c文件夹
了解计算机操作系统的启动流程和功能
![了解计算机操作系统的启动流程和功能](https://img.taocdn.com/s3/m/2a7c888709a1284ac850ad02de80d4d8d15a01ba.png)
了解计算机操作系统的启动流程和功能计算机操作系统是一种管理和控制计算机硬件和软件资源的软件系统。
它负责启动计算机、分配资源、管理文件系统、提供安全保护等。
了解计算机操作系统的启动流程和功能,对我们理解计算机工作原理、诊断和解决问题都具有重要意义。
本文将详细介绍操作系统的启动流程和功能。
一、计算机操作系统的启动流程:1. 加电启动- 用户按下计算机的电源按钮,计算机开始供电。
- 供电后,计算机的BIOS(基本输入输出系统)开始工作。
- BIOS进行自检,检测内存、硬盘、显示器等硬件设备是否正常。
- 自检完成后,BIOS读取硬盘上的引导扇区信息。
2. 引导加载- 引导扇区包含引导程序,也称为引导加载器(Boot Loader)。
- 引导加载器的主要功能是加载操作系统内核到内存中,并将控制权转交给内核。
- 引导加载器通常会提供一个可选择的菜单,供用户选择不同的操作系统。
3. 内核启动- 引导加载器将控制权转交给操作系统内核。
- 内核启动后,会进行系统初始化,包括配置内存管理、设备驱动、创建进程等。
- 内核将初始化后的系统状态保存到内存中的数据结构中。
4. 用户空间载入- 内核加载完成后,会运行第一个用户程序,通常是init进程。
- init进程是用户空间的第一个进程,负责启动其他用户进程和系统服务。
- 用户空间程序包括各种应用程序、服务、Shell等。
二、计算机操作系统的功能:1. 进程管理- 进程管理是操作系统的核心功能之一,负责创建、调度和终止进程。
- 操作系统通过分时调度算法,使多个进程能够共享CPU时间片。
- 进程管理还包括进程间通信、进程同步等。
2. 内存管理- 内存管理是操作系统的另一个重要功能,负责管理计算机的内存资源。
- 内存管理包括内存分配、内存保护、内存回收等。
- 操作系统通过虚拟内存技术,将物理内存扩展到逻辑上更大的地址空间。
3. 文件系统- 文件系统是操作系统用于管理和组织文件的一种机制。
操作系统实验第二讲、操作系统的启动
![操作系统实验第二讲、操作系统的启动](https://img.taocdn.com/s3/m/7584b43330b765ce0508763231126edb6f1a768e.png)
解决方案:修复或 重新编写初始化脚 本,确保其正确性 和完整性。同时, 检查依赖项是否已 正确安装和配置。
预防措施:定期备 份脚本文件,并确 保系统环境的一致 性和稳定性。
用户空间进程无法正常启动
常见问题:系统启动时出现错误提示,用户空间进程无法正常启动
解决方案:检查系统日志,查看是否有异常错误信息;尝试重新安装或更新用户空间应 用程序
内核无法加载或崩溃
常见原因:系统 文件损坏或丢失
解决方案:使用 系统修复盘或恢 复模式进行修复
预防措施:定期 备份系统文件, 确保系统稳定性
注意事项:避免 在内核加载过程 中强制关机或重 启
系统初始化脚本错误
描述:系统启动时, 初始化脚本发生错 误,导致系统无法 正常启动。
常见原因:脚本文 件损坏、脚本编写 错误、依赖项缺失 等。
加载内核
操作系统启动过程 中,内核是首先被 加载到内存中的组 件
内核是操作系统的 核心,负责管理系 统的硬件和软件资 源
内核加载完成后, 操作系统会进行初 始化,包括设置系 统环境、启动服务 等
内核的加载方式有 多种,如直接从硬 盘启动、从网络启 动等
初始化内核
加载内核:将内核映像从硬盘加载到内存中 初始化硬件:检测和配置硬件设备,为系统启动做好准备 启动引导加载程序:引导加载程序负责加载和启动内核 内核初始化:内核执行初始化操作,为系统启动做好准备
内核启动参数可以影响操作 系统的性能和安全性
内核启动参数的具体设置取 决于操作系统的版本和配置
需求
系统初始化脚本的配置文件
配置文件的位置:/etc/rc.conf 配置文件的内容:包括系统启动时需要运行的命令、启动参数等 配置文件的格式:使用Shell脚本语法编写 配置文件的权限:需要设置为只有root用户可读写
操作系统实验-第二讲、操作系统的启动#(精选.)
![操作系统实验-第二讲、操作系统的启动#(精选.)](https://img.taocdn.com/s3/m/f4508ad1ec3a87c24028c4b7.png)
操作系统实验报告哈尔滨工程大学计算机科学与技术学院第二讲操作系统的启动一、实验概述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,说明高地址端是空白的。
系统启动过程详解
![系统启动过程详解](https://img.taocdn.com/s3/m/b7364e37ee06eff9aef807f5.png)
电脑及操作系统的启动过程从按下机箱电源键开始,直到用户进入操作系统,操作系统正常启动,整个过程可分为以下几个部分。
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文件。
首先先解释一些基本概念:BIOS(Basic Input Output System)基本输入输出系统,BIOS是主板上的一块EPROM 或EEPROM芯片,它为操作系统提供了控制硬件设备的基本功能,里面装有系统的重要信息和设置系统参数的设置程序(BIOS Setup程序);CMOS是主板上的一块可读写的RAM 芯片,里面装的是关于系统配置的具体参数,其内容可通过设置程序进行读写。
CMOS RAM 芯片靠后备电池供电,即使系统掉电后信息也不会丢失。
BIOS与CMOS既相关又不同:BIOS 中的系统设置程序是完成CMOS参数设置的手段;CMOS RAM既是BIOS设定系统参数的存放场所,又是BIOS设定系统参数的结果。
即“通过BIOS设置程序对CMOS参数进行设置”DMA是(Direct Memory Access),直接内存访问,它是一种高速的数据传输操作,允许在外部设备和存储器之间直接读/写数据,既不通过CPU也不需要CPU干预,很大程度上减轻了CPU资源占有率,使整个计算机系统的效率大大提高,也加快了系统启动速度。
操作系统 操作系统的启动
![操作系统 操作系统的启动](https://img.taocdn.com/s3/m/792e9ffff90f76c660371a02.png)
操作系统实验报告哈尔滨工程大学软件学院第二讲操作系统的启动一、实验概述1. 实验名称操作系统的启动2. 实验目的跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。
3. 实验类型(验证、设计)验证4. 实验内容4.1 准备实验4.2 调试EOS操作系统的启动过程4.2.1 使用Bochs做为远程目标机4.2.2 调试BIOS程序4.2.3 调试软盘引导扇区程序4.2.4 调试加载程序4.2.5 调试内核4.2.6 EOS启动后的状态和行为二、实验环境实验使用的操作系统:Wingdows xp实验工具:Oslab三、实验过程实验过程:1.查看CPU在没有执行任何指令之前主要寄存器中的数据,以及内存中的数据:1. 1启动调试后在Console窗口中输入调试命令sreg后按回车,显示当前CPU 中各个段寄存器的值,如图1.1。
图1.11.2输入调试命令r后按回车,显示当前CPU中各个通用寄存器的值,如图1.2图1.21.3.输入调试命令xp /1024b 0x0000,查看开始的1024个字节的物理内存。
如图1.3图1.3在Console中输出的这1K物理内存的值都为0,说明BIOS中断向量表还没有被加载到此处。
如图1.31.4.输入调试命令xp /512b 0x7c00,查看软盘引导扇区应该被加载到的内存位置。
如图1.4图1.4输出的内存值都为0,说明软盘引导扇区还没有被加载到此处。
可以验证BIOS第一条指令所在逻辑地址中的段地址和CS寄存器值是一致的,偏移地址和IP寄存器的值是一致的。
由于内存还没有被使用,所以其中的值都为0。
2. BIOS在执行完自检和初始化工作后,会将软盘引导扇区加载到物理地址0x7c00-0x7dff位置,并从0x7c00处的指令开始执行引导程序,所以接下来练习从0x7c00处调试软盘引导扇区程序:2.1. 输入调试命令vb 0x0000:0x7c00,这样就在逻辑地址0x0000:0x7c00(相当于物理地址0x7c00)处添加了一个断点。
操作系统的启动流程
![操作系统的启动流程](https://img.taocdn.com/s3/m/d28ddaa3bdeb19e8b8f67c1cfad6195f312be8d0.png)
操作系统的启动流程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。
操作系统启动过程
![操作系统启动过程](https://img.taocdn.com/s3/m/93018f354a73f242336c1eb91a37f111f1850dcb.png)
操作系统启动过程系统的启动过程:任何一台计算机,在开机后,它要做的第一件事情就是引导(Booting),通过引导,计算机为自身搭建好运行环境,为以后OS的启动与运行做好准备.首先,我们来看看一台计算机是如何引导自身的.在机器加电后,电源供电稳定后,电源会传给8284A时钟生成器一个"Power Good"低电位信号,随后8284A会输出有效的RESET信号,使CPU复位,这时CS:IP = FFFF:0000.CPU在这里执行一条jmp far addr类指令,跳转到实际BIOS映射代码的位置,开始执行BIOS代码.上述是机器在加电后的启动过程,大家都知道计算机的启动是分为冷启动与热启动的,那么对于热启动,其过程又是怎样的呢?其实热启动只不过是将键盘中断程序置复位标志为1234h,然后再跳转到BIOS处执行,其主要是省去了在自检过程中对存储器的检测.在跳转到BIOS后,首先会先关闭中断,然后开始自检(POST)工作,这个自检主要检测计算机最基本设备的运转状态.其主要包括对,CPU内部寄存器测试,BIOS芯片字节的检查,8237 DMA控制器测试,基本32K RAM检测等最基本内容.由于被检测设备在系统运行中的重要性,因此在此过程中,BIOS一旦检测到任何异常,都将判为致命性错误,系统将被停机.通过上面的自检后,BIOS开始初始化8259可编程中断控制器,并设置BIOS的8个主要中断向量(int 10h-int 17h),然后初始化并测试CRT 视频接口以及显示内存(对于热启动这一步将跳过),在确认正常后,执行其内部的显示卡标准驱动程序(注意这里的驱动跟安装操作系统下的驱动是不一样的),这段代码会存放在C0000h,其主要目的是初始化显示卡.然后BIOS会打印显卡信息.接着BIOS开始检查其他设备,其包括对8259中断控制器测试,8253定时器测试,键盘复位和卡键测试,扩展I/O测试,设置硬件中断向量,扩展RAM测试(这里的RAM测试会检测除0-32K以外的整个RAM空间,对于热启动同样也会跳过这一阶段),.然后BIOS会搜索其他设备的ROM,如果找到,则会执行它们.接着测试ROM-BASIC的字节检查,测试磁盘驱动器(如:FDC等),测试打印机端口和RS-232,并设置他们的地址.然后打开NMI(不可屏蔽中断),最后就是调用Int 19h进行自举.这一阶段的自检如果发生错误,系统会判断其为一般性错误,并显示出相应的提示信息.在此过程中,BIOS会将检测收集到的数据保存在内存低1K--2K的区域,并将BIOS中断向量表,以及BIOS程序运行所需要的stack保存在内存低0K--1K的地方.下面就是系统自举工作了,系统调用int 19h进行自举,寻找启动设备,如:软驱,硬盘,光驱等等.找到后系统读取启动设备的0号逻辑扇区(如是软盘就读取0面0道1扇区的整个内容),并将读取的内容放到内存地址为0000:7C00的地方.当然,如果找不到启动设备,BIOS就会调用Int 18h,并给出相应的提示信息,然后进入ROM-BASIC.(有些机器会在等待一段时间后自动进入CMOS.如:很久以前海洋的AMD 386DX/40主板)至此,BIOS的引导程序结束,CPU开始执行0000:7C00处的代码.在这里需要说明一下的是,BIOS的引导程序是与操作系统无关的,但随后CPU开始执行的代码就开始与操作系统存在较大的相关性了,因此对于不同的操作系统,下面这一部分可能会存在着较大的不同.不过,从目的上来讲,它们是相同的,即都是为将要运行OS的内核(Kernel)作准备.进入这一部分的首要工作就是执行启动设备的引导程序.硬盘与软盘的对于引导程序的存放结构是不同的.硬盘有一个叫做MBR (Master Boot Record)的扇区,系统会首先执行它,以判断那个分区是启动分区,并读入该分区的第一个扇区,并执行.并且在这个扇区中还存放着硬盘分区表(DPT),这个表的地位相当重要,因为它包含了各个分区的诸如:分区类型,起始位置,结束位置等重要参数.下面我们来详细介绍一下MBR的结构.MBR的结构分为三部分,首先是可执行代码,占446个字节,然后是4个分区表,每个占16个字节,共64个字节,最后是签字AA55H.下表列出了分区信息的详细内容:长度描述0 字节分区状态0:非活动分区,80h活动分区(可引导)1 字节分区起始头2 字分区起始扇区和起始柱4 字节分区类型5 字节分区中止头6 字分区中止扇区和中止柱8 双字分区起始绝对扇区0Ch 双字分区扇区数然后我们开始介绍MBR中的可执行代码部分:首先,程序会检测MBR的签字是否合法,即判断其最后字是否为AA55h.通过后,将自身移动到内存中的其他地方,以备将来在此装入引导分区的Boot扇区.然后,程序检查四个分区的分区状态,找出活动分区,并将该分区的Boot扇区读入到0000:7C00h处,并检查其签字是否合法,在通过后,程序跳转到0000:7C00h处执行,即将控制权交给活动分区的Boot程序;对于软盘则没有那么复杂,软盘的第一个扇区就是它的Boot区,系统自举时将直接将其读入到0000:7C00h处并执行.从功能上来讲软盘与硬盘的Boot区是相同的,其任务都是将OS的内核(Kernel)读入到内存并执行.但具体来看,由于绝大多数OS的Kernel是以文件形式存放在磁盘上的,要读取它就要涉及到对文件系统的操作,这使得它们在实现上又是很不相同的.因此,对于Boot区的分析我们将放在后面的内容中具体介绍.2.保护模式简述最早的Intel系列的CPU只存在一种操作模式,即现在所说的实模式(Real Mode,以下简称RM).在Intel推出80286之后,为了增强CPU 的处理能力,同时也为了适应当时的软件开发需求,Intel提出了保护模式(Protected Mode,以下简称PM),但在80286下的PM由于CPU本身设计的问题,并没有使其发挥出很大的功效.在80386推出之后,Intel完善了 CPU的设计形成了最终的IA-32架构,并提出了另一种模式系统管理模式(System Management Mode).本章我们的讨论就围绕着这三种模式进行展开,并重点讨论PM.首先,对这三种模式做一简单概述.RM:此模式是主机在加电或复位后自动进入的模式,在此模式下其可以执行16位指令,并可以切换到PM或者SMM.PM:在此模式下,CPU能够支持其自身的32位特性,使自身处于最高性能表现.这些特性主要包括:1.最大可访问4GB内存空间.事实上,在RM下通过一些未公开的特性,也可以达到同样的效果,但其对于代码段和堆栈空间却是无效的.况且后面的所有特性都是基于PM的,对RM没有效果.2.虚拟存储.处于PM下的CPU其内存管理单元(MMU)支持这项特性.前面我已经说到,在PM下CPU最大寻址空间为4GB,而在实际中,我们并没有如此大的物理内存空间.因此通过MMU,可以将外存设备(如:硬盘)的一部分空间模拟成物理内存进行使用.3.地址映射.即MMU可以在地址使用前对其进行转换,即所谓的映射.4.改进的分段机制.本文后面将对此进行重点论述.5.内存保护与任务保护.即在PM状态下,引入了权限机制.通过权限控制可以达到保护相关代码和数据的目的.6.改进的寻址模式.在RM下,只有常数,BX或BP,SI或DI可以用来形成地址,而在RM下可以通过任意寄存器进行寻址,并且可以包含一个为2,4或8的比例因子.7.多任务支持.在PM下,CPU提供了特殊的机制能够进行快速的上下文切换.SMM:该模式为操作系统实现特定平台指定的功能提供了一种有效的机制.值得注意的是,在PM下,CPU允许在受保护的情况下,执行RM程序,这个特性被称为虚拟8086模式(Virtual-8086 Mode),但其本质上却不是真正的RM.对于三种模式关系的形象解释可以通过下图来描绘:正如上面所说的,只有在PM下,CPU才能充分发挥其自身的所有特性,而计算机在启动之后,默认的CPU操作模式却是RM.因此摆在我们面前的一个主要问题就是如何在RM与PM之间相互切换.那么如何在RM和PM之间相互切换呢.核心步骤其实很简单,只要改变CPU中的CR0寄存器中PE标志位的值,就可以实现.在PE=1时,CPU进入PM,而在PE = 0时,则进入RM.但这仅仅是整个切换过程中的一小部分,在进入保护模式之前我们还需要做很多事情,其中最关键的就是建立好一个被称为GDT的表.在谈到GDT之前,我们先回顾一下,在RM中,内存中寻址的方式---段:偏移量.其中段(Segment)表明了一个基地址,其最大长度固定为64KB(FFFFH),即16bit数所能表示的最大数值.而偏移量(Offset),就是指在指定段内的位置.由此可见,通过段+偏移量这种表示方式,就可以表示出内存中的绝对地址.需要指出的是,在CPU实际处理过程中,CPU 会将段寄存器的值左移动4位,再与偏移量相加,形成地址,放入20位的总线当中.在PM中,对于段模式来讲,上面的寻址方式,在大部分上仍然是适用的.但由于PM是工作在32位下的,因此上面的各个值,也就都相应的变成了32位.与 RM不同的是,在PM下,一个段的长度不再固定,其可以在CPU允许的规则下任意设置.并且CPU为段模式提供了保护机制,即增加了对自身的访问权限.因此在PM下,对于一个段,需要有三个变量给于描述,即基地址,段界限和访问权限.事实上,CPU将这三个值保存为一个64位长的段描述符.但出于兼容性的考虑,Intel并没有将段寄存器改为64位可用--虽然,段寄存器在事实上确是 64位,但对于程序来讲,高于16位的部分却是不可见的--因此,我们需要另一种方法去存放这些数据.Intel选择了将这些段描述符统统存入到一个全局数组中的方法,在访问段时,向相应的段寄存器填入该数组的下标值来实现间接引用.这个全局数组就称其为GDT(全局描述符表).由于GDT可以存放在内存中的任何位置,因此要引用它,就必须知道他的入口地址.Intel为我们提供了GDTR寄存器和LGDT指令.其中GDTR寄存器存放的是GDT的入口地址(32位)和其界限(16位),共48位.这里的入口地址是一个线性地址,界限则是表的字节长度减一.可见该表最多可以长达64KB,存储8192条描述符号,而LGDT指令的作用就是将GDT装载到放入GDTR寄存器当中.顾名思义,GDT是全局描述符,因此其在内存中存在且仅存在一个,并且它的存在对于所有的任务来讲,都是可见的.显然,这种做法对于多任务来讲是不易管理的.因此,Intel又引入了LDT(局部描述符表),该描述符与GDT不同之处在于,LDT在系统中可以有许多个,但每个任务只允许有一个LDT,且其只能该任务自身可见.其与GDT的主要关系在于,每一个LDT都会作为一个段,存入GDT中.由于CPU在任何时刻只能执行一个任务的代码,因此存储LDT所需要的寄存器也就只需要一个,Intel将其命名为LDTR,与GDT相同,Intel为装入LDT设置了LLDT指令.与GDT不同的是,LLDT指令的操作数却是一个16位的段选择子,即前面说到的要装入的LDT在GDT中的索引值.这里需要指出的是,LDT并不是必须的,你的程序可以选择使用,或者不使用它.前面提到了一个新概念--段选择子.我们说段选择子是要引用段在GDT或LDT中的索引值,其实这种说法并不正确.因为段选择子除了含有索引值以外,它还包含了其他内容.段选择子的结构如下图:由于是从Word文档中复制过来,表格无法显示,详情请查阅相关文档。
第二讲 操作系统的启动
![第二讲 操作系统的启动](https://img.taocdn.com/s3/m/c05926fe804d2b160a4ec016.png)
操作系统实验报告哈尔滨工程大学计算机科学与技术学院一、实验概述1. 实验名称操作系统的启动2. 实验目的1)跟踪调试EOS 在PC 机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
2)查看EOS 启动后的状态和行为,理解操作系统启动后的工作方式。
3. 实验类型验证型实验4. 实验内容1)准备实验生成EOS Kernel项目,查看boot.asm和loader.asm生成的boot.bin 文件和loader.bin文件的大小。
2)调试EOS操作系统的启动过程1 使用Bochs做为远程目标机2 调试BIOS程序3 调试软盘引导扇区程序4 调试加载程序5 调试内核6 EOS启动后的状态和行为二、实验环境操作系统:Windows操作系统编译器:集成开发环境OS Lab工具:Floppy Image Editor工具、Bochs模拟器语言:C语言、NASM汇编三、实验过程1. 设计思路和流程图EOS操作系统的启动过程流程如图1所示:图1 操作系统的启动流程EOS操作系统的启动过程的调试如图2所示:图2 调试过程2. 需要解决的问题及解答1)为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?答:BIOS将软盘引导扇区加载到0x7c00并开始执行后,软盘引导扇区中的boot.bin开始执行,并将软盘根目录总的loader.bin加载到0x1000并执行;loader.bin的主要功能是加载程序,先加载Kernel.dll,然后启动保护模式和分页机制,最后跳到Kernel.dll 的入口点执行。
如果将loader.bin功能移动到boot.bin 文件中,会使程序规模扩大,可能使boot.bin文件的大小大于512字节。
计算机操作系统实验_操作系统引导
![计算机操作系统实验_操作系统引导](https://img.taocdn.com/s3/m/13eacdec64ce0508763231126edb6f1aff0071be.png)
计算机操作系统实验_操作系统引导计算机操作系统实验——操作系统引导在计算机的世界里,操作系统就像是一位默默耕耘的幕后英雄,它掌控着计算机的一切运行。
而操作系统引导,则是这个英雄登场的关键一步。
当我们按下计算机的电源按钮,一场神奇的旅程便开始了。
首先,计算机的硬件会进行一系列的自检操作,检查各种硬件设备是否正常工作,比如内存、硬盘、显卡等等。
这个过程就像是运动员在比赛前的热身,确保身体的各个部位都处于良好的状态。
接下来,就是操作系统引导程序大显身手的时候了。
引导程序通常存储在计算机的硬盘或者其他存储设备的特定位置。
它的任务是将操作系统的核心部分加载到计算机的内存中,并为操作系统的运行做好准备。
想象一下,操作系统就像是一个庞大的工厂,而引导程序则是打开工厂大门的钥匙。
它引领着计算机进入这个复杂而有序的世界。
在引导过程中,计算机首先会查找并读取主引导记录(MBR)或者GUID 分区表(GPT)。
这些记录包含了关于操作系统分区的重要信息,告诉计算机去哪里找到操作系统的启动文件。
一旦找到了正确的位置,引导程序就会开始加载操作系统的内核。
内核是操作系统的核心部分,它负责管理计算机的资源,如 CPU、内存、输入输出设备等。
在加载内核的过程中,还会进行一些初始化的设置。
比如,设置系统的时钟、检测硬件的配置信息等。
这就像是为工厂的生产线进行调试,确保一切都能顺利运转。
当内核成功加载后,操作系统会进一步加载各种驱动程序。
驱动程序就像是连接硬件设备和操作系统的桥梁,使得操作系统能够与各种硬件进行有效的通信和控制。
比如,显卡驱动让我们能够看到清晰、流畅的图像;声卡驱动让我们能听到美妙的声音;网络驱动则让我们能够畅游互联网的世界。
随着各种驱动程序的加载完成,操作系统终于可以开始展现它的全貌了。
我们会看到熟悉的登录界面,这标志着操作系统已经准备好为我们服务了。
操作系统引导的过程看似简单,但实际上涉及到了许多复杂的技术和机制。
实训报告启动系统
![实训报告启动系统](https://img.taocdn.com/s3/m/3370af8b3086bceb19e8b8f67c1cfad6185fe943.png)
一、实训目的本次实训旨在通过实际操作,使学生掌握启动系统的基本原理、操作方法和应用技巧,提高学生对计算机操作系统的理解和实践能力。
通过本次实训,学生能够熟悉启动过程,了解系统启动的各个阶段,以及如何进行系统配置和优化。
二、实训时间2022年X月X日至2022年X月X日三、实训地点计算机实验室四、实训内容1. 系统启动过程2. 系统配置3. 系统优化4. 故障排查与处理五、实训步骤1. 系统启动过程(1)打开计算机,按下电源按钮。
(2)等待计算机自检,查看内存、硬盘等硬件信息。
(3)进入操作系统选择界面,选择相应的操作系统启动。
(4)系统启动完成后,进入桌面环境。
2. 系统配置(1)打开控制面板,进行系统设置。
(2)设置系统时间、语言、显示、网络等基本参数。
(3)调整系统性能,如CPU频率、内存分配等。
(4)配置用户账户,设置密码保护。
3. 系统优化(1)清理磁盘碎片,提高磁盘读写速度。
(2)优化启动项,减少开机时间。
(3)关闭不需要的系统服务,提高系统运行效率。
(4)调整系统视觉效果,提升用户体验。
4. 故障排查与处理(1)检查硬件设备,确保硬件正常。
(2)查看系统日志,分析故障原因。
(3)使用系统自带的修复工具,解决系统故障。
(4)如故障无法解决,寻求专业技术人员帮助。
六、实训心得通过本次实训,我对启动系统有了更深入的了解。
以下是我的一些心得体会:1. 系统启动过程是计算机从关闭状态到正常运行的关键环节,了解启动过程有助于我们更好地维护和优化系统。
2. 系统配置对系统的稳定性和性能有很大影响,合理配置系统参数可以提升用户体验。
3. 系统优化是提高系统运行效率的重要手段,通过优化启动项、关闭不必要的服务等操作,可以加快系统启动速度,提高系统运行效率。
4. 故障排查与处理是计算机操作过程中必不可少的环节,掌握一定的故障排查方法,可以让我们在遇到问题时迅速解决。
5. 实训过程中,我发现自己在理论知识掌握方面还有待提高,今后还需加强学习,不断提高自己的实践能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统
实验报告
哈尔滨工程大学
计算机科学与技术学院
第二讲操作系统的启动
一、实验概述
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的处于运行状态
图一
图二
图三
(5)、为什么 EOS 操作系统从软盘启动时要使用 boot.bin 和 loader.bin 两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将 loader.bin 的功能移动到 boot.bin 文件中,则 boot.bin 文件的大小是否仍然能保持小于 512 字节?
答:在生成项目的时候,boot文件夹中的两个汇编文件boot.asm和loader.asm 分别生成了两个二进制文件boot.bin和loader.bin。
这两个文件缺一不可,他们会被写入软盘镜像文件。
在EOS操作系统启动的时候,boot.bin用于引导软盘,而loader.bin用于加载程序。
如果把loader.bin的功能移动到boot.bin程序中,肯定会增加boot.bin的规模文件大小将会大于512字节。
(6)、软盘引导扇区加载完毕后内存中有两个用户可用的区域,为什么软盘引导扇区程序选择将loader.bin 加载到第一个可用区域的0x1000 处呢?这样做有什么好处?这样做会对loader.bin 文件的大小有哪些限制?
答:第一个用户可用区取余位于低地址端,便于检索查找,并且容量相对较小,适合容纳相对较小的文件,所以将loader.bin加载到第一个可用区域,节省资源。
由于第一用户区域的大小限制,loader.bin的大小不能超过29.5KB。
图四
图五
如左图图六所示Loader.bin文件大小为1566B。
图七
*程序运行时的初值以及运行结果:
Bochs在CPU要执行的第一条指令处中断。
Display窗口没有显示内容。
如下图所示:
sreg命令查看当前CPU各个段寄存器的值:
r命令查看当前CPU中各个通用寄存器的值
输入调试命令xp/1024b 0x0000
输入调试命令xp/512b 0x7c00
输入调试命令vb 0x0000:0x7c00添加断点输入c继续执行
输入sreg验证CS寄存器的地址
输入调试命令r验证IP寄存器的值
输入调试命令xp/512b 0x7c00显示软盘引导扇区程序的所有字节码输入调试命令xp/512b 0x0600
输入调试命令xp/512b 0x7e00
输入调试命令xp/512b 0xa0000验证上位内存已被系统占用
输入调试命令vb 0x0000:0x7d81添加一个断点
输入调试命令c继续执行,在断点处中断
输入调试命令xp 8b 0x10000查看内存0x1000处的数据3.2.4 调试加载程序
查看eos版本号:
迅速按Ctrl+F2 切换到控制台2,并输入命令“pt”后按回车。
输出的进程和线程信息如图10-6 所示
四、实验体会
本次实验主要采用了在EOS操作系统启动过程中设置断点,查看内存空间的占用情况来观察文件的加载情况。
通过本次实验了解了了解操作系统的启动过程。
通过查看eos启动后的状态和行为,理解操作系统启动后的工作方式。
通过一步步的操作,加深了在操作系统上对程序创建、调试程序的掌握,但对OS的相关知识还不是很了解。