您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理实验复习考试
操作系统原理实验考试成绩计算:平时40分[考勤问答(5分)+平时作业(15分)+大作业(20分)]+期末60分[笔试(30分)+机考(30分)]=100分考试形式:开卷笔试+上机操作(使用实验室或自己的电脑)机考:考试时间:2014年6月17日(周二,三班)&20日(周五,二班)上午10:30~12:30考试地点:实验中心B401笔试:考试时间:2014年6月26日(周四)晚上19:00~21:00考试地点:教学楼C101笔试题型:填空(15题,每题2分,共30分)、问答(6题,每题5分,共30分)、编程(4题,每题10分,共40分)操作题型:操作磁盘映像和文件(30分)、编写简单的汇编程序(30分)、编写较复杂的汇编或/和C程序(40分,二选一)复习重点与考试要求1实验环境1)要求熟悉虚拟机、编译软件和各种开发工具的使用,会创建软硬磁盘的磁盘映像和FAT12文件结构、编写和编译简单的汇编和C语言程序、将引导程序写入磁盘映像的引导扇区、将可执行程序和各种文件写入带FAT文件结构的磁盘映像。2)重点虚拟机:VMware(Linux/Ubuntu、混合编程)、Bochs(运行测试)编译器:Windows—NASM(汇编),Linux—NASM(汇编)、GCC(C)、LD(链接)开发工具:Windows—NotePad++(源代码编辑)、WinHex(二进制编辑)、DiskWriter/FloppyWriter(写磁盘映像)、WinImage(复制文件到FAT磁盘映像),Linux—gedit(源代码编辑)测试环境:虚拟机Bochs、DOS系统软盘映像、磁盘映像文件(带FAT12结构的1.44MB软盘和10MB硬盘)、可执行文件格式COM/BIN/ELF、虚拟机配置文件bochsrc.bxrc2引导1)要求了解PC机的引导过程,掌握引导扇区的结构,会编写和编译带清屏和显示Hello串功能的简单汇编引导程序、将引导程序写入磁盘映像的引导扇区、修改Bochs虚拟机的配置文件、用该磁盘映像启动Bochs虚拟机进行测试。2)重点引导过程:PC机加电或重启→CPU复位→内存清零→内存奇偶校验→跳转到地址为FFFF0h处的系统BIOS入口指令,执行主板ROM中的例程→检查各个端口,识别并初始化设备,然后将这些设备连接到计算机上,并提供在设备上的I/O服务→创建两个数据区(中断向量表和BIOS数据区)→读启动盘的第一个物理扇区(主引导扇区),如果其最后两个字节为55h和AAh(引导记录标识符),则装入该扇区到内存地址7C00h处,并跳转到7C00h处执行[主]引导扇区([Master]BootSector)是磁盘的第一个物理扇区(512B),内容为:主引导记录(MBR=MasterBootRecord):446B,一般为装入操作系统的引导程序(通常负责加载OS的装载模块)磁盘分区表(DPT=DiskPartitionTable):4*16=64B,4个分区表项,每个16B,软盘没有DPT引导记录标识符(BRID=BootRecordIdentifier):2B,内容为55hAAh引导实验用NotePad++编写汇编源代码用org操作符设置程序的入口地址为7C00h设置DS和ES=CS(调用清屏例程)调用显示字符串例程进入无限循环定义显示字符串例程——用10h号中断的13h号功能实现(彩色)字符串显示(定义清屏例程——用10h号中断的6号功能实现上滚整个文本显示页)定义字符串常量(如“Hello,OSworld!”或其他特定字符串)用times伪指令将剩余空间填充为0将引导扇区的最后2个字节设置为55h和AAh用NASM将源程序编译成二进制文件boot.bin用Bochs工具创建1.44MB软盘映像a.img用FloppyWriter/DiskWriter将boot.bin写入软盘映像a.img修改Bochs虚拟机的配置文件,使用a.img作为软盘A的映像文件,并用软盘启动启动Bochs虚拟机进行测试3CPU与指令1)要求了解x86CPU的结构,熟悉其寄存器,掌握常用的CPU指令和NASM指令,会编写简单的汇编程序。2)重点8086[80386]寄存器8个16[32]位通用寄存器4个数据寄存器:[E]AX(累加)、[E]BX(基址)、[E]CX(计数)、[E]DX(数据),其中的低16位寄存器(如AX)又可以进一步分成低8位(如AL)和高8位(如AH)两个部分4个指针变址寄存器:[E]SP(堆栈指针)、[E]BP(基址指针)、[E]SI(源变址)、[E]DI(目的变址)4[6]个16位段寄存器(保护模式下为段选择符,有与对应段描述符类似的64位隐藏结构):CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段)、[FS(附加段)、GS(附加段)]2个16[32]位专用寄存器:[E]IP(指令指针)、[E]FLAGS(标志,其中的第6位为零标志ZF、第9位为中断允许标志IF、第10位为方向标志DF)[4个48或80位系统地址寄存器]:GDTR(全局描述符表寄存器,48位:16位界限+32位基址)、LDTR(局部描述符表寄存器,80位:16位段选择符+32位基址+20位界限+12位属性)、IDTR(中断描述符表寄存器,48位:16位界限+32位基址)、TR(任务寄存器,80位:16位段选择符+32位基址+20位界限+12位属性)[4个32位的控制寄存器]:CR0(机器状态字,其最低位PE用于进入保护模式,最高位PG用于启动分页机制)、CR1(未使用)、CR2(引起页故障的线性地址)、CR3(页目录基址)常用CPU指令:算术运算(四则、增减)、位运算(逻辑、移位)、赋值(MOV)、比较测试、跳转、调用返回、中断、循环重复、栈操作、串操作、端口IO、标志位设置、装入/保存系统寄存器、无操作常用NASM指令:DB/DW/DD,RESB/RESW/RESD,EQU,TIMES,BITS16/BITS32,SECTION/SEGMENT,EXTERN、GLOBAL,ALIGN/ALIGNB,%macro/%endmacro、%rep/%endrep、%define、%if/%ifdef/%elif/%else/%endif,ORG,$、$$4BIOS中断1)要求掌握常用BIOS中断及其调用格式,会编写使用BIOS中断进行字符[串]显示、清屏、读按键和读扇区等操作的汇编程序。2)重点常用BIOS中断:显示字符——int10h的0Eh号功能、显示字符串——int10h的13h号功能、清屏(上滚整个文本显示页)——int10h中断的6号功能、读按键——int16h的00h号功能、读扇区——int13h的02h号功能调用格式:movah,功能号……;设置各种入口参数int中断号5可执行文件格式1)要求掌握常用可执行文件格式,掌握ELF的具体结构,会编写和生成COM和ELF格式的可执行文件、运行COM程序、分析ELF文件的结构。2)重点BIN(binary,二进制)——二进制裸格式,无org指令时程序的入口地址为0,引导程序需用org7C00h指令来指定入口地址。文件的扩展名一般为binCOM(commandfile,命令文件)——DOS的二进制裸格式,不分段,会被装载到当前段的100h处(需使用org100h指令,DS=SS=CS、SP=100h-4),文件大小必须≤64KB-256B。文件的扩展名必须为comELF(ExecutableandLinkableFormat,可执行与可链接格式)——类Unix操作系统的标准二进制文件格式。ELF文件由ELF头、程序头表、若干节(section)和节头表组成。程序头表记载了运行时所需的节,节头表则记载了二进制文件中各节的首地址,它们在ELF文件中都是可选的。ELF文件可以没有扩展名,也可以使用下列扩展名:.o、.so、.elf、.prx、.puff、.bin6FAT文件系统1)要求掌握DPT及分区表项的结构,了解常用分区类型和磁盘寻址方式,熟悉1.44MB软盘和10MB硬盘的FAT12分区的具体格式和[E]BPB的概念与结构,掌握主引导扇区和分区引导扇区的区别,了解FAT文件系统的目录结构和表示方法,掌握文件条目的格式(包括首字节含义和文件属性)和FAT项值的含义(包括FAT头两项的特殊值——介质描述符),会编写生成软硬盘FAT12文件结构的汇编程序并将其写入磁盘映像、能人工识别和手工编辑文件条目及FAT项(WinHex)。2)重点磁盘分区磁盘分区表(DPT=DiskPartitionTable)位于(主)引导扇区,含4个分区表项,每一项占16B。只有硬盘(U盘/固态盘)才有磁盘分区表,软盘无。如果DPT全为0,则表示无磁盘分区;有几个非0分区表项,就有几个磁盘分区(卷);一个磁盘最多可有4个分区(卷)分区类型(CHS/LBA)——如0x01=FAT12、0x06/0x0E=FAT16、0x0B/0x0C=FAT32、0x07=NTFS、0x05/0x0F=扩展、0x83=Linux、0xEE=GPT(GUIDPartitionTable,全局唯一标识符分区表,一种新的磁盘分区表标准,由Intel公司于2010年推出,可突破传统MBR的2TB限制)磁盘寻址方式——传统的CHS(Cylinder/Head/Sector,柱面/磁头/扇区)、现代的线性寻址方式LBA(LogicalBlockAddressing,逻辑块寻址),1996年以后推出的硬盘一般都支持LBAFAT分区FAT(FileAllocationTable,文件分配表)是微软公司为其操作系统DOS和老式Windows所定义的一套文件系统,包括FAT12(≤32MB)、FAT16(≤32MB/2GB)、FAT32(≤2TB)和FAT64/exFAT(≤64ZB)等多种具体格式FAT12:在我们的OS实验中,使用1.44MB软盘映像和10MB硬盘映像作为测试介质,它们都采用FAT12文件系统1.44MB软盘的格式:CHS=80/2/18、每个扇区有512(200h)B、共2880扇区=1440KB=1.44MB每个FAT项占12位(1.5B)、每个簇只有1个扇区、每个FAT表占9个扇区根目录区有224条目,占14扇区无磁盘分区起始地址——主引导扇区:0(0#扇区)、FAT#1:200h(1#扇区)、FAT#2:1400h(10#扇区)、根目录区:2600h(19#扇区)、数据区:4200h(33#扇区)10MB硬盘的格式:CHS=80/4/63、每个扇区有512(200h)B、共20160扇区=10080KB≈9.84MB每个FAT项占12位(1.5B)、每个簇有8个扇区、每个FAT表占8个扇区根目录区有512条目,占32扇区主引导扇区的DPT中有唯一分区表项,分区从第2个(1号)柱面的首个扇区(4*63=252)开始起始地址:——主引导扇区:0(0#扇区)、分区引导扇区:1F800h(252#扇区)、FAT#1:1FA00h(253#扇区)、FAT#2:20A00h(261#扇区)、根目录区:21A00h(269#扇区)、数据区:25A00h(301#扇区)分区引导扇区是分区的第一个扇区(512B)。因为软盘无DPT,整个磁盘都是一个分区,所以其分区引导扇区与主引导扇区重合,都是磁盘的首个物理扇区;而硬盘必须有DPT,且其各个分区必须都从第2个柱面及其之后的某个柱面的首个扇区开始。所以我们的10MB硬盘的唯一分区,也从第2个(1号)柱面的首个扇区开始,分区的首个扇区(即分区引导扇区)的序号为252,主引导扇区到分区引导扇区之间的251个扇区(125.5KB)都浪费了FAT分区引导扇区的结构:跳转指令(3B)、OEM名串(8B)、BPB(BIOSParameterBlock,BIOS参数块,25B)、
本文标题:操作系统原理实验复习考试
链接地址:https://www.777doc.com/doc-2381327 .html