- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
操作系统原理试验汇报
试验一:顾客接口试验
试验目的
理解面向操作命令的接口Shell。
学会简朴的shell编码。
理解操作系统调用的运行机制。
掌握创立系统调用的措施。
试验内容
1)控制台命令接口试验
该试验是通过“几种操作系统的控制台命令”、“终端处理程序”、“命令解释程序”和“Linux操作系统的bash”来让试验者理解面向操作命令的接口shell和进行简朴的shell编程。
查看bash版本。
编写bash脚本,记录/my目录下c语言文献的个数
2)系统调用试验
该试验是通过试验者对“Linux操作系统的系统调用机制”的深入理解来理解操作系统调用的运行机制;同步通过“自己创立一种系统调用mycall()”和“编程调用自己创立的系统调用”深入掌握创立和调用系统调用的措施。
编程调用一种系统调用fork(),观测成果。
编程调用创立的系统调用foo(),观测成果。
自己创立一种系统调用mycall(),实现功能:显示字符串到屏幕上。
编程调用自己创立的系统调用。
试验原理
1.控制台命令接口
操作系统向顾客提供一组控制台命令,顾客可以通过终端输入命令的方式获得操作系统的服务,并由此来控制自己作业的运行。一般来讲,控制台命令应当包括:一组命令、终端处理程序以及命令解释程序。
bash的由来
当登录Linux或者打开一种xterm时,目前默认的shell就是bash。Bash是GNUProject的shell。GNUProject是自由软件基金会(FreeSoftwareFoundation)的一部分。它对Linux下的许多编程工具负责。Bash(BourneAgainShell)是自由软件基金会公布的Bourneshell的兼容程序。它包括了其他有些shell的许多良好的特性,功能非常的全面。诸多Linux版本都供bash。
bash的大体原理
bash处理自己的脚本时,先找到需要处理的命令名称,进而在目前顾客的默认命令目录中找到对应的命令,这些默认目录一般是/usr/bin、/bin或/sbin。在执行这些命令时,先使用进程创立系统调用fork(),在使用exex()来执行这些命令。
2.系统调用
系统调用是操作系统为程序员提供的接口服务。使用系统调用,程序员可以更充足的运用计算机资源,使编写的程序愈加灵活,功能愈加强大。程序员在对系统充足理解的状况下甚至可以订做系统调用,实现那些非专业程序员所难以实现的功能。
试验环节
1.控制台命令接口试验指导
查看bash版本
在shell提醒符下输入:
$echo$BASH_VERSION
显示如下成果:
编写bash脚本:记录/my目录下c语言文献的个数
通过bash脚本,可以有多种方式实现这个功能,而使用函数是其中个一种选择。在使用函数之前,必须先定义函数。
(1)进入自己的工作目录,用vi编写名为count的文献
cd/home/student#在home/student目录下编程
vicount
下面是脚本程序:
#!/bin/bash
functioncount
{
echo–nNumberofmatchesfor$1:#接受程序的第一种参数
ls$1|wc–l#对子程序的第一种参数所在的目录进行操作
}
(2)执行
将count文献复制到目前目录下,然后在目前目录下建立文献夹my:
mkdirmy
cdmy
vi1.c#在my目录下建立几种c文献,以便用来进行测试
...
cd...
chmod+xcount
count./my/*.c
2.系统调用试验指导
编程调用一种系统调用fork()
在应用程序中调用系统调用fork()非常简朴,下面的程序可以很清晰的显示出有fork()系统调用生成了子进程,而产生的分叉作用:
#includestdio.h
intmain()
{
intiUid;
iUid=fork();
if(iUid==0)
for(;;){printf(Thisisparent.\n);
sleep(1);
}
if(iUid0)
for(;;){
printf(Thisischild.\n);
sleep(1);
}
if(iUid0)printf(Cannotusesystemcall.\n);
return0;
}
下面是也许得到的一种成果:
thisischil
文档评论(0)