2012操作系统课程设计.ppt_第1页
2012操作系统课程设计.ppt_第2页
2012操作系统课程设计.ppt_第3页
2012操作系统课程设计.ppt_第4页
2012操作系统课程设计.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,文化学院信息系李胜利,操作系统课程设计,2,操作系统课程设计2012级,3,内容介绍,设计目的设计内容实施方法和要求时间表咨询,4,设计目的,了解如何使用Linux操作系统,了解Linux系统内核代码结构如何实现实例操作系统,5设计目的设计内容实施方法和时间表辅导,6,7,内容设计(2),使用Linux的系统调用内容创建C节目,使用档案系统的系统调用实现文本文件显示功能。8,需要熟悉添加设计内容(3)、系统调用的方法内容,添加新的系统调用以编写使用新系统调用功能的应用程序。9,设计内容(4),需要了解和分析/了解proc档案内容/了解proc文件的特性和使用情况监控系统状态,使用系统中多个

2、部件的使用情况显示图形界面显示系统监控状态,10,设计内容(5),需要了解和了解文件系统设计方法更复杂的方法:以库档案格式实现,11,设计内容(6),选择,12,内容1-4内容5内容5,其中1个选择,13,内容介绍,设计目的设计内容实施方法和日程辅导要求,14,实施方法和要求,每个学生必须独立完成课程设计内容用机器考试示范完成系统,回答老师的问题。提交文本课程设计报告,包括调试唱片和节目列表(包括注释)。提交时间:2015.3.20 B519室,15,实施方法和要求(继续),帮助您学习和学习现有的优秀知识!反对全面复制,不要深入了解!吸收和消化他人的经验,设计自己的课程!16,内容介绍,设计目

3、的设计内容实施方法和要求日程咨询,17,课程设计时间:课程分配机器时间评估现场检查时间:2周星期天,日程,18,联系方式,办公室电话19,内容介绍Linux系统每个版本由三个用点分隔的数字描述。前两个数字表示版本号,第三个数字表示版本号(例如2.4.20)。如果第二个数字是偶数,则表示稳定的内核。否则,表示正在开发的内核。稳定版本的发行版主要用于更正用户报告的错误,但实现内核的主要算法和数据结构基本上保持不变。但是,开发版本之间可能存在很大的差异。22,Linux系统上的公共目录,档案目录树结构树结构公共目录:/dev Linux上的所有设备档案(例如,/dev/hd

4、a表示第一个物理IDE硬盘)。/etc系统管理所需的配置文件和子目录。/lib系统中最基本的动态链接孔刘库,几乎所有应用程序都需要。23、Linux系统上的公共目录(继续)、/usr应用程序节目和文件几乎存储在牙齿目录中。它包含开发和编译以下子目录: /usr/include应用程序节目所需的头文件/usr/lib常用动态链接孔刘库和静态存储库/usr/local最终用户目录,其中软件是/usr/man帮助文档文档的最佳存储目录/usr/每个子目录都表示CPU类型。例如,i386是英特尔CPU和兼容体系结构的子目录。车手所有驱动程序;每个驱动程序占用的子目录与/block编译块驱动程序嵌入的内

5、核所需的大多数头文件相同。与平台无关的头文件位于include/linux子目录下,英特尔CPU相关头文件位于include/asm-i386子目录下。25,Linux系统的核心源代码(继续),Linux核心源代码还包括:Init包含内核的初始化代码,它包含两个文件:main.c和version.c。这是研究内核如何工作的好起点。26,Linux系统的核心源代码(继续),mm:所有CPU体系结构无关的记忆体管理代码(如页面存储管理中的内存分配和释放等),体系结构相关记忆体管理代码位于arch/*/mm/。Kernel:的主要核心代码牙齿目录中的文件实现了大多数Linux系统的内核函数,最重要的

6、文件属于进程调度sched.c。同样,体系结构相关代码位于arch/*/kernel中。27,课程设计咨询,Linux系统相关知识以Redhat Linux 9.0为例,添加系统调用以添加驱动程序/proc档案分析,28,同时创建进程,pid=fork():子进程。返回值:0从子进程返回,0从父进程返回exit进程本身结束,进入僵化状态,但保留了ask_struct结构。Wait()等待进程终止(从父进程调用)。以运行exec()执行节目(档案)、29、课程设计课外、有关Linux系统的知识Redhat Linux 9.0为例,添加系统调用以添加驱动程序/proc档案分析。用户可以通过系统调用

