手机版

操作系统课程设计实验报告(5)

发布时间:2021-06-05   来源:未知    
字号:

ls命令的实现

打印内核信息的功能组织图如下图5.1-2:

内核模块传入参数的功能组织图如下图5.1-3:

ls命令的实现

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[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命令。

mode)

str[3] = 'x';可执行if(S_IRGRP & mode) str[4] = 'r';可读 if(S_IWGRP &

操作系统课程设计实验报告(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)