第一范文网 - 专业文章范例文档资料分享平台

操作系统课程设计报告

来源:用户分享 时间:2025/6/1 13:44:36 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

华 中 科 技 大 学 课 程 设 计 报 告

label = gtk_label_new(\

gtk_container_add(GTK_CONTAINER(window),label);

gtk_widget_show_all(window);

g_signal_connect(window,\ /*线程的初始化*/

if(!g_thread_supported()) g_thread_init(NULL); gdk_threads_init(); /*创建线程*/

g_thread_create((GThreadFunc)cpu_usage, NULL, FALSE, NULL); }

else if((pid_3 = fork()) == 0){ gtk_init(&argc,&argv); /*窗口初始化*/

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window),\ gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_NONE); gtk_container_set_border_width(GTK_CONTAINER(window),100); /*标签*/

label = gtk_label_new(\

gtk_container_add(GTK_CONTAINER(window),label);

gtk_widget_show_all(window);

g_signal_connect(window,\ /*线程的初始化*/

if(!g_thread_supported()) g_thread_init(NULL); gdk_threads_init(); /*创建线程*/

g_thread_create((GThreadFunc)add, NULL, FALSE, NULL); }

gdk_threads_enter(); gtk_main ();

gdk_threads_leave(); return 0; }

实验二:

sys.c:

asmlinkage int sys_mysyscall(char* sourceFile,char* destFile){ int source=sys_open(sourceFile,O_RDONLY,0);

int dest=sys_open(destFile,O_WRONLY|O_CREAT|O_TRUNC,0600); char buf[4096]; mm_segment_t fs; fs = get_fs();

set_fs(get_ds()); //设置为内核的内存访问地址范围 int i;

if(source>0 && dest>0) {

20

华 中 科 技 大 学 课 程 设 计 报 告

do {

i=sys_read(source,buf,4096); sys_write(dest,buf,i); }while(i); }

sys_close(source); sys_close(dest); set_fs(fs); return 10; }

test.c:

#include #include

int main(){

syscall(326,\ return 0; }

实验三:

mydev.c:

#include \#include \#include \#include \#include \#include \#include \#include \#define BUFFER_SIZE 1024

static int my_open(struct inode *inode, struct file *file); static int my_release(struct inode *inode, struct file *file);

static ssize_t my_read(struct file *file, char __user *user, size_t t, loff_t *f); static ssize_t my_write(struct file *file, const char __user *user, size_t t, loff_t *f);

static char message[BUFFER_SIZE] = \static int device_num = 0;// static int counter = 0;//

static char* devname = \

struct file_operations pstruct = { .read = my_read, .write = my_write, .open = my_open,

.release = my_release };

int init_module(){

21

华 中 科 技 大 学 课 程 设 计 报 告

int ret;

ret = register_chrdev(0,devname,&pstruct); if(ret < 0){

printk(\ return -1; }

else {

printk(\ device_num = ret;

printk(\ printk(\

printk(\

printk(\

printk(\ printk(\ return 0; } }

void cleanup_module(){

unregister_chrdev(device_num,devname); printk(\}

static int my_open(struct inode *inode,struct file *file){ printk(\ printk(\ printk(\ try_module_get(THIS_MODULE); return 0; }

static int my_release(struct inode *inode,struct file *file){ printk(\ module_put(THIS_MODULE); return 0; }

static ssize_t my_write(struct file *file,const char __user *user,size_t t,loff_t *f){ if(copy_from_user(message,user,sizeof(message))) {

return -EFAULT; }

return sizeof(message); }

static ssize_t my_read(struct file *file,char __user *user,size_t t,loff_t *f){ if(copy_to_user(user,message,sizeof(message))) {

return -EFAULT; }

return sizeof(message);

22

华 中 科 技 大 学 课 程 设 计 报 告

}

test.c:

#include #include #include #include #include #include #include #define MAX_SIZE 1024

int main(void) {

int fd;

char buf[MAX_SIZE]; char get[MAX_SIZE];

char devName[20], dir[50] = \ system(\

printf(\ gets(devName);

strcat(dir, devName);

fd = open(dir, O_RDWR | O_NONBLOCK); if (fd != -1) {

read(fd, buf, sizeof(buf));

printf(\ /* 测试写 */

printf(\ gets(get);

write(fd, get, sizeof(get)); /* 测试读 */

read(fd, buf, sizeof(buf)); system(\

printf(\ close(fd); return 0; } else {

printf(\ return -1; } }

makefile:

ifeq ($(KERNELRELEASE),)

KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) modules:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules modules_install:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install clean:

23

搜索更多关于: 操作系统课程设计报告 的文档
操作系统课程设计报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7dbgq23kqn9epjx24qwd4i6jo0x1m70124n_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top