7、命令从自己的应用程序中调用。系统调用和常规函数调用的区别系统调用核心状态操作系统核心使用常规函数调用用户状态库或用户提供的、31、添加系统调用(继续)、Linux系统调用机制int 0 X80寄存器中的相应值转到内核的预定义代码。转到系统调用的总入口system_call,以确定系统调用编号。系统调用包括宏、系统调用表和系统调用入口。32,添加系统调用(继续),创建添加到step _ 1源代码添加内核的源节目,函数名称以sys_开头。例如:对于mycall(int num),请在/usr/src/linux/kernel/sys.c文件中输入ASM linkage intsys _ my ca

8、ll(;/牙齿系统调用连接整数值、33、系统调用追加(继续)、step _ 2新系统调用,以通知内核剩馀部分存在系统调用。为此,请编辑两个档案/usr/src/Linux/include/ASM-i386/unistd . h系统调用列表(为每个系统调用分配唯一的编号)define _ NR _,其中Nnn:与系统调用相对应初始化/usr/src/Linux/arch/i386/kernel/entry . s sys _ call _ table(添加指向新内核函数的指针)。long symbol步骤_3 Linux内核重新配置进入根目录/usr/src/linux目录并检查内核重新配置#m

9、ake config /基于文本的现有配置文件#make dep /内核源代码文件的相关性和完整性# make clean Make步骤_4内核重新启动将/usr/src/Linux/arch/i386/boot/bzImage复制到/boot/BZ image配置启动文件如果使用lilo,则添加/etc/新引导内核iiidf命令可用添加新引导内核title Linuxtest root (hd0,4)内核/引导/bzimage rorot=/dev/HD a5 initrd/boot/initrd-;步骤_5使用新系统调用应用程序节目app.c中新添加的系统调用mycall:宏说明:_ sy

10、scalln (parameters): n表示系统调用所需的参数,parameters是参数。在上述巨集中,第一个参数int表示传回值类型,而第二个参数mycall是函数名称。第三个和第四个分别用于指定参数的类型和名称。编译gcc o app app.c,37,课程设计咨询,Linux系统相关知识以Redhat Linux 9.0为例,添加系统调用附加驱动程序/proc档案分析,38,添加驱动程序,内核模块LKM Loadable Kernel Modules Linux Linux为了解决牙齿问题,引入了模块机制,可以在内核中动态添加或删除模块。39,添加驱动程序(继续),初始化模块实现机

11、制模块int init _ module();模块删除intcleanup _ module()并使用Unsigned long sys _ create _ module(char * name,Unsigned long size);/内存重新分配int sys _ delete _ module(char * name);移除int sys _ query _ Module(constchar * name、intwhich、void * buf、size _ tbufsize、size _)/驱动程序附加模块编程实例hello.c源编译gcc d module d _ kernel _

12、-I/usr/src/Linux _ 2 . 4 . 20-8/include-c hello实际I/O指向文字设备鼠标、键盘等。块设备B使用系统内存区域作为缓冲区,在用户进程可以满足用户对设备请求的要求时返回请求数据,否则调用请求函数以执行实际I/O操作。例如:网络设备(如硬盘、软盘、CD-ROM)、44、添加设备车手(继续)、一组具有驱动程序驻留内存权限的孔刘库,以及低级硬件处理例程。每个设备文件包含设备编号、45、添加驱动程序(继续),以及设备驱动程序的功能初始化和释放设备的设备编号主设备编号。将数据从内核传输到硬件并从硬件读取数据。读取应用程序发送到设备文件的数据和回显应用程序请求的数

13、据。检测和处理设备中出现的错误。46,添加驱动程序(继续),Linux系统使用固定的入口点集实现设备驱动功能。开放式入口点:打开设备。Open子程序必须执行要执行的I/O操作(如清除缓冲区)所需的准备工作。关闭入口点:关闭设备。Read入口点:从设备读取数据。Write入口点:将数据写入设备。Ioctl入口点:执行读取、写入以外的操作。Select入口点:检查数据是否可读,或者是否可用于写入设备。47,添加驱动程序(继续),入口点采用以下数据结构实现:48,添加驱动程序(继续),注册设备:向系统注册设备和驱动程序的入口点intregister _ unsigned int manager(chrdev)/向系统的字符设备表注册字符设备/major:所需的设备编号/name:设备名称/fops:注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论