内容发布更新时间 : 2025/1/7 5:05:03星期一 下面是文章的全部内容请认真阅读。
实验目的
掌握Linux操作系统的使用方法; 了解Linux系统内核代码结构; 掌握实例操作系统的实现方法。
一、 实验要求
1、 掌握Linux操作系统的使用方法,包括键盘命令、系统调用;掌握在Linux
下的编程环境。
? 编一个C程序,其内容为实现文件拷贝的功能;
? 编一个C程序,其内容为分窗口同时显示三个并发进程的运行结
果。要求用到Linux下的图形库。
2、 掌握系统调用的实现过程,通过编译内核方法,增加一个新的系统调用。
另编写一个应用程序,调用新增加的系统调用。
实现的功能是:文件拷贝;
3、 掌握增加设备驱动程序的方法。通过模块方法,增加一个新的设备驱动
程序,其功能可以简单。
实现字符设备的驱动;
4、 了解和掌握/proc文件系统的特点和使用方法
? 了解/proc文件的特点和使用方法
? 监控系统状态,显示系统中若干部件使用情况 ? 用图形界面实现系统监控状态。
5、 设计并实现一个模拟的文件系统(选作)
二、 实验一
1、 编一个C程序,其内容为实现文件拷贝的功能
要实现文件拷贝功能,主要用到的函数是fopen、fputc、fgetc。 主要用到的头文件: #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
int main() {
char a[20],b[20]; scanf(\ getchar(); scanf(\
FILE *p=NULL,*q=NULL; p=fopen(a,\
if(p==NULL){printf(\ default\ q=fopen(b,\ char c;
while((c=fgetc(p))!=EOF) {
fputc(c,q); }
printf(\
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 ( //创建多少列