欢迎来到天天文库
浏览记录
ID:47011757
大小:670.00 KB
页数:29页
时间:2019-12-03
《2016西安交通大学操作系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验报告实验一:用户接口实验一.实验目的1.理解面向操作命令的接口Shell。2.学会简单的shell编码。3.理解操作系统调用的运行机制。4.掌握创建系统调用的方法。操作系统给用户提供了命令接口和程序接口(系统调用)两种操作方式。用户接口实验也因此而分为两大部分。首先要熟悉Linux的基本操作命令,并在此基础上学会简单的shell编程方法。然后通过想Linux内核添加一个自己设计的系统调用,来理解系统调用的实现方法和运行机制。在本次实验中,最具有吸引力的地方是:通过内核编译,将一组源代码变成操作系统的内核,并由此重新引导系统,这对我们初步了
2、解操作系统的生成过程极为有利。二.实验内容1)控制台命令接口实验该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让实验者理解面向操作命令的接口shell和进行简单的shell编程。Ø查看bash版本。Ø编写bash脚本,统计/my目录下c语言文件的个数2)系统调用实验该实验是通过实验者对“Linux操作系统的系统调用机制”的进一步了解来理解操作系统调用的运行机制;同时通过“自己创建一个系统调用mycall()”和“编程调用自己创建的系统调用”进一步掌握创建和调用系统调用的方法。Ø编程调用
3、一个系统调用fork(),观察结果。-28-Ø编程调用创建的系统调用foo(),观察结果。Ø自己创建一个系统调用mycall(),实现功能:显示字符串到屏幕上。Ø编程调用自己创建的系统调用。一.实验步骤系统调用实验:1.首先将Linux-3.0.tar.bz2拷贝到/usr/src目录下——命令:cplinux-3.0.tar.bz2/usr/src/2.打开终端,获得root权限——命令:sudo–s3.进入/usr/src目录——命令:cd/usr/src4.解压linux源码——命令:tarxvzflinux-3.0.tar.bz25.进入目录
4、linux-3.0.5——命令:cdlinux-3.06.添加系统调用——操作:geditkernel/myservice.c在文本编辑器中添加#include#includeasmlinkagevoidsys_mycall(){printk(KERN_INFO"Hello,world!");return;}7.修改kernel/Makefile添加生成myservice.c添加到Makefile的编译规则中:obj-y+=myservice.o8..修改arch/x86/incl
5、ude/asm/unistd_32.h,添加以下内容:#define__NR_mycallSYS_ID-28-//SYS_ID表示新添加系统调用的调用号并修改文件中的NR_syscalls,将其值增加11.修改arxh/x86/include/asm/syscalls.h添加以下内容:asmlinkagevoidsys_mycall();2.修改arch/x86/kernel/syscall_table_32.S,添加以下内容:.longsys_mycall3.配置内核(仅仅修改localversions即可)——命令:makemenuconfig4
6、.编译内核——命令:make–j4bzImage(开4个线程编译)5.编译内核模块——命令:make–j4modules6.安装内核模块——命令:makemodules_install7.安装内核——命令:makeinstall8.重启系统,在系统选择页面选择进入自己编译的linux-3.0内核9.在桌面建立测试的C程序test.c程序内容如下:#includeintmain(intargc,char*argv[]){syscall(SYS_ID);//SYS_ID表示新添加系统调用的调用号return0;}10.编译程序——gcc
7、test.c–oa.out11.运行程序——./a.out12.查看内核日志(printk的输出信息在内核日志中):dmesg一.实验结果1.成功完成内核编译的任务,结果显示图如下:-28-1.下图为添加系统调用结果一.实验小结这次实验的内核编译需要进行一系列比较花时间的操作过程,但同时也锻炼了实际动手能力,在实践中对于操作系统这门课有了进一步的了解。同时,在本次实验中,学习了linux系统的使用方法,掌握了很多的基本命令,也明白了添加系统调用的方法,为以后的学习提供了很大的帮助。-28-实验四:一个简单文件系统的实现一.实验目的1.熟悉Ext文件系
8、统的原理2.根据Ext文件系统的数据结构和构建方法,自行实现一个简单的内存文件系统二.实验内容1.设计并实现
此文档下载收益归作者所有