西安交通大学操作系统课内实验报告精选.doc
文本预览下载声明
西安交通大学
实验报告
——操作系统原理课内实验
姓名:
班级:
学号:
实验一 用户接口实验
一、 实验目的
1、理解并掌握面向操作命令的接口Shell,学会简单的shell编码。
2、理解操作系统调用的运行机制,掌握创建系统调用的方法。
二、 实验内容
1、 控制台命令接口实验
理解面向操作命令的接口shell和进行简单的shell编程。
该实验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux 操作系统的 bash”来让实验者理解面向操作命令的接口 shell 和进行简单的 shell 编程。
查看 bash 版本。
编写 bash 脚本,统计/my 目录下 c 语言文件的个数 2) 系统调用实验 。
2、系统调用实验
理解操作系统调用的运行机制。
该实验是通过实验者对“Linux 操作系统的系统调用机制”的进一步了解来理解操作 系统调用的运行机制;同时通过“自己创建一个系统调用 mycall()”和“编程调用自己 创建的系统调用”进一步掌握创建和调用系统调用的方法。
编程调用一个系统调用 fork(),观察结果。
编程调用创建的系统调用 foo(),观察结果。
自己创建一个系统调用 mycall(),实现功能:显示字符串到屏幕上。
编程调用自己创建的系统调用。
三、实验准备
为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现 人机交互。经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。前者主 要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方 便地使用计算机的各种资源。
四、 实验步骤及结果
1、 控制台命令接口实验
(1)查看 bash 版本
操作:
在 shell 提示符下输入:
$echo $BASH_VERSION
结果:
版本是4.2.42(1)-release
(2)建立 bash 脚本,输出 Hello word
操作:
在编辑器中输入以下内容
#!/bin/bash
echo Hello World!
结果:
操作:
执行脚本 使用指令:
$./text
结果:
(3)编写 bash 脚本:统计/my 目录下 c 语言文件的个数
通过 bash 脚本,可以有多种方式实现这个功能,而使用函数是其中个一个选择。
在使用函数之前,必须先定义函数。 进入自己的工作目录,编写名为 count 的文件。
脚本程序:
#! /bin/bash
function count
{
echo –n Number of matches for $1: #接收程序的第一个参数
ls $1|wc –l #对子程序的第一个参数所在的目录进行操作
}
将 count 文件复制到当前目录下,然后在当前目录下建立文件夹,在 my 目录下建立几个 c 文件,以便用来进行测试。
添加系统调用
(1)编程调用一个系统调用fork(),观察结果。
源程序:
# include stdio.h
int main()
{
int iUid;
iUid=fork();
if(iUid==0)
for(;;) { printf(This is child process.\n);
sleep(1);
}
if(iUid0)
for(;;) {
printf(This is parent process.\n);
sleep(1);
}
if(iUid0) printf(Can not use system call.\n);
return 0;
}
实验结果:
(2)操作:
1. Linux-3.0.tar.bz2拷贝到/usr/src目录下——命令:cp linux-3.0.tar.bz2
/usr/src/
2. 打开终端,获得root权限——命令:sudo –s
3. 进入/usr/src目录——命令:cd /usr/src
4. 解压linux源码——命令:tar xvzf linux-3.0.tar.bz2
5. 进入目录linux-3.0.5——命令:cd linux-3.0
6. 添加系统调用——:gedit kernel/myservice.c 在文本编辑器中添加
#include linux/kernel.h
#include linux/linkage.h
asmlinkage void sys_mycall()
{
printk(KERN_
显示全部