文档详情

操作系统课程设计实验报告.doc

发布:2017-06-04约3.77千字共18页下载文档
文本预览下载声明
西安郵電學/uid-796091-id-3206153.html; 给内核模块传入参数path,其中path为绝对路径; 当path为目录时,显示目录对应的dentrey结构中的相关信息(可打印的信息); 当path为文件时,显示文件对应的indoe结构中的相关信息(可打印的信息); 当路径错误时,有错误提示信息。 开发环境 开发环境如下表2.3-1: 设备名称 设备类型 配置类型 参数 Pc机 硬件配置 软件配置 其他配置 无 表2.3-1 4测试环境 设备名称 设备类型 配置类型 参数 Pc机 硬件配置 软件配置 其他配置 无 5总体设计 5.1功能组织图 Ls命令的功能组织图如下图5.1-1: 打印内核信息的功能组织图如下图5.1-2: 内核模块传入参 5.2原理 linux解释:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统 linux下c编程与windows下c编程的区别:C标准都是一样的,但是不同的操作系统下有不同的系统API调用,也有不同的编译器!如果只是做简单的练习,不需要调用系统函数的话,是完全一样的,但是在WINDOWS下编译生成的可执行文件在LINUX下是运行不起来的,要在LINUX下运行必须用LINUX下的编译器,比如GCC,这种编译器可以找到WINDOWS版本的,但是编译出来的就在WINDOWS下运行不了!简单说就是不同操作系统下的可执行文件是不能通用的,因为不同的操作系统有不同的进程结构. 文件系统原理:opendir函数的参数为一个绝对路径或者相对路径,返回值为结构体dirent类型的数值或者空值。结构体dirent中包含d_name选项,d_name中是文件名称。Stat函数参数1是文件的绝对路径,参数2是struct stat 结构体的一个参数,ststat(,info);返回目录的相关信息,st_mode文件类型 st_uid用户(id) st_gid组(id),st_size文件大小 st_nlike文件连接数,st_mtime文件最后修改时间 st_atime最后访问时间,st_ctime文件属性最后改变时间。在sys/stat.h有如下定义: #define S_IFMT 0170000 记录文件的类型#define S_IFREG0100000 regular #define S_IFDIR 0040000directory #define S_IBLK 0060000特殊块 #define S_IFCHR 0020000字符块 #define S_IFIFO 0010000 fifo #define S_IFLNK 0120000文件连接数 #define S_IFSOCK 0140000通道 if(S_ISDIR(mode)) str[0] = d;是设备if(S_ISCHR(mode)) str[0] = c;字符设备if(S_ISDIR(mode)) str[0] = b;块设备if(S_IRUSR mode) str[1] = r;可读if(S_IWUSR mode) str[2] = w;可写if(S_IXUSR mode) str[3] = x;可执行if(S_IRGRP mode) str[4] = r;可读 if(S_IWGRP mode) str[5] = w;可写if(S_IXGRP mode) str[6] = x; 可执行if(S_IROTH mode) str[7] = r;可读 if(S_IWOTH mode) str[8] = w;可写if(S_IXOTH mode) str[9] = x;可执行。Struct passwd 结构体中pw_name 用户名,pw_passwd用户密码,pw_uid用户id,pw_gid 组id,pw_gecos真是名称pw_dir用户目录pw_shell shell命令。 6详细设计 6.1.1模块一ls命令实现 功能 ①ls -l:每个文件单独占一行,显示文件的详细属性信息 ②ls -a:显示包括隐藏文件在内的所有文件 ③ls -u:显示出文件的最后访问时间 ④ls:显示的文件名按字典顺序排序 ⑤ls /指定目录:显示当前目录下的内容 ⑥ls -lu:每个文件单独占一行,显示文件的详细属性信息,并且显示出文件的最后访问时间 ⑦ls -la:显示包括隐藏文件在内的所有文件的详
显示全部
相似文档