操作系统课程设计25课件.ppt
《操作系统课程设计25课件.ppt》由会员分享,可在线阅读,更多相关《操作系统课程设计25课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、操作系统课程设计,9/24/2022,1,Real-Time Systems Lab.,操作系统课程设计9/24/20221Real-Time S,内容简介,设计目的设计内容实施方法及要求时间安排辅导,9/24/2022,2,Real-Time Systems Lab.,内容简介设计目的9/24/20222Real-Time Sy,设 计 目 的,掌握Linux操作系统的使用方法;了解Linux系统内核代码结构;掌握实例操作系统的实现方法。,9/24/2022,3,Real-Time Systems Lab.,设 计 目 的掌握Linux操作系统的使用方法;9/24/2,内容简介,设计目的设计
2、内容实施方法及要求时间安排辅导,9/24/2022,4,Real-Time Systems Lab.,内容简介设计目的9/24/20224Real-Time Sy,设 计 内 容(1),要求:熟悉和理解Linux编程环境内容1)编写一个C程序,实现文件拷贝功能。2)编写一个C程序,使用Linux下的图形库,分窗口显示三个并发进程的运行。#include chinalinuxpub/doc/pro/curses1.html,9/24/2022,5,Real-Time Systems Lab.,设 计 内 容(1)要求:熟悉和理解Linux编程环境9/2,设 计 内 容(2),要求:掌握添加系统调
3、用的方法内容采用编译内核的方法,添加一个新的系统调用。 编写一个应用程序,测试新添加的系统调用。系统调用的功能:文件拷贝。,9/24/2022,6,Real-Time Systems Lab.,设 计 内 容(2)要求:掌握添加系统调用的方法9/24/2,设 计 内 容(3),要求:掌握添加设备驱动程序的方法内容:采用模块方法,添加一个新的设备驱动程序。 要求添加字符设备的驱动。编写一个应用程序,测试添加的驱动程序。,9/24/2022,7,Real-Time Systems Lab.,设 计 内 容(3)要求:掌握添加设备驱动程序的方法9/24,设 计 内 容(4),要求:理解和分析/pro
4、c文件内容了解/proc文件的特点和使用方法。监控系统状态,显示系统中若干部件的使用情况。用图形界面显示系统监控状态。,9/24/2022,8,Real-Time Systems Lab.,设 计 内 容(4)要求:理解和分析/proc文件9/24/,设 计 内 容(5),要求:理解和掌握文件系统的设计方法 (选做)内容设计、实现一个模拟的文件系统。,9/24/2022,9,Real-Time Systems Lab.,设 计 内 容(5)要求:理解和掌握文件系统的设计方法9/2,内容简介,设计目的设计内容实施方法及要求时间安排辅导,9/24/2022,10,Real-Time Systems
5、 Lab.,内容简介设计目的9/24/202210Real-Time S,实施方法及要求,每位同学都必须独立完成课程设计内容。 上机考核 演示完成的系统,并回答老师的问题。 提交文本的课程设计报告,内容包括课程设计内容分析、程序清单(附注释)、调试记录(碰到的问题和解决方案)以及课程设计心得。程序(电子版)。,9/24/2022,11,Real-Time Systems Lab.,实施方法及要求每位同学都必须独立完成课程设计内容。9/24/,实施方法及要求(续),支持借鉴和学习已有的优秀知识!反对全盘拷贝,不求甚解!吸收和消化他人经验,做自己的课程设计!自学能力的培养:学会上网查资料、解决问题
6、!,9/24/2022,12,Real-Time Systems Lab.,实施方法及要求(续)支持借鉴和学习已有的优秀知识!9/24/,内容简介,设计目的设计内容实施方法及要求时间安排辅导,9/24/2022,13,Real-Time Systems Lab.,内容简介设计目的9/24/202213Real-Time S,课程设计时间:第一、二周答疑南一楼804EMAIL:郑伟德 zhwadegmail 郑 然 zhranerhust.edu 考核系统、问答、报告,时间安排,9/24/2022,14,Real-Time Systems Lab.,课程设计时间:第一、二周时间安排9/24/20
7、2214Rea,内容简介,设计目的设计内容实施方法及要求时间安排辅导,9/24/2022,15,Real-Time Systems Lab.,内容简介设计目的9/24/202215Real-Time S,课程设计辅导,Linux系统的相关知识以Redhat Linux 9.0为例 添加系统调用添加设备驱动程序/proc文件分析,9/24/2022,16,Real-Time Systems Lab.,课程设计辅导Linux系统的相关知识9/24/202216R,Linux系统的相关知识,Linux版本 Linux通过简单的编号来区别内核的稳定版和开发版。每个版本用三个数字描述,由圆点分隔。前两个
8、数表示版本号,第三个数表示发布号,如2.4.20。(2.6版本和2.4版本在具体的操作细节上有很大差异) 如果第二个数为偶数,则表示稳定的内核;否则,表示开发中的内核。 稳定版的发布主要用来纠正用户所报告的错误,但实现内核的主要算法和数据结构基本不变。然而,开发版本间可能存在很大的差异。,9/24/2022,17,Real-Time Systems Lab.,Linux系统的相关知识Linux版本9/24/202217,Linux系统的常用目录,文件目录结构树型结构常用目录有:/dev: dev是device的缩写。这个目录包含Linux的所有设备文件,如/dev/hda代表第一个物理IDE硬
9、盘。/etc: 这个目录用来存放系统管理所需要的配置文件和子目录。/lib: 这个目录里存放着系统最基本的动态链接共享库,几乎所有的应用程序都需要用到这些共享库。,9/24/2022,18,Real-Time Systems Lab.,Linux系统的常用目录文件目录结构树型结构9/24/2,Linux系统的常用目录(续),/usr: 这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。其中包含以下子目录:/usr/include: Linux下开发和编译应用程序所需的头文件; /usr/lib: 常用的动态链接共享库和静态档案库; /usr/local: 这是提供给一般用户的
10、目录,在这里安装软件最适合; /usr/man: 帮助文档的存放目录; /usr/src: Linux的源代码目录。,9/24/2022,19,Real-Time Systems Lab.,Linux系统的常用目录(续)/usr: 这是最庞大的目录,,Linux系统的核心源码,Linux核心源代码位于/usr/src/linux下,包括:arch: 包括所有和CPU类型相关的核心代码。它的每一个子目录都代表一种支持的CPU类型,例如i386就是关于Intel CPU及与之相兼容的体系结构的子目录,PC机一般都基于此目录;drivers: 放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目
11、录,如/block下为块设备驱动程序;include: 包括编译核心所需要的大部分头文件。与平台无关的头文件在include/linux子目录下,与Intel CPU相关的头文件在include/asm-i386子目录下;,9/24/2022,20,Real-Time Systems Lab.,Linux系统的核心源码Linux核心源代码位于/usr/s,Linux系统的核心源码(续),Linux核心源代码中的内容还包括:init: 包含核心的初始化代码(注:不是系统的引导代码),包含两个文件 main.c和version.c,这是研究核心如何工作的一个非常好的起点;mm: 包括所有独立于CP
12、U体系结构的内存管理代码,如页式存储管理中内存的分配和释放等,而和体系结构相关的内存管理代码则位于arch/*/mm/下;kernel: 主要的核心代码,此目录下的文件实现了大多数Linux系统的内核函数,其中最重要的文件当属进程调度sched.c,同样,和体系结构相关的代码在arch/*/kernel中。,9/24/2022,21,Real-Time Systems Lab.,Linux系统的核心源码(续)Linux核心源代码中的内容还,课程设计辅导,Linux系统的相关知识以Redhat Linux 9.0为例 添加系统调用添加设备驱动程序/proc文件分析,9/24/2022,22,Re
13、al-Time Systems Lab.,课程设计辅导Linux系统的相关知识9/24/202222R,添加系统调用,Linux系统调用机制Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。系统调用与普通函数调用的区别系统调用 核心态 操作系统核心提供普通的函数调用 用户态 函数库或用户自己提供,9/24/2022,23,Real-Time Systems Lab.,添加系统调用Linux系统调用机制9/24/202223Re,添加系统调用(续),Linux系统调用机制 int 0 x80 使用寄存器中适当的值跳转到内核中
14、事先定义好的代码中执行:跳转到系统调用的总入口system_call,检查系统调用号,再查找系统调用表sys_call_table,调用内核函数,最后返回。系统调用是靠一些宏、一张系统调用表、一个系统调用入口来完成的。,9/24/2022,24,Real-Time Systems Lab.,添加系统调用(续)Linux系统调用机制 9/24/2022,添加系统调用(续),与系统调用相关的内核代码文件: /usr/src/linux/include/asm-i386/unistd.h系统调用清单(为每个系统调用分配唯一号码) /usr/src/linux/arch/i386/kernel/ent
15、ry.S包含系统调用和异常的底层处理程序、信号量的识别程序ret_from_sys_call:调用和中断的返回点对sys_call_table (系统功能调用表)进行初始化 /usr/src/linux/kernel/sys.c系统调用实现代码/usr/src/linux/arch/i386/kernel/traps.c定义许多出错处理程序,9/24/2022,25,Real-Time Systems Lab.,添加系统调用(续)与系统调用相关的内核代码文件:9/24/2,添加系统调用(续),步骤_1 添加源代码编写添加到内核中的源程序,函数名以sys_开头。如:mycall(int num)
16、,在/usr/src/linux/kernel/sys.c文件中添加如下代码: asmlinkage int sys_mycall(int number) return number; /该系统调用仅返回一个整型值 ,9/24/2022,26,Real-Time Systems Lab.,添加系统调用(续)步骤_1 添加源代码9/24/2022,添加系统调用(续),步骤_2 连接新的系统调用 使内核的其余部分知道该系统调用的存在。为此,需编辑两个文件:/usr/src/linux/include/asm-i386/unistd.h系统调用清单(为每个系统调用分配唯一号码) define _NR
17、_name nnn 这里,name:系统调用名;nnn:系统调用对应的号码,不能与内核自身的系统调用号相同。/usr/src/linux/arch/i386/kernel/entry.S对sys_call_table 进行初始化(增加新的内核函数的指针) .long SYMBOL_NAME(sys_mycall),9/24/2022,27,Real-Time Systems Lab.,添加系统调用(续)步骤_2 连接新的系统调用 9/24/,添加系统调用(续),步骤_3 重建Linux内核以root身份进入/usr/src/linux目录,重建内核 #make config /基于文本的传统配
18、置界面 #make dep /检验内核源代码文件的依赖性和完整性 #make clean /清除以前编译的目标文件 #make bzImage /编译内核,也可采用make zImage编译生成的内核文件为 /usr/src/linux/arch/i386/boot/bzImage,配置内核的方式make config 基于文本的传统配置界面make menuconfig 基于文本的菜单形式配置界面,字符终端下使用make xconfig 基于图形窗口模式的配置界面,Xwindow下使用对每个配置选项,有三种选择:“Y”将该功能编译进内核“N”不将该功能编译进内核“M”将该功能编译成可动态载入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 25 课件

链接地址:https://www.31ppt.com/p-1971665.html