搜档网
当前位置:搜档网 › 实验5 Linux文件系统实验

实验5 Linux文件系统实验

实验5  Linux文件系统实验
实验5  Linux文件系统实验

实验五 Linux文件系统实验

实验内容:

1.仔细阅读以下代码;

2.画出系统功能框图

3.程序注释

4.运行程序,写出程序执行结果,并分析说明。

#include

#include

#include

#include

#include

#include

#include

#include

#define MAX 128

int chmd();

int chmd ()

{

int c;

mode_t mode=S_IWUSR;

printf(" 0. 0700\n 1. 0400\n 2. 0200 \n 3. 0100\n "); //还可以增加其它权限printf("Please input your choice(0-3):");

scanf("%d",&c);

switch(c)

{

case 0: chmod("file1",S_IRWXU);break;

case 1: chmod("file1",S_IRUSR);break;

case 2: chmod("file1",S_IWUSR);break;

case 3: chmod("file1",S_IXUSR);break;

default:printf("You have a wrong choice!\n");

}

return(0);

}

main()

{

int fd;

int num;

int choice;

char buffer[MAX];

struct stat buf;

char* path="/bin/ls";

char* argv[4]={"ls","-l","file1",NULL};

while(1)

{

printf("********************************\n");

printf("0. 退出\n");

printf("1. 创建新文件\n");

printf("2. 写文件\n");

printf("3. 读文件\n");

printf("4. 修改文件权限\n");

printf("5. 查看当前文件的权限修改文件权限\n");

printf("********************************\n");

printf("Please input your choice(0-6):");

scanf("%d",&choice);

switch(choice)

{

case 0:close(fd);

exit(0);

case 1:

fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750);

if(fd==-1)

printf("File Create Failed!\n");

else

printf("fd = %d\n",fd);

break;

case 2:

num=read(0,buffer,MAX);

write(fd,buffer,num);

break;

case 3:

read(fd,buffer,MAX);

write(1,buffer,num);

break;

case 4:

chmd ();

printf("Change mode success!\n");

break;

case 5:

execv(path,argv);

break;

default:

printf("You have a wrong choice!\n");

}

}

}

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

操作系统课程设计文件系统管理)

操作系统课程设计Array文件系统管理 学院计算机学院 专业计算机科学与技术 班级 姓名 学号 2013年1月8日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。 二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。 以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计

4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 四、需求分析 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名” 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory);在主文件目录中,每个用户目录文件都占有一个目

实验一Linux基本操作实验报告

实验一 Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.sodocs.net/doc/009554671.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

进程管理实验报告文档

实验一进程管理 1.实验目的: (1)加深对进程概念的理解,明确进程和程序的区别; (2)进一步认识并发执行的实质; (3)分析进程争用资源的现象,学习解决进程互斥的方法; (4)了解Linux系统中进程通信的基本原理。 2.实验预备内容 (1)阅读Linux的源码文件,加深对进程管理概念的理解; (2)阅读Linux的fork()源码文件,分析进程的创建过程。 3.实验内容 (1)进程的创建: 编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。 源代码: #include <> #include <> #include #include <> main() {

int p1,p2; p1=fork(); ockf()函数是将文件区域用作信号量(监视锁),或控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休态,直到资源解除锁定为止。而上面三个进程,不存在要同时进入同一组共享变量的临界区域的现象,因此输出和原来相同。 (3) a) 编写一段程序,使其实现进程的软中断通信。 要求:使用系统调用fork() 创建两个子进程,再用系统调用signal() 让父进程捕捉键盘上来的中断信号(即按DEL键);当捕捉到中断信号后,父进程用系统调用Kill() 向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Process 1 is killed by Parent! Child Process 2 is killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止: Parent Process is killed!

实验5_Linux文件压缩命令

