欢迎来到天天文库
浏览记录
ID:6809157
大小:1.10 MB
页数:26页
时间:2018-01-26
《操作系统课程设计报告(含源代码)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统课设操作系统课程设计报告姓名:学号:班级:2010年6月25日26操作系统课设目录一、试验实现3试验三、生成目标机33.1.编译unixlite内核33.2.制作目标机的启动软盘33.3.对目标机的硬盘分区33.4.格式化目标机的硬盘43.5. 安装目标机的文件系统43.6.测试目标机5试验四、HelloWorld!54.1.目标54.2.步骤5试验五、系统调用的原理65.1.目标65.2.步骤7试验七、实现信号灯操作的系统调用97.1.增加四个系统调用:97.2.编写四个测试程序:137.3.运行测试程序15试验八
2、、实现进程间通信的系统调用168.1.增加四个系统调用:168.2.编写四个测试程序:208.3.运行测试程序22二、心得体会2326操作系统课设第一部分试验实现试验三、生成目标机试验步骤:3.1.编译unixlite内核生成系统内核可执行文件kernel.target和系统内核镜像文件Image#cd~/kernel#makedep#make3.2.制作目标机的启动软盘把系统内核镜像文件Image写入到软盘。#cd~/kernel#ddif=Imageof=/dev/fd03.3.对目标机的硬盘分区[root@(none)
3、kernel]#fdisk/dev/hdbCommand(mforhelp):m//帮助Command(mforhelp):p//打印当前分区表Command(mforhelp):n//创建新的分区Commandactioneextendedpprimarypartition(1-4)p//分区类型是主分区Partitionnumber(1-4):1//第一主分区Firstcylinder(1-4,default1)://输入回车,使用缺省值Usingdefaultvalue1Lastcylinderor+sizeor+si
4、zeMor+sizeK(1-4,default4)://输入回车,使用缺省值Usingdefaultvalue426操作系统课设Command(mforhelp):p//打印当前分区表Command(mforhelp):t//改变分区类型Selectedpartition1Hexcode(TypeLtolistcodes):81//输入minix分区代码:81Command(mforhelp):p//打印当前分区表Command(mforhelp):w//存盘退出3.4.格式化目标机的硬盘#mkfs.minix-v-n30/
5、dev/hdb13.5. 安装目标机的文件系统1挂载目标机的硬盘#mount/dev/hdb1/mnt/hdb12安装基本的文件系统#tarzxvfrootfs.tar.gz-C/mnt/hdb13卸载目标机的硬盘#umount/mnt/hdb13.6.测试目标机26操作系统课设试验四、HelloWorld!4.1.目标在目标机启动时打印出你的学号。4.2.步骤1编辑内核源文件~/kernel/init/main.cc,main.cc定义了系统的入口:main函数,在main函数中找到如下两行代码:intmain(){.….
6、printf("TotalMemorySizeis%dMeg",nphysmeg);i386init();/*setupgdt,idt,cr0*/…..}2在这两行之间插入打印学号的代码,变为:printf("TotalMemorySizeis%dMeg",nphysmeg);printf("Thisisstudent:");i386init();/*setupgdt,idt,cr0*/3在~/kernel目录下使用make命令重新编译内核,生成内核镜像文件Image:#cd~/kernel#make26操作系统
7、课设1把系统内核镜像文件Image写入到软盘:#cd~/kernel#ddif=Imageof=/dev/fd02在windows下启动目标机,查看目标机启动时是否打印出你的学号。结果:试验五、系统调用的原理5.1.目标通过为unixlite开发一个简单的系统调用了解系统调用的原理,要增加的系统调用原型是:26操作系统课设intadd(inta,intb);add的功能是返回参数a、参数b两者相加的和。5.2.步骤5.2.1.分配空闲的系统调用号为add系统调用分配空闲的系统调用号,查看~/kernel/asm/trapS.
8、S获得系统调用列表:#defineSYS(name).longsys##name#defineXXX(name).longsysnosysentry(syscalltab)sys(setup)/*0*/sys(exit)sys(fork)sys(read)sys(write)sys(ope
此文档下载收益归作者所有