华中科技大学计算机操作系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验目的

掌握Linux操作系统的使用方法;

了解Linux系统内核代码结构;

掌握实例操作系统的实现方法。

一、实验要求

1、掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux

下的编程环境。

●编一个C程序,其内容为实现文件拷贝的功能;

●编一个C程序,其内容为分窗口同时显示三个并发进程的运行结

果。要求用到Linux下的图形库。

2、掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。

另编写一个应用程序,调用新增加的系统调用。

实现的功能是:文件拷贝;

3、掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动

程序,其功能可以简单。

实现字符设备的驱动;

4、了解和掌握/proc文件系统的特点和使用方法

●了解/proc文件的特点和使用方法

●监控系统状态,显示系统中若干部件使用情况

●用图形界面实现系统监控状态。

5、设计并实现一个模拟的文件系统(选作)

二、实验一

1、编一个C程序,其内容为实现文件拷贝的功能

要实现文件拷贝功能,主要用到的函数是fopen、fputc、fgetc。

主要用到的头文件:

#include

#include

设计思路:由scanf函数获取2个文件名,根据其文件名和路径分别打开该2个文件,设置一个循环,从源文件复制1个字节到目

的文件,直到源文件指针到文件尾,最后关闭2个文件。

在可能出错的地方需要加上相应的报错代码,并输出错误信息,以方便调试。

理清楚设计思路后,首先搭建linux下编程环境。

安装gcc:sudo apt-get install build-essential

安装codeblocks:sudo apt-get install codeblocks

在集成开发环境Code::Blocks IDE下根据需求写出相应的源代码copy.c,将程序编译并生成exe可执行文件。

然后手动创建一个测试文件test.txt ,运行copy.exe文件,并输入

text.txt与target.txt。

这样就能将源文件test.txt复制到目标文件target.txt

程序源代码copy.c:

#include

#include

int main()

{

char a[20],b[20];

scanf("%s",a);

getchar();

scanf("%s",b);

FILE *p=NULL,*q=NULL;

p=fopen(a,"rb");

if(p==NULL){printf("%s default",a);return 0;}

q=fopen(b,"wb+");

char c;

while((c=fgetc(p))!=EOF)

{

fputc(c,q);

}

printf("copy success");

return 0;

}

2、编一个C程序,其内容为分窗口同时显示三个并发进程的运行结果。要

求用到Linux下的图形库。

安装Linux下的GTK+:

sudo apt-get install build-essential

这将安装gcc/g++/gdb/make 等基本编程工具

sudo apt-get install gnome-core-devel

这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

sudo apt-get install pkg-config

用于在编译GTK程序时自动找出头文件及库文件位置

sudo apt-get install devhelp

这将安装 devhelp GTK文档查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc

这将安装 gtk/glib 的API参考手册及其它帮助文档

sudo apt-get install glade libglade2-dev

这将安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库

sudo apt-get install libgtk2.0*, gtk+2.0

所需的所有文件统通下载安装完毕

编写一个GTK+程序的基本步骤如下:

●初始化Gtk

●建立控件

●登记消息与消息处理函数

●执行消息循环函数gtk_main()

初始化主要使用的函数有

gtk_init(&argc,&argv); //启动GTK

gtk_window_new(GTK_WINDOW_TOPLEVEL); //创建窗口

gtk_window_set_title(GTK_WINDOW(window),"标题名"); //设置窗口标题名

gtk_widget_set_usize(window, 200, 200); //设置窗口大小

gtk_widget_show(window); //显示窗口

建立控件的一般流程

/*创建表格准备封装*/

gtk_table_new ( //创建多少列

相关文档
最新文档