西安交大电路课件 西安交大操作系统课内实验报告

西安交大电路课件 西安交大操作系统课内实验报告

ID:14951785

大小:90.00 KB

页数:47页

时间:2018-07-31

西安交大电路课件 西安交大操作系统课内实验报告_第1页
西安交大电路课件 西安交大操作系统课内实验报告_第2页
西安交大电路课件 西安交大操作系统课内实验报告_第3页
西安交大电路课件 西安交大操作系统课内实验报告_第4页
西安交大电路课件 西安交大操作系统课内实验报告_第5页
资源描述:

《西安交大电路课件 西安交大操作系统课内实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、西安交大电路课件西安交大操作系统课内实验报告导读:就爱阅读网友为您分享以下“西安交大操作系统课内实验报告”的资讯,希望对您有所帮助,感谢您对92to.com的支持!操作系统原理课内实验报告学生姓名司默涵专业/班级计算机11班学号2110505018所在学院电信学院指导教师何晖张航提交日期2013年12月25日47操作系统原理课内实验1.实验目的1.1用户接口实验(1)理解面向操作命令的接口Shell;(2)学会简单的shell编码;(3)理解操作系统调用的运行机制;(4)掌握创建系统调用的方法。操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。用户接口实验

2、也因此而分为两大部分。首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell编程方法。然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。在本次实验中,最具有吸引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了解操作系统的生成过程极为有利。1.2文件系统实验(1)掌握文件系统的工作机理;(2)理解文件系统的主要数据结构;(3)学习较为复杂的LINUX下的编程。47这是相对来说有一定难度的实验,它含盖了一个简单的二级文件系统的设计以及相关的接口命令编写的内容,也鉴于此把它放在了最

3、后一个实验。“一分耕耘,一分收获”,在完整的完成本实验,你将获得的收益是:对文件系统工作的机理,特别是linux的ext2文件系统工作机理了如指掌;linux下较强的编程能力。(注)文件系统实验由吴治诚(2110505021)和司默涵(2110505018)分工合作完成。具体分工如下:吴治诚同学主要负责程序主体算法(例如用户目录等)和有关文件功能的实现;司默涵同学主要负责子文件系统有关功能、位示图的实现和错误调试。2.实验方法详述2.1用户接口实验通过将自行创建的系统调用添加到linux内核中实现。2.2文件系统实验实际上是利用了高级语言对jinux的文件系统进行了模拟

4、。真正的文件系统对外存进行管理,涉及到许多硬件、设备管理方面的底层技术,一方面这些技术不属于操作系统核心内容,一方面过多的内容不免造成实验者顾此失彼,所以这里推荐一种使用内存来模拟外存的方式,可以跳过这些硬件技术而直接把精力放在数据结构设计和操作算法设计上面。3.详细实验过程3.1用户接口实验对于linux-3.0.2版本的系统添加方法:提示:建议使用Gcc-4.6版本(如果使用Ubuntu,建议使用Ubuntu12.04)471.修改arch/x86/include/asm/unistd_32.h,添加以下内容:#define__NR_mycallSYS_ID并修改文

5、件中的NR_syscalls,将其值增加12.修改arxh/x86/include/asm/syscalls.h添加以下内容:asmlinkagevoidsys_mycall();3.修改arch/x86/kernel/syscall_table_32.S,添加以下内容:.longsys_mycall编译内核(请尽量避免使用makeclean)1.配置内核(建议使用默认配置,仅仅修改localversions即,可当然也可以把一些无用的模块去掉)makemenuconfig2.编译内核(-jN中的N表示使用多少个线程编译,一般为处理器数目+1)make-j5bzImag

6、e3.编译内核模块make-j5modules4.安装内核模块(需要root权限)提示:模块被安装在/lib/modules/versions/下(比如2.6.31内核在config时设定其的localversions为-myservice,那么versions为2.6.31-myservice)sudomakemodules_install5.安装内核提示:在较新的Linux发行版中会自动生成init内存文件系统,并将配置文件、内核及init内存文件系统拷贝到/boot目录下,最后更新引导。sudomakeinstall6.(可选步骤)47提示:在较旧的发行版中,可能

7、需要手动生成init内存文件系统及更改引导。生成init内存文件系统:mkinitramfs-k-oinitrd.img-versionsversions更改引导(grub文件):参考原有的启动项,添加新内核的启动项即可。使用系统调用#includeintmain(intargc,char*argv[]){syscall(SYS_ID);return0;}运行程序后使用以下命令查看内核日志(printk的输出信息在内核日志中):dmesg3.2文件系统实验3.2.1外存管理其实很早人们设计操作系统的时候就意识到一个问题:所有的程序和数据不

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

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

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