实验5: Linux文件压缩命令 实验目标 了解文件压缩、解压的作用; 掌握Linux文件压缩/解压命令; 知识准备 Linux文件压缩软件包括tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar等,使用它们可以对.tar、.gz、.tar.gz、. tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar 等压缩包文件进行操作。 (1)tar命令 tar 可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。 语法:tar [主选项+辅选项] 文件或者目录 主选项: c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。t 列出档案文件的内容,查看已经备份了哪些文件。 u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。 x 从档案文件中释放文件。 辅助选项: b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。 f 使用档案文件或设备,这个选项通常是必选的。 k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。 m 在还原文件时,把所有文件的修改时间设定为现在。 M 创建多卷的档案文件,以便在几个磁盘中存放。 v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。 w 每一步都要求确认。 z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 (2)gzip命令 减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 语法:gzip [选项]压缩(解压缩)的文件名 各选项的含义: -c 将输出写到标准输出上,并保留原有文件。 -d 将压缩文件解压。 -l 对每个压缩文件,显示下列字段: 压缩文件的大小

实验5 Linux文件系统实验

实验五 Linux文件系统实验 实验内容: 1.仔细阅读以下代码; 2.画出系统功能框图 3.程序注释 4.运行程序,写出程序执行结果,并分析说明。 #include #include #include #include #include #include #include #include #define MAX 128 int chmd(); int chmd () { int c; mode_t mode=S_IWUSR; printf(" 0. 0700\n 1. 0400\n 2. 0200 \n 3. 0100\n "); //还可以增加其它权限printf("Please input your choice(0-3):"); scanf("%d",&c); switch(c) { case 0: chmod("file1",S_IRWXU);break; case 1: chmod("file1",S_IRUSR);break; case 2: chmod("file1",S_IWUSR);break; case 3: chmod("file1",S_IXUSR);break; default:printf("You have a wrong choice!\n"); } return(0); } main() { int fd; int num; int choice;

char buffer[MAX]; struct stat buf; char* path="/bin/ls"; char* argv[4]={"ls","-l","file1",NULL}; while(1) { printf("********************************\n"); printf("0. 退出\n"); printf("1. 创建新文件\n"); printf("2. 写文件\n"); printf("3. 读文件\n"); printf("4. 修改文件权限\n"); printf("5. 查看当前文件的权限修改文件权限\n"); printf("********************************\n"); printf("Please input your choice(0-6):"); scanf("%d",&choice); switch(choice) { case 0:close(fd); exit(0); case 1: fd=open("file1",O_RDWR|O_TRUNC|O_CREAT,0750); if(fd==-1) printf("File Create Failed!\n"); else printf("fd = %d\n",fd); break; case 2: num=read(0,buffer,MAX); write(fd,buffer,num); break; case 3: read(fd,buffer,MAX); write(1,buffer,num); break; case 4: chmd (); printf("Change mode success!\n"); break; case 5: execv(path,argv); break;

linux 实验报告 文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》 级系 专业班 学号: 姓名: 指导教师:

一、实验项目:用户与组群管理 二、实验日期: 三、实验原理: 1.熟悉Linux下常用的操作指令。 2.加深对文件,目录,文件系统等概念的理解。 3.掌握Linux文件系统的目录结构。 4.掌握有关Linux文件系统操作的常用命令。 5.了解有关文件安全方面的知识。 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$ 提示符下键入有关命令。 1.浏览文件系统 〈1〉运行pwd命令,确定你当前的工作目录。 〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。) 〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i 可以显示文件的I节点号) ls –ai 〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。 〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。

〈6〉使用cd命令,将工作目录改到根目录(/)上。 ①用相对路径将工作目录改到根目录。 ②用绝对路径将工作目录改到根目录。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。 〈8〉使用ls-l命令列出/dev的内容。 Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,你将工作目录移到什麽地方? 2.查看你的文件 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中。 Ls –l 反馈信息中有新文件 file1。请注意并记下文件长度为:

操作系统实验文件管理C 代码

#include #include #include #include #include using namespace std; #define BLKSIZE 512 // 数据块的大小 #define BLKNUM 512 // 数据块的块数 #define INODESIZE 32 // i节点的大小 #define INODENUM 32 // i节点的数目 #define FILENUM 8 // 打开文件表的数目//用户 typedef struct { char user_name[10]; // 用户名 char password[10]; // 密码 } User; //i节点 typedef struct { short inum; // 文件i节点号 char file_name[10]; // 文件名

