linux应用课程设计指导书.docx
《linux应用课程设计指导书.docx》由会员分享,可在线阅读,更多相关《linux应用课程设计指导书.docx(17页珍藏版)》请在冰豆网上搜索。
linux应用课程设计指导书
Linux应用课程设计指导书
(2013级网络工程)
设计一LINUX下FTP服务器配置
1设计目的
通过对Linux下FTP服务器的配置,掌握FTP的基本概念和VSFTP服务器的设计架设及访问FTP服务器的方法,通过与同组同学的合作锻炼学生的合作能力。
2设计内容
根据已经学习的网络服务基础知识,架设基于VSFTP的服务器,掌握VSFTP的配置文件的具体内容和服务器的配置方法,配置一个FTP服务器实例,通过客户机的访问验证自己的服务与配置。
3设计要求
1)掌握FTP工作原理、传输模式及在实际系统中应用的方法;
2)掌握常用的FTP命令;
3)安装VSFTP服务器,掌握其文件目录结构和作用,搭建一个测试用的文件系统结构;
4)学习掌握vsftpd.conf,vsftpd.ftpusers文件的配置内容和方法,完成一个具体的FTP服务器的配置;要求对于匿名账号和真实账号都能够有效地支持访问;
5)实现从不同的操作系统平台(Windows和Linux)下访问FTP服务器;
6)学习了解其他的FTP服务器软件并进行比较,如WU-FTP、proftpd、pure-ftpd等。
4设计装置
无。
5设计步骤
1)了解基础知识;
2)与同组同学一起讨论出任务的分配方式;
3)设计服务的基本方案,安装配置系统;
4)测试并对测试结果进行分析;
5)撰写报告。
6报告及要求
1)设计题目;
2)同组同学任务的分配方式;
3)设计基本原理、服务配置方法、服务安装配置过程、测试方案及结果。
4)体会。
设计二LINUX下DNS服务器配置
1设计目的
通过对Linux下DNS服务器BIND的配置,掌握DNS的基本概念和BIND服务器的设计架设及访问DNS服务器的方法,通过与同组同学的合作锻炼学生的合作能力。
2设计内容
根据已经学习的网络服务基础知识,架设基于BIND的服务器,掌握BIND的配置文件的具体内容和服务器的配置方法,配置一个DNS服务器实例,在本地和网络上验证自己的服务与配置。
3设计要求
1)掌握DNS工作原理、三种基本的域名服务器及在实际系统中应用;
2)安装BIND服务器,规划一个测试用的域名系统;
3)学习掌握named.conf,resolv.conf,host.conf文件的配置内容和方法;
4)配置一个主域名服务器,编辑配置named.conf、正向和反向域名解析文件;
5)在本地验证自己的DNS配置;配置客户端,从网络上验证DNS服务;
6)了解DNS的负载均衡、直接域名解析和泛域名解析的配置方法。
4设计装置
无。
5设计步骤
1)了解基础知识;
2)与同组同学一起讨论出任务的分配方式;
3)设计服务的基本方案,安装配置系统;
4)测试并对测试结果进行分析;
5)撰写报告。
6报告及要求
1)设计题目;
2)同组同学任务的分配方式;
3)设计基本原理、服务配置方法、服务安装配置过程、测试方案及结果。
4)体会
设计三LINUX下电子邮件服务器配置
1设计目的
通过对Linux下电子邮件服务器的配置,掌握电子邮件服务的基本原理和服务器的设计架设方法,通过与同组同学的合作锻炼学生的合作能力。
2设计内容
根据已经学习的网络服务基础知识,架设基于Sendmail(或Postfix)的服务器,掌握电子邮件系统的配置文件的具体内容和服务器的配置方法,配置一个邮件服务器实例,通过客户机的访问验证自己的服务与配置。
3设计要求
1)掌握电子邮件系统的工作原理、主要协议及在实际系统中应用特点;
2)安装Sendmail服务器,掌握特点和作用,学习掌握/etc/sendmail.cf,/etc/aliases,/etc/mail/local-host-names,/etc/mail/sendmail.mc,/etc/mail/access等文件的作用和配置方法。
3)掌握IMAP和POP3服务的相关配置;掌握dovecot的用法和/etc/dovecot.conf配置;了解Cyrus-IMPAD的基本用法;
4)掌握电子邮件客户端的基本配置,分别在本地和网络上实现邮件的收发,实现从不同的操作系统平台(Windows和Linux)下收发邮件;
5)了解Sendmail邮件服务的认证传输方式(ESMTP);
6)学习了解其他的邮件服务器软件并进行比较,如Zmail、Postfix等。
4设计装置
无。
5设计步骤
1)了解基础知识(如postfix+dovecot+mysql这样的搭配);
2)与同组同学一起讨论出任务的分配方式;
3)设计服务的基本方案,安装配置系统;
4)测试并对测试结果进行分析;
5)撰写报告。
6报告及要求
1)设计题目;
2)同组同学任务的分配方式;
3)设计基本原理、服务配置方法、服务安装配置过程、测试方案及结果。
4)体会。
设计四Samba服务器配置
1设计目的
通过对Linux下Samba服务器的配置,了解SMB协议,熟悉Samba配置文件中配置参数的设置,掌握Samba配置过程,通过与同组同学的合作锻炼学生的合作能力。
2设计内容
根据已经学习的网络服务基础知识,架设Samba服务器,掌握Samba的配置文件的具体内容和服务器的配置方法,配置一个Samba服务器实例,通过客户机的访问验证自己的服务与配置。
3设计要求
1)掌握Samba工作原理、了解SMB协议及Samba在实际系统中应用的方法;
2)安装Samba服务器,搭建一个测试环境满足:
有两组用户(每组至少2人),都可以登录到Samba服务器,各自只能访问自己组的文件,所有的用户都不允许使用服务器上的shell,只能通过Samba访问服务器;
4)学习掌握smb.conf的配置内容和方法,完成一个实现上述2)要求的Samba服务器的配置;掌握/etc/samba/smbpasswd/etc/samba/smbusers等相关文件的用法;
5)实现从不同的操作系统平台(Windows和Linux)下访问Samba服务器。
4设计装置
无。
5设计步骤
1)了解基础知识;
2)与同组同学一起讨论出任务的分配方式;
3)设计服务的基本方案,安装配置系统;
4)测试并对测试结果进行分析;
5)撰写报告。
6报告及要求
1)设计题目;
2)同组同学任务的分配方式;
3)设计基本原理、服务配置方法、服务安装配置过程、测试方案及结果。
4)体会。
设计五LINUX的进程管理
1设计目的
加深对进程概念的理解,明确进程和程序的区别;进一步认识并发执行的实质;实现Linux中进程通信的两种方式:
软中断和管道通信。
通过与同组同学的合作,锻炼学生的合作能力。
2设计内容
根据本设计书所提供的基础知识,完成下列要求,写出相关代码和设计报告。
1)进程的创建和控制
编写一段程序,使用系统调用fork()创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
每个进程在屏幕上显示一个字符,记录屏幕上的显示结果,并分析原因。
修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话。
2)进程的软中断通信
使用系统调用fork()创建两个子进程,使用系统调用
signal()让父进程捕捉用alarm函数设置时钟的时间段终止时产生的信号,当捕捉到该信号后,父进程使用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出子进程被杀死信息后终止,父进程等待两个子进程终止后,输出父进程被杀死信息后终止程序。
记录屏幕上的显示结果,并分析原因。
3)进程的管道通信
使用系统调用pipe()建立一个管道;两个子进程分别向管道写信息,父进程则从管道读出来自子进程的信息,显示在屏幕上。
3设计要求
认真编写代码,与同组同学合作,通过充分的讨论得到相关的结论。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试,得到相应的框图。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)代码分析结果
4)体会
7.相关基础知识
系统调用函数说明、参数值及定义
1)Fork()
创建一个新进程进程
intfork()
其中返回int取值意义如下:
正确返回:
在父进程中返回子进程的进程号,在子进程中返回0
错误返回:
-1
2)Lockf(intfiles,intfunction,longsize)
用作锁定文件的某些段或者整个文件。
file:
文件描述符;function:
锁定和解锁,1表示锁定,0表示解锁;size:
是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。
3)Signal(intsig,(*func)function)
进程控制软中断信号的处理。
signal()会依照参数sig指定的信号编号来设置该信号的处理函数。
sig:
SIGALRM:
alarm()函数设置的时钟的时间段终止时产生的信号。
其它信号略。
function:
信号处理的一个函数地址。
4)kill(intpid,intsig)
向一个进程或一个进程组发信号,可以用来送参数sig指定的信号给参数pid指定的进程。
pid:
pid>0将信号传给进程号为pid的进程。
其它略。
signumber:
送给进程号为pid进程指定信号量
5)alarm(unsignedintseconds)
设置一个指定时间的计时器
seconds:
设置时间秒数
6)intpipe(intfiledes[2])
filedes为整数数组名,在调用这个函数后,系统为通道分配的两个文件描述符将通过这个数组返回到用户进程中。
filedes[1]是文件输出描述符,filedes[0]是文件输入描述符。
7)intwait(int*status)
暂停目前进程的执行,直到有信号到来或子进程的结束。
子进程的结束状态指会由参数status返回,如果不在意结束状态时,则参数status可以设置成NULL
设计六UNIXSHELL的设计
1设计目的
Unixshell是unix的命令解释程序,用于让用户以一种友好的方式运行程序和执行命令。
本课程设计要求学生在linux下写一个命令解释程序,从而加深对Linuxshell工作机制的认识,提高系统应用程序设计的能力。
2设计内容
根据本设计书所提供的基础知识,完成在linux下编写一个命令解释程序,实现Ksh最基本的功能。
即:
允许用户打入一个可执行的程序的名字以及其命令行参数,执行这个程序。
同时实现一部分内部命令(比如cd,详见要实现的命令),以及输入输出重定向等功能。
写出相关代码和设计报告,具体要求为:
1)利用C语言在Linux上设计一个简单的命令解释程序,完成如下功能:
dir列目录
cd<>改变当前目录
pwd显示当前目录名
md创建一个目录
copy
find在指定的目录及其子目录中查找特定的文件
more一页一页地显示文件
date显示当前日期
time显示当前时间
ren重命名一个文件或目录
del删除一个文件和目录
exit退出命令解释程序。
执行一个程序
2)命令解释程序的提示符为:
@
3)命令解释程序把命令行解释为内部命令或外部命令(要执行的程序)。
内部命令直接在命令解释程序中处理,外部命令的执行则由命令解释程序通过fork()创建一个子进程,然后在子进程中调用exec执行一个程序。
4)命令解释程序应能够支持输入输出重定向。
5)选作内容:
Ø命令解释程序支持后台运行程序。
Ø命令解释程序支持管道。
Ø命令解释程序不能被ctrl+c打断。
3设计要求
1)命令解释程序的实现环境是linux,编程语言使用C语言。
2)整个程序必须严格经过测试,完成所有基本功能。
源程序应有较详尽的注释。
3)程序编写应有良好的风格。
4)程序编制中不得使用system()系统调用。
5)整个系统的源代码应由多个文件组成,所有源程序文件及其makefile用tar命令打成一个包,放在指定的目录下。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试,得到相应的框图。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)系统的总体设计和详细设计b)你的命令解释程序详细使用手册c)所有源程序清单d)makefile
4)体会
7.主要参考书目:
UNIX环境高级编程
可能用到的系统调用:
open(),close(),read(),write(),creat()
dup()
fork()
execl(),execv(),execle(),execve(),execlp(),execvp()
wait(),waitpid()
chdir()
opendir(),readdir(),rewinddir(),closedir()
rmdir(),mkdir()
设计七模拟UNIX文件系统的设计及实现
1设计目的
模拟UNIX文件系统来设计一个多用户多目录的文件系统。
2设计内容
完成在linux下编写一个模拟UNIX文件系统,写出相关代码和设计报告,文件系统应具有的基本功能要求为:
(1)多用户:
usr1,usr2,usr3,……,usr8(1-8个用户)
(2)多级目录:
可有多级子目录;
(3)具有login(用户登录)
(4)系统初始化(建文件卷、提供登录模块)
(5)文件的创建:
create
(6)文件的打开:
open
(7)文件的读:
read
(8)文件的写:
write
(9)文件关闭:
close
(10)删除文件:
delete
(11)创建目录(建立子目录):
mkdir
(12)改变当前目录:
cd
(13)列出文件目录:
dir
(14)退出:
logout
3设计要求
1)课程设计所利用的空间为1M的内存。
这1M内存分成512块,每块为512个字节,这512块就是文件系统的可用块数,文件系统的分配就是以块为单位来分配的,空闲块的管理利用位示图的方法来管理。
申请1M的内存的方法可以利用malloc()或calloc().
2)磁盘I节点可以利用在内存中生成链表或者数组的方法来生成,并且限制磁盘节点数的最大值。
同样内存I节点也可以利用链表的方法在内存中生成。
3)在往文件中写或者读的时候我们都是对内存中内容进行读写。
例如你在文件中写的时候,其实是对分配的文件块中对应的内存赋值。
当程序运行结束的时候,文件的内容都会丢失。
我们这个文件系统只是一个模拟文件系统功能的虚拟文件系统。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试,得到相应的框图。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)系统的总体设计和详细设计b)你的文件管理系统工作过程分析c)所有源程序清单
4)体会
7.参考思路:
1)系统结构
(1)块管理层:
分块分配、块回收、块读、块写等
(2)文件控制块层(FCB)
目录查找namei(),iget(),iput()
(3)文件管理层
具有打开文件open(),close()等;
(4)命令解释层
2) 数据结构
(1)目录结构
(2)FCB结构
(3)打开文件结构
(4)用户结构
设计八文件行编工具的制作
1设计目的
掌握文件系统的底层函数调用,并进行实例开发。
2设计内容
实现能够生成一个文本文件,并能行编该文件的内容和显示该文件的内容。
3设计要求
1)通过文件系统的底层C函数调用,创建文件,向文件中写入数据,显示文件的内容;
2)假设文件行编工具叫myedit,则功能具有:
A)带参数(不存在的文件名):
创建并编辑;
B)带参数(已存在的文件名):
显示并提示编辑;
C)不带参数:
创建,编辑,并提示保存;
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)系统的总体设计和详细设计b)你的编辑系统工作过程分析c)所有源程序清单。
4)体会。
设计九利用TomCat+Apache在Linux环境下配置Web服务器
1设计目的
掌握网络服务器的基本原理和配置方法。
2设计内容
能使用JSP+MySQL制作简单的动态网页。
3设计要求
用TomCat+Apache在Linux环境下配置一个JSP的Web服务器,并能制作简单的JSP动态网页(即实现对后台数据库访问,如查询,增加和删除记录,并刷新到页面)。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)系统的总体设计和详细设计b)你的系统配置工作过程分析c)网页设计的源程序清单。
4)体会。
设计十利用PHP+MySQL在Linux环境下配置Web服务器
1设计目的
掌握网络服务器的基本原理和配置方法。
2设计内容
能使用PHP+MySQL制作简单的动态网页。
3设计要求
用PHP+MySQL+Apache在Linux环境下配置一个支持PHP页面的Web服务器,并制作简单的PHP动态网页,实现网页浏览和数据库的访问(即实现对后台数据库访问,如查询,增加和删除记录,并刷新到页面)。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)系统的总体设计和详细设计b)你的系统配置工作过程分析c)网页设计的源程序清单。
4)体会。
设计十一实用拷贝命令实现
1设计目的
掌握UNIX应用程序设计的基本原理和方法。
2设计内容
创建程序mycp,实现将一个文件的数据复制到另一个文件中,其中两个文件名作为mycp程序的参数。
3设计要求
1)命令功能要能够完成实际应用的要求,实现拷贝命令的各项功能,如:
单参数、双参数等各种参数格式的识别,文件的连接,拷贝时磁盘空间的检查等。
2)分别以shell和c程序编写这个程序,比较哪一种效率更高,哪一种运行速率更快,写出你运用操作系统知识得到的理由,并得出结论。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)程序的总体设计和详细设计b)你的程序工作过程分析c)源程序清单。
4)体会。
设计十二实用文件长度计算命令实现
1设计目的
掌握UNIX应用程序设计的基本原理和方法。
2设计内容
创建程序mycount,能判断出一个文件中的数据的字节数、字数和行数,其中文件名作为mycount程序的参数。
3设计要求
1)命令功能要能够完成实际应用的要求,实现对各种文件长度的计算功能。
2)分别以shell和c程序编写这个程序,比较哪一种效率更高,哪一种运行速率更快,写出你运用操作系统知识得到的理由,并得出结论。
4设计装置
无
5设计步骤
1)了解基础知识。
2)与同组同学一起讨论出任务的分配方式。
3)对自己的任务部分的代码认真分析调试。
4)与同组同学讨论得到的代码及实验结果。
5)撰写报告。
6报告及要求
1)设计题目
2)同组同学任务的分配方式
3)设计报告应包含如下内容:
a)程序的总体设计和详细设计b)你的程序工作过程分析c)源程序清单。
4)体会。
设计十三在U盘上引导LINUX系统
1设计目的
进一步掌握Linux系统构成和工作原理,掌握Linux系统小型化的技术方法以及Busybox等工具的用法以及相关软件配置,并通过与同组同学的合作锻炼学生的合作能力。
2设计内容
通过裁减内核、正确构建文件系统、配置shell,实现精简的Linux系统,将精简后的Linux系统可以从U盘上引导。
3设计要求
1)掌握Linux系统构成、系统引导及其工作原理,掌握Linux系统裁减的基本技术方法;
2)掌握Linux内核配置、编译的原理和方法;掌握文件系统的构建方法;
3)学习掌握Busybox的使用方法和特点;掌握Grub的使用方法;
4)实现将Linux系统裁减到10M以下并从U盘上引导,系统具有基本文件系统和Shell命令;
6)学习了解进一步定制Linux系统的方法,如定制X-window到U盘等。
4设计装置
无。
5设计步骤
1)了解基础知识;
2)与同组同学一起讨论出任务的分配方式;
3)设计系统精简的基本方案和技术步骤,实现系统裁减并移植到U盘;
4)引导系统并对结果进行分析;
5)撰写报告。
6报告及要求
1)设计题目;
2)同组同学任务的分配方式;
3)设计基本原理、内核和文件系统配置及编译方法、系统移植过程、测试及结果。
4)体会。