linux应用课程设计指导书
Linux 应用课程设计指导书(2013级网络工程)设计一 LINUX 下FTP 服务器配置1 设计目的通过对Linux 下FTP 服务器的配置,掌握FTP 的基本概念和VSFTP 服务器的设计架
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()
创建一个新进程进程
int fork()
其中返回int 取值意义如下:
正确返回:在父进程中返回子进程的进程号,在子进程中返回0
错误返回:-1
2)Lockf(int files,int function,long size)
用作锁定文件的某些段或者整个文件。
file :文件描述符;function :锁定和解锁,1表示锁定,0表示解锁;size :是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。
,3)Signal(int sig, (*func) function)
进程控制软中断信号的处理。signal()会依照参数sig 指定的信号编号来设置该信号的处理函数。
sig : SIGALRM: alarm()函数设置的时钟的时间段终止时产生的信号。
其它信号略。
function :信号处理的一个函数地址。
4) kill(int pid,int sig)
向一个进程或一个进程组发信号,可以用来送参数sig 指定的信号给参数pid 指定的进程。
pid: pid>0 将信号传给进程号为pid 的进程。
其它略。
signumber: 送给进程号为pid 进程指定信号量
5) alarm(unsigned int seconds)
设置一个指定时间的计时器
seconds: 设置时间秒数
6) int pipe(int filedes[2])
filedes 为整数数组名,在调用这个函数后,系统为通道分配的两个文件描述符将通过这个数组返回到用户进程中。 filedes[1]是文件输出描述符, filedes[0]是文件输入描述符。
7) int wait(int *status)
暂停目前进程的执行,直到有信号到来或子进程的结束。子进程的结束状态指会由参数status 返回,如果不在意结束状态时,则参数status 可以设置成NULL
设计六 UNIX SHELL的设计
1 设计目的
Unix shell是unix 的命令解释程序,用于让用户以一种友好的方式运行程序和执行命令。本课程设计要求学生在linux 下写一个命令解释程序,从而加深对Linux shell 工作机制的认识,提高系统应用程序设计的能力。
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) 体会。