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