操作系统课程设计 引导启动

操作系统课程设计 引导启动

ID:9797277

大小:656.00 KB

页数:21页

时间:2018-05-10

操作系统课程设计 引导启动_第1页
操作系统课程设计 引导启动_第2页
操作系统课程设计 引导启动_第3页
操作系统课程设计 引导启动_第4页
操作系统课程设计 引导启动_第5页
资源描述:

《操作系统课程设计 引导启动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统课程设计目录概述1一.课设分析的具体内容3二.分析的具体目标4三.BOOOTSECT.S源代码分析基础51.磁盘参数52.BIOS的Int13H调用53.根文件系统的命名方式及设备号的计算74.串传输指令7四.各模块源代码的分析81.Bootsect将自身从目前段位置0x07c0移到0x9000处92.将setup模块读到0x90200开始处93.获得磁盘驱动参数104.显示’Loadingsystem….’115.将系统模块加载到0x10000处126.检查要使用哪个根文件系统设备127.保存设备号,并跳转到0x9020:0000处14分析研究体会17自我评价20参考文献21第21页

2、操作系统课程设计概述Linux作为一个优秀的操作系统,其原因之一应归属于开放的内核源代码。说起内核源代码,我们不得不存着敬畏的心理。它在Linux中的地位好像心脏在我们身体中的地位一样重要,它是整个操作系统的灵魂。因此要更好的了解Linux,分析他的源代码是非常必要的。在这次课程设计中我选择分析的是Linux0.11的Boot.s的引导块源代码分析。首先我们粗略的看一下计算机内开机过程:通电后,CPU完成自检和初始化,设置寄存器内的初值,而后执行第一条指令。该指令的地址是CS*16+IP,即0xFFFF0,该地址是BIOS的入口地址。BIOS对整个机器系统完成自检后,将有关系统配置的基本信息记

3、录在内存的BIOS数据区中,然后把引导盘的第一个扇区读入内存的0x7C00处。转到该处,把控制权交给引导程序,最后引导程序把操作系统读入内存中,并把控制权交给操作系统内核。我们再来看看引导启动程序目录Boot。Boot目录中含有三个汇编语言文件,是内核源代码中最先被编译的程序。这3个程序完成的主要功能是当计算机加电时引导内核启动,将内核代码加载到内存中,并做一些进入32位保护运行方式前的系统初始化工作。其中bootsect.s和setup.s程序需要使用as86软件来编译,使用的是as86的汇编语言格式(与微软的类似),而head.s需要用GNUas来编译,使用的是AT&T格式的汇编语言。第2

4、1页操作系统课程设计我主要研究的是Boot.s的引导块源代码分析。所以对setup.s和head.s不做详细解释。Setup.s程序主要是读取机器的硬件配置参数,并把内核模块System移动到适当的内存位置。Head.s程序被编译连接到System的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始化设置工作。Bootsect.s代码是磁盘引导块程序,驻留在磁盘的第一个扇区中(引导扇区,0磁道(柱面),0磁头,第1个扇区)。在PC机加电ROMBIOS自检后,引导扇区由BIOS加载到内存0x7c00处,然后将自己移到内存0x9000处。该程序的主要作用是首先将setup模块从磁盘加载到内存

5、,紧接着bootsect的后面位置(0x9200),然后利用BIOS中断0x13取磁盘参数中当前启动引导盘的参数,接着在屏幕上显示”Loadingsystem….”字符串,再者将system模块从磁盘上加载到内存ox1000开始地方。随后确定根文件系统的设备号。若设备指定,则根据所保存的引导盘的磁道扇区数判别出盘的类型和种类并保存起设备号于root_dev(引导块的0x508地址处)。最后长跳转到setup程序开始处(0x90200)执行setup程序。一.课设分析的具体内容由于Linux内核是一种单内核模式的系统。因此,内核中的所有程序都有密切的联系,他们之间的依赖和调用关系非常密切。所以我

6、们先来看看源代码的目录结构,从目录结构中我们就可以看到我所分析的源代码所处的位置了(图转第2页)。我所分析的则是linuxboot下的bootsect.s汇编源程序。B第21页操作系统课程设计ootsect.s程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区。在PC加电ROMBIOS自检后,将被BIOS加载到内存0x7c00处进行执行。图1.1Linux源代码的目录结构二.分析的具体目标通过分析一个早期的Linux内核,加深对操作系统各个组成模块具体实现机制的理解,同时也为今后从事底层的研究开发增加一些实践经验。通过对bootsect.s的分析,进一步了解Linux的启动过程,明白计算机

7、从开始加电后做了什么?进一步认识引导程序,通过BIOS读磁盘扇区的方法以及BIOS的中断处理。同时也可以巩固汇编的一些知识第21页操作系统课程设计和80x86的系统结构,熟悉源代码的目录结构,了解文件从哪里调用,明白系统在加电后进入实模式后内存的分布情况等。三.Boootsect.s源代码分析基础1.磁盘参数我们在研究磁盘参数方面主要考虑这三部分CHS(Cylinder/Head/Sector).

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。