- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上海大学操作系统2实验报告).doc.doc
SHANGHAI UNIVERSITY
计算机操作系统实验报告
(实验四、五、六)
学 院 计算机工程与科学学院
专 业 计算机科学与技术
学 号 姓 名 金玉倩
教 师 吴绍春
日 期 2010-2
《计算机操作系统》实验报告
实验四题目:Linux文件系统实验
姓名:金玉倩 学号 实验日期:2009.1
实验目的:
1.掌握操作系统中文件分类的概念。
2.了解Linux文件系统管理文件的基本方式和特点。
3.学会使用Linux文件系统的命令界面和程序界面的基本要领。
实验内容:
1.用shell命令查看Linux文件类型。
Linux的文件类型包括:普通文件(—)、目录文件(d)、字符设备文件(c)、块设备文件(b)硬链接文件、套接口文件(s)、符号链接文件(l)和管道文件(p)。
2.用shell命令了解Linux文件系统的目录结构。
3.用命令分别建立硬链接文件和符号链接文件。通过ls -il命令所示的inode、链接计数观察他们的区别。
◆思考题:建立硬链接文件和建立符号链接文件有什么区别?
答:硬连接指通过索引节点来进行的连接。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。
其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
与硬连接相对应的另一种连接,称为符号连接(软连接)。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
如上图实验所示:
touch f1(创建一个f1的文件)
ln f1 f2 创佳一个f2的硬连接
ln -s f1 f3 创建一个f3的软连接
此时如果删除f3,对f1、f2无影响;如果删除f2,对f1、f3也无影响,如果删除f1,那么因为f2也应用f1,所以并不影响f2节点的,cat创建的文件仍然存在;但是此时f3因为是软连接,导致f3失效。如果删除f1、f2 ,那么cat创建的文件会被删除。
4.复习Unix或Linux操作系统文件目录信息i节点的概念。编程观察看指定文件的inode信息。
将书上例程8的内容输入p3.c后,编译执行。
5.再来一个更有趣的实验。修改父进程创建子进程的程序,用显示程序段、数据段地址的方法,说明子进程继承父进程的所有资源。再用父进程创建子进程,子进程调用其它程序的方法进一步证明执行其它程序时,程序段发生的变化。
将书上例程10显示程序、数据段地址的程序的内容输入p4.c、p5.c后,编译执行。
6.编写一个涉及流文件的程序。要求:
A.以只读方式打开一个源文本文件
B.以只读方式打开另一个源文本文件
C.以只读方式打开目标文本文件
D.将两个源文件内容复制到目标文件
E.将目标文件改为指定的属性
F.显示目标文件
将书上例程11的内容输入p6.c后,编译执行。
体会:
也许这学期的三个实验中就这个最难了。不仅有书上的概念,书上讲的不清楚的,还得自己从网上搜集资料。对于Linux中文件的软硬链接理解得算是透彻了,对于i节点的理解也更深入了一步,Unix系统的内核结构真的是非常方便实用,基于它衍生的许多技术都将是我未来关注学习的焦点。
附录:(源程序)
//p3.c
#includesys/stat.h
#includesys/types.h
#includesys/sysmacros.h
#includestdio.h
#includetime.h
#includeunistd.h
#includestring.h
#includeerrno.h
#define TIME_STRING_LEN 50
char *time2String (time_t tm,char *buf)
{struct tm *local;
local=localtime(tm);
strf
文档评论(0)