char type; // 文件类型 char user_name[10]; // 文件所有者 short iparent; // 父目录的i节点号 short length; // 文件长度 short address[2]; // 存放文件的地址 } Inode; //打开文件表 typedef struct { short inum; // i节点号 char file_name[10]; // 文件名 short mode; // 读写模式(1:read, 2:write, // 3:read and write) } File_table; // 申明函数 void login(void); void init(void); int analyse(char *); void save_inode(int); int get_blknum(void); void read_blk(int); void write_blk(int);

文件系统与文件管理

学生课程实验报告书课程:《Linux操作系统》 级系 专业班 学号: 姓名: 指导教师: 2012—2013学年第 2 学期

一、实验项目:文件系统与文件管理 二、实验日期:2011年11月21日 三、实验原理: 掌握文件系统的挂载与卸载;磁盘配额管理;文件的权限修改;文件的归档与压缩; 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 1.对/文件系统实施用户级配额管理,对普通用户hellen与jerry进行配额 管理,磁盘空间软配额为300M,硬配额为350M,文件数量配额为:软配额12个,硬配额为15个。写出配额的具体步骤,并测试用户级配额是否成功。 答案:首先,创建hellen和jerry两个用户,配额步骤如下: 1)使用任何文本编辑工具编辑/etc/fstab文件,对“LABEL=/”所在行进行修改,增加命令选项usrquota。 2)重启电脑或者输入mount –o remount / 重新挂载/ 3)利用quotacheck命令创建https://www.sodocs.net/doc/009554671.html,er文件。 #touch https://www.sodocs.net/doc/009554671.html,er #quotacheck –mc /home

4)edquota hellen ,编辑hellen用户的bolck的软配额为300M,硬配额为350M,inodes的软配额为12个,硬配额为15个,修改内容如下: block soft hard inodes soft hard 0 307200 358400 0 12 15 5)将同样的配额设定复制给jerry用户 # edquota -p hellen jerry 6)启动配额管理 #quotaon –avu 之后,对配额进行测试,发现当拷贝文档个数大于12个或者文件大小超过300M的时候,终端进行警告提示,当文件个数大于15个或者文件大小超过350M的时候,不能往/写入任何内容。 2.在桌面环境下,选中有个文件或文件夹进行相应权限的修改。 3.用chmod命令分别用数字模式和功能模式修改/root/install.log文件属性。 答案:功能模式下修改权限 1)增加同组用户写入:chmod g+w /root/install.log 2)增加其他用户写入:chmod o+w /root/install.log 3)增加文件所有者写入:chmod u+w /root/install.log 4)增加同组用户读:chmod g+r /root/install.log 5)增加其他用户读:chmod o+r /root/install.log 6)增加文件所有者读:chmod u+r /root/install.log

实验4 文件和目录操作

《Linux操作系统》课程实验报告 班级:姓名:实验地点:日期: 实验4 文件和目录操作 一、实验目的 1、理解Linux文件系统的结构和目录组织方式; 2、掌握Linux常用目录和文件命令的使用。 二、实验内容与要求 以root用户身份登录Linux 1、Linux目录管理命令 (1)用pwd显示当前工作目录路径; (2)用cd命令先转到/home目录,再转到根目录; (3)用ls命令列出根目录下的所有文件和目录; (4)在/home目录下建立如下图所示的目录结构: (5)将目录temp4删除。 2、文件管理命令 (1)用cat命令在st目录下建立两个文件file1和file2,文件内容如下所示。然后用cat 命令将文件file1和file2的内容合并起来放到文件file3中。 file1文件内容: I love Linux 1 I love Linux 2 I love Linux 3 I love Linux 4 I love Linux 5 file2文件内容: I love Linux 6 I love Linux 7

