华中科技大学计算机学院操作系统课程设计报告[1]

  • 格式:docx
  • 大小:501.14 KB
  • 文档页数:29

下载文档原格式

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

华中科技大学

嵌入式操作系统课程设计实验报告

院系:计算机科学与技术学院

专业:

班级:

姓名:

指导老师:

报告时间:

计算机科学与技术学院

目录

1.课程设计目的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3

2.课程设计环境搭建⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3

3.内容一:熟悉和理解 Linux 编程环境

3.1 内容要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5

3.2 设计过程及实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5

4.内容二:掌握添加系统调用的方法

4.1 内容要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9

4.2 设计过程及实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9

5.内容三:掌握添加设备驱动程序的方法

5.1 内容要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17

5.2 设计过程及实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17

6.内容四:理解和分析 /proc 文件

6.1 内容要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯22

6.2 设计过程及实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯22

1课程设计目的

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

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

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

2课程设计环境搭建

(1) windows 7 上,利用虚拟机软件 VMware软件搭建的 linux 平台:◎Ubuntu 11.10(安装包:ubuntu-11.10-desktop-i386)

◎内核: linux-headers-3.0.0-12-generic

( 2)更改 root 登录:

在现阶段 Ubuntu 的系统中,是不允许直接以root 身份登录系统的,但是在做课设的过程中,需要大量的使用root 权限来进行命令的操作。如果以普通用户登录ubuntu ,会连编辑一个文件都非常周折。为此,我找到了一种修改系统

文件,以达到直接使用root 身份登录的方法:

◎开始的时候,只能以普通用户登录,用Ctrl+Alt+T打开终端:

初始化 / 修改 root 密码

sudo passwd root

用 vi 编辑器修改这个文件:

sudo vi /etc/lightdm/lightdm.conf

在文件最后加入这么一行代码:

greeter-show-manual-login=true

然后保存退出, sudo reboot重启系统。之后就可以输入root 用户登录。

(3)在添加系统调用中用到的其他内核包:◎下载和当前实验

环境最为接近的系统版本(这点很重要)

使用 apt-get install linux-source-3.0.0 命令,

◎下载结果是 linux-source-3.0.0.tar.bz2

◎解压命令: tar–xjvf linux-source-3.0.0.tar.bz2– C /usr/src

◎解压后,在 /usr/src目录下得到内核文件夹linux-source-3.0.0

(4)在调用 linux 图形库时需要安装 GTK环境:◎

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

apt-get install build-essential

Tip :如果提示由于依赖项不能安装,需要使用apt 的强化版 aptitude ,这个工具可以自动分析软件包依赖,系统一般不自带,需要先安装,具体过程是:apt-get install aptitude

aptitude install build-essential

aptitude这个工具很强大,对于解决软件包安装时的依赖问题很有帮助。

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

apt-get install gnome-core-devel

◎安装 GTK核心组件:

apt-get install libgtk2.0-dev

这个安装完成后, GTK环境就基本搭建成功,网上有些教程说要安装其他配置文件,经我亲测,发现只要安装libgtk2.0-dev这个包就能搞定。

3 内容一:熟悉和理解Linux 编程环境

3.1内容要求

(1)编写一个 C 程序,实现文件拷贝功能

(2)编写一个 C程序,使用 Linux 下的图形库,分窗口显示三个并发进程运行;

3.2设计过程及实现

(1)文件拷贝:

①文件的拷贝主要的思想就是利用文件指针操作,在两个文件之间进行按字符

的fget 和 fput 。从而完成整个文件的拷贝操作。在这个基本功能之外,需要增

加程序的健壮性,具体有以下几个方面:

·源文件是否存在且能读取数据;·是否能创建

目的文件,且能向里面写入数据;·程序需要的

argc 参数个数是否满足要求;

②基于以上几点和内容要求,主要的程序段如下:

if(argc!=3)// 判断参数个数是否为 3 ,否则返回

{

printf("Error in argc!\n");

return 0;

}

if( (fsource=fopen(argv[1],"rb"))==NULL )

{

printf("Error in open source file!\n");// 判断源文件是否能打开和读出

return 0;

}

if( (ftarget=fopen(argv[2],"wb"))==NULL )

{

printf("Error in open target file!\n");// 判断目的文件时候能创建和写入

return 0;

}

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

{

fputc(c,ftarget);// 按字符读取和写入数据

}