I love Linux 8 I love Linux 9 I love Linux 10 (2)用touch命令更新文件file3的修改日期和时间(更新为你的生日) (3)cp命令 ①文件复制:将st目录下的file1、file2、file3复制到temp1目录下(可考虑使用通配符) ②目录复制:将temp1目录复制到temp2目录下(即temp1作为temp2的子目录) (4)mv命令 ①重命名:将st目录下的文件file3重命名为myfile ②文件移动:将st目录下的文件myfile移至temp2/temp1目录下 (5)rm命令 将temp2目录下的所有文件和子目录删除 3、显示文件内容命令 练习用cat命令显示文件file2的内容 三、实验环境 VMware+RHEL5 四、实验步骤及结果 步骤1:打开vmware,启动rhel5,以root用户登录系统。 步骤2:右键单击rhel5的桌面,在弹出的菜单中选择“打开终端”命令,打开伪终端窗口。步骤3:在命令提示符下输入pwd命令显示当前工作目录路径 步骤4:用cd /home命令先转到/home目录,再用cd /命令转到根目录; 步骤5:用ls-a命令列出根目录下的所有文件和目录; 步骤6:在/h ome目录下建立如下图所示的目录结构: 五、实验总结

计算机操作系统实验-文件管理

哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称:操作系统 课程类型:必修 实验项目名称:文件管理 实验题目:设计一个多用户的文件系统 班级:实验学院一班 学号:6040310110 姓名:张元竞 设计成绩报告成绩指导老师

一、实验目的 随着社会信息量的极大增长,要求计算机处理的信息与日俱增,涉及到社会生活的各个方面。因此,文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、实验要求及实验环境 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

兰州大学操作系统实验七存储管理题目和答案

实验七实验报告 实验名称:7 存储管理 实验目的: 1.观察系统存储器使用情况 2.观察进程使用存储器的情况 3.掌握通过内存映像文件提高性能的方法 4.掌握动态内存分配技术 实验时间 3学时 预备知识: 1.存储相关的命令 free 显示系统使用和未被使用的内存数量(可以实时执行) 输出包含的标题有 3 行信息: Mem。此行包含了有关物理内存的信息。包括以下详细内容: total。该项显示可用的物理内存总量,单位为KB。该数字小于安装的物理内存的 容量,是因为内核本身也要使用一小部分的内存。 used。该项显示了用于应用程序超速缓存数据的内存容量。 free。该项显示了此时未使用且有效的内存容量。 Shared/buffers 缓冲区/cached。这些列显示了有关内存如何使用的更为详细的信息。 -/+ buffers/cache。Linux 系统中的部分内存用来为应用程序或设备高速缓存数据。这部分内存在需要用于其他目的时可以释放。 free列显示了调整的缓冲区行,显示释放缓冲区或高速缓存时可以使用的内存容量。 Swap。该行显示有关交换内存利用率的信息。该信息包含全部、已使用和释放的可用内存容量。 vmstat 报告进程、内存、分页、IO等多类信息(使用手册页) size 列出目标文件段大小和总大小(使用手册页)

2./proc文件系统(使用手册页man 5 proc) /proc/meminfo 内存状态信息 /proc/stat 包含内存页、内存对换等信息。 /proc/$pid/stat 某个进程的信息(包含内存使用信息) /proc/$pid/maps某个进程的内存映射区信息,包括地址范围、权限、偏移量以及主次设备号和映射文件的索引节点。 /proc/$pid/statm 某个进程的内存使用信息,包括内存总大小、驻留集大小、共享页面数、文本页面数、堆栈页面数和脏页面数。 3.内存映像文件 内存映像文件是指把一个磁盘文件映像到内存中,二者存在逐字节的对应关系。这样做可以加速I/O操作,并可以共享数据。 3.1 mmap(建立内存映射) 表头文件#include #include 定义函数void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize); 函数说明mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。参数start指向欲对应的内存起始地址,通常设为NULL,代表让系统自动选定地址,对应成功后该地址会返回。参数length代表将文件中多大的部分对应到内存。 参数prot代表映射区域的保护方式有下列组合 PROT_EXEC 映射区域可被执行 PROT_READ 映射区域可被读取 PROT_WRITE 映射区域可被写入 PROT_NONE 映射区域不能存取 参数flags会影响映射区域的各种特性 MAP_FIXED 如果参数start所指的地址无法成功建立映射时,则放弃映射,不 对地址做修正。通常不鼓励用此旗标。 MAP_SHARED对映射区域的写入数据会复制回文件内,而且允许其他映射该 文件的进程共享。 MAP_PRIV A TE 对映射区域的写入操作会产生一个映射文件的复制,即私人的

操作系统精髓与设计原理-第12章-文件管理

第12章文件管理 复习题: 12.1、域和记录有什么不同? 答:域(field)是基本数据单位。一个域包含一个值。记录(record)是一组相关的域的集合,它可以看做是应用程序的一个单元。 12.2、文件和数据库有什么不同? 答:文件(file)是一组相似记录的集合,它被用户和应用程序看做是一个实体,并可以通过名字访问。数据库(database)是一组相关的数据集合,它的本质 特征是数据元素间存在着明确的关系,并且可供不同的应用程序使用。 12.3、什么是文件管理系统? 答:文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。12.4、选择文件组织时的重要原则是什么? 答:访问快速,易于修改,节约存储空间,维护简单,可靠性。 12.5、列出并简单定义五种文件组织。 答:堆是最简单的文件组织形式。数据按它们到达的顺序被采集,每个记录由一串数据组成。顺序文件是最常用的文件组织形式。在这类文件中,每个记录 都使用一种固定的格式。所有记录都具有相同的长度,并且由相同数目、长度 固定的域按特定的顺序组成。由于每个域的长度和位置已知,因此只需要保存 各个域的值,每个域的域名和长度是该文件结构的属性。索引顺序文件保留 了顺序文件的关键特征:记录按照关键域的顺序组织起来。但它还增加了两个 特征:用于支持随机访问的文件索引和溢出文件。索引提供了快速接近目标记 录的查找能力。溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中 的记录可以根据它前面记录的指针进行定位。索引文件:只能通过索引来访 问记录。其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针 指向这条记录即可。此外,还可以使用长度可变的记录。直接文件或散列 文件:直接文件使用基于关键字的散列。 12.6、为什么在索引顺序文件中查找一个记录的平均搜索时间小于在顺序文件中的平均 搜索时间? 答:在顺序文件中,查找一个记录是按顺序检测每一个记录直到有一个包含符合条件的关键域值的记录被找到。索引顺序文件提供一个执行最小穷举搜索的索引 结构。 12.7、对目录执行的典型操作有哪些? 答:搜索,创建文件,删除文件,显示目录,修改目录。 12.8、路径名和工作目录有什么关系? 答:路径名是由一系列从根目录或主目录向下到各个分支,最后直到该文件的路径 中的目录名和最后到达的文件名组成。工作目录是一个这样的目录,它是含有用 户正在使用的当前目录的树形结构。 12.9、可以授予或拒绝的某个特定用户对某个特定文件的访问权限通常有哪些? 答:无(none),知道(knowledge),执行(execution),读(reading),追加(appending), 更新(updating),改变保护(changing protection),删除(deletion)。 12.10、列出并简单定义三种组块方式。 答:固定组块(fixed blocking):使用固定长度的记录,并且若干条完整的记录被保存在一个块中。在每个块的末尾可能会有一些未使用的空间,称为内部碎片。

2016-Linux文版-实验5-用户与组群管理-学生实验报告模板-P课件

C H A N G Z H O U U N I V E R S I T Y 实 验 报 告 课程名称: Linux 操作系统 实验名称: 实验5、用户与组群管理 学 生 姓 名: 孙文浩 班 级 计算机141 学 号 14416122 学 院(系): 信息数理学院 指 导 教 师: 庄丽华 实验时间: 2016 年 10 月 25 日 实验成绩:

实验五、用户与组群管理 一、实验要求 (1)掌握利用shell命令管理用户与组群的方法; (2)掌握批量新建用户账号的步骤和方法。 二、实验内容和实验步骤 1、利用shell命令管理用户与组群的方法 【操作要求1】新建一名为duser的用户,设置口令为“123456”,主要组群为myusers。【操作步骤】 (1)进入终端,以超级用户身份登录。 (2)输入命令:groupadd myusers建立组群。 (3)输入命令:useradd – g myusers duser,建立新用户duser,其主要组群是myusers。(4)为新用户设置口令,输入命令:passwd duser,根据屏幕提示输入两次口令,最后屏幕提示口令成功设置信息。 (5)输入命令:cat /etc/passwd,查看/etc/passwd文件的内容,发现文件的末尾增加了duser 用户信息。 (6)输入命令:cat /etc/group,查看cat /etc/group文件的内容。以上步骤截图: (7)按【Alt+F4】组合键,切换到第四个虚拟终端,输入duser用户名和口令登陆到linux 系统。 (8)输入命令:exit,duser用户退出登陆。 【操作要求2】将duser用户设置为不需要口令就能登陆。 【操作步骤】 (1)按【Alt+F3】组合键,切换到正被超级用户使用的第3个虚拟终端。

操作系统文件管理系统模拟实验

文件管理系统模拟 1.实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 2.实验内容 为Linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条) login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。 3.实验提示 (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。入file0,file1,file2…并以编号作为物理地址,在目录中进行登记。 4.源代码 #include #include #include #define MEM_D_SIZE 1024*1024 //总磁盘空间为1M #define DISKSIZE 1024 //磁盘块的大小1K #define DISK_NUM 1024 //磁盘块数目1K #define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT表大小 #define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号 #define ROOT_DISK_SIZE sizeof(struct direct) //根

操作系统文件系统实验

实验四文件系统实验 一.实验题目: 文件系统实验 二.实验目的: 阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 了解设计一个n个用户的文件系统,每个用户可以保存M个文件。用户在一次运行中只能打开一个文 件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令. 三.实验设备及环境: 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统,C语言软件。 四.实验内容及要求: 在阅读所给文件系统源程序的基础上,画出其实现的详细流程图,并给出有关的数据结构和说明。 五. 实验方法内容 1.算法流程图

(2)void Execute(int i,int len,int cmdset)执行命令函数流程图 (3)创建文件

(4)写文件流程图 (5)修改文件执行权限 (6

2.主要的常量变量 char cmd[64]; //存放用户输入命令 char buffer[36]; char user[32];//存放当前登陆的用户名 typedef char ALFA[12]; ALFA KWORD[keynum]; struct UFD{//用户文件管理模块 char filename[32]; //文件名 int safecode; //文件保护码 long length; //文件长度 }*curfile = NULL; struct MFD{//用户登陆信息管理模块 char username[32]; //用户名 bool filepoint; //用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件 }*curuser = NULL,*elseuser=NULL; typedef UFD UFD; typedef MFD MFD; 3.主要模块 void KeyWord()//初始化命令关键字 int LoginDisplay() //登陆选项操作函数 bool Login(int SELETE)//用户登陆,注册函数 void DisplayUFD()//打印用户信息,包括用户的各个文件 //名称、长度和操作权限的设置信息 void ByeFile(bool BOOL)//注销函数,调用次函数用户可以退出系统 bool ClearUserFile()//用户要将自己的注册目录从系统彻底删除 //首先将该用户目录下的全部文件删除 void ClearUserMes()//删除用户全部信息 void CreatFile()//在当前用户目录下创建文件 void DeleteFile() //删除当前目录下一个文件的操作 void ListAllFile()//显示当前用户目录下的文件信息 bool QueryModElse(bool BOOL,bool &flag)//查询其它用户目录下文件的文件 //当该文件的权限允许当前用户对其执行有关操作时,返回ture bool QueryMod(bool BOOL)//查询权限 bool WriteRight(int len,bool BOOL)//查看是否已经正确地写入到该文件信息中 void WriteLengthToFile(int Len,bool BOOL)//将文件长度写入文件管理模块中 void WriteFile()//向文件写入信息的操作 void ReadFile()//读文件函数 void ChangeMod()//修改某文件的执行权限 void Execute(int i,int len,int cmdset)//执行命令函数 void Command()//读取用户输入的命令,并将其转换成系统能识别的命令 void main() 4.代码 /***************************************************************** * 文件名: Simple_file_system.c * 功能: 简单文件管理系统模拟程序 *******************************************************************/ #include #include #include #include #include "conio.h" #include #define NULL 0 #define keynum 10 #define getspace(type) (type*)malloc(sizeof(type)) char cmd[64]; //存放用户输入命令 char buffer[36];//

相关主题