1、摘要Linux是一个自由和开放源码类Unix操作系统,存在着很多不一样Linux版本,但它们全部使用了Linux内核。经过课程设计,结合实际操作和设计,巩固课堂教学内容,使我们掌握嵌入式Linux系统开发基础概念、原理和技术,将理论和实际相结合,应用现有硬件和软件条件完成一个完整嵌入式系统设计和实现,把理论课和试验课所学内容综合为一,并在此基础上强化我们实践意识、提升其实际动手能力和创新能力,从而为后续课程学习,毕业设计步骤和未来实际工作打好坚实基础。在此次课程设计中,我们将熟悉基础挂载命令,基础配置文件和配置方法,学会Vsftp服务器安装和配置,实现文件系统远程挂载,配置samba服务器,实
2、现不一样系统之间文件共享,简单shell script编程等。关键字:开放源码 Linux系统 服务器 序言Linux是一个自由和开放源码类Unix操作系统,存在着很多不一样Linux版本,但它们全部使用了Linux内核。Linux可安装在多种计算机硬件设备中。Linux是一个领先操作系统,世界上运算最快10台超级计算机运行全部是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上大家已经习惯了用Linux来形容整个基于Linux内核,而且使用GNU 工程多种工具和数据库操作系统。Linux得名于天才程序员林纳斯托瓦兹。Linux操作系统是UNIX操作系统一个克隆系
3、统,它诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者共同努力,已成为今天世界上使用最多一个UNIX 类操作系统,而且使用人数还在迅猛增加。Linux是一套无偿使用和自由传输类Unix操作系统,是一个基于POSIX和UNIX多用户、多任务、支持多线程和多CPU操作系统。它能运行关键UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为关键设计思想,是一个性能稳定多用户网络操作系统。它关键用于基于Intel x86系列CPU计算机上。这个系统是由全世界各地成千上万程序员设计和实现
4、。其目标是建立不受任何商品化软件版权制约、全世界全部能自由使用Unix兼容产品。目录摘要1前言21.设计的背景11.1 操作系统的基本特征11.2 Linux 操作系统的特点21.3 Unix系统的主要特点22.设计方案32.1 设计的意义和目的32.2 方案论述33. 软硬件环境说明34. 网络服务器的配置44.1常用的网络命令44.2 熟悉网络配置文件的配置方法84.3 telnet建立多账户测试84.4 Samba服务器的配置104.5 配置vsFTP服务器115. shell script 编程145.1 shell script的简单介绍145.2 shell script的简单编程
5、14个人总结参考文献1.设计背景1.1操作系统基础特征操作系统(Operating System,简称OS)是管理和控制计算机硬件和软件资源计算机程序,是直接运行在“裸机”上最基础系统软件,任何其它软件全部必需在操作系统支持下才能运行。其基础特征有以下四点:(1)并发性(Concurrence) 并行性和并发性是既相同又有区分两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序实施,故微观上这些程序只能是分时地交替实施。 (2)共享性(
6、Sharing) 在操作系统环境下,所谓共享是指系统中资源可供内存中多个并发实施进程(线程)共同使用。因为资源属性不一样,进程对资源共享方法也不一样(3)虚拟性(Virtual) 操作系统中所谓虚拟,是指经过某种技术把一个物理实体变为若干个逻辑上对应物。物理实体(前者)是实,即实际存在,以后者是虚,是用户感觉上东西。用于实现虚拟技术,称为虚拟技术。在OS中利用了多个虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。 (4)异步性 在多道程序环境下,允很多个进程并发实施, 但只有进程在取得所需资源后方能实施。在单处理机环境下,因为系统中只有一个处理机,所以每次只许可一个进程实
7、施,其它进程只能等候。当正在实施进程提出某种资源要求时,如打印请求,而此时打印机正在为其它某进程打印,因为打印机属于临界资源,所以正在实施进程必需等候,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续实施。1.2 Linux 操作系统特点Linux操作系统在短时间内得到迅猛发展,这和该操作系统良好特征是分不开。Linux包含了UNIX操作系统全部功效和特征。简单地说,Linux含有UNIX全部特征而且含有自己独特魅力,关键表现在以下多个方面: 1开放性、2多用户 、3多任务 、4友好用户界面、5设备独立性、6丰富网络功效 、7可靠安全性 、8良好可移植性 、9 X W
8、indow系统 、10 内存保护模式 。这些特点使得Linux系统在嵌入式开发和开源代码编写方面占据了有利优势。1.3 Unix系统关键特点UNIX操作系统(尤尼斯),是一个强大多用户、多任务操作系统,支持多个处理器架构,根据操作系统分类,属于分时操作系统,其关键特点以下:1. UNIX系统是一个可供多用户同时操作会话式分时操作系统,不一样用户能够在不一样终端上,经过会话方法控制系统操作。系统继承子以往操作系统优异技术,又在总体设计思想上有所创新。2. UNIX系统在结构上分为内核和核外程序两部分。内核部分就是通常所说UNIX操作系统.能够从内核中分享出来部分,则以核外程序形式存在并在用户环境
9、下运行,内核向核外程序提供了充足而强大支持,而核外程序灵活地利用了内核支持。 3. UNIX系统向用户提供了两种界面,一个是用户使用命令,经过终端和系统进行交互界面,即用户界面;另一个是用于用户程序和系统接口,即系统调用。系统采取树型结构文件系统,它由基础文件系统和可装下若干个子文件系统组成,它既能扩大文件存放空间,含有良好安全性,保密性和可维护性。4. UNIX系统提供了丰富核外系统程序,其中包含丰富语言处理程序,系统实用程序和开发软件工具,这些程序为用户提供了相当完备程序设计环境。系统能在笔记本计算,PC机,工作站,中小型机及至巨型机上运行操作系统,所以,UNIX系统含有极强可伸缩性。2.
10、设计方案2.1 设计意义和目标 Linux操作系统含有很好可移植性、良好地编程环境和强大网络工程,作为计算机专业学生,Linux是一门很关键必修课。 经过这课程设计能够全方面了解Linux基础命令和基础操作,而且经过上机操作提升自己编程能力、程序调试能力和应用能力。 Linux课程设计目标就在于经过一次实践性活动加深对这门课程了解,使我们在感性认识上深入升华为理性认识。为后继课程学习打下坚实基础。2.2 方案叙述在虚拟机中运行Linux操作系统,完成课程设计内容。首先要熟悉基础网络命令和她们使用方法,比如ping、ifconfig、netstat等网络命令。同时,熟悉网络配置文件配置方法。其次
11、,体会Linux多用户特点,并利用telnet进行测试。学会在Linux系统中配置VSFTP服务器,而且能够实现局域网文件传输。还有学会配置samba服务器,而且能够实现不一样系统之间文件共享。最终,学会编写简单shell程序。3. 软硬件环境说明依据此次课程设计内容,做出以下准备:装有VMware虚拟机软件pc机一台。VMware虚拟机软件,是全球桌面到数据中心虚拟化处理方案领导厂商。全球不一样规模用户依靠VMware来降低成本和运行费用、确保业务连续性、加强安全性并走向绿色。 此次课程设计就是经过此虚拟机软件,将Linux操作系统装于此软件进行操作,在安装之前经过手动设置硬件参数以下:20
12、G磁盘、1G内存、单核处理器、虚拟CDROM、NAT网络适配器4. 网络服务器配置4.1常见网络命令(1)ping命令 功效说明:检测主机。语法:ping -dfnqrRv -c -i -I -l -p -s -t 主机名称或IP地址标准使用方法:ping(-选项) 主机名称或IP地址补充说明:实施ping指令会使用ICMP传输协议,发出要求回应信息,若远端主机网络功效没有问题,就会回应该信息,所以得悉该主机运作正常。参数: -d 使用SocketSO_DEBUG功效。 -c 设置完成要求回应次数。 -f 极限检测。 -i 指定收发信息间隔时间。 -I 使用指定网络界面送出数据包。 -l 设置
13、在送出要求信息之前,先行发出数据包。 -n 只输出数值。 -p 设置填满数据包范本样式。 -q 不显示指令实施过程,开头和结尾相关信息除外。 -r 忽略一般Routing Table,直接将数据包送到远端主机上。 -R 统计路由过程。 -s 设置数据包大小。 -t 设置存活数值TTL大小。 -v 具体显示指令实施过程。以下图: 图4.1 (a) IP地址简单设置 图 (b)(2)ifconfig命令语法:ifconfig 网络设备 down up -allmulti -arp -promisc add del media mem_start metric mtu netmask tunnel
14、-broadcast -pointopoint 补充说明:ifconfig可设置网络设备状态,或是显示目前设置。参数:网络设备 网络设备名称。Down 关闭指定网络设备。up 开启指定网络设备。-arp 打开或关闭指定接口上使用ARP协议。前面加上一个负号用于关闭该选项。-allmuti 关闭或开启指定接口无区分模式。前面加上一个负号用于关闭该选项。-promisc 关闭或开启指定网络设备promiscuous模式。加上一个负号用于关闭该选项。Add 设置网络设备IPv6IP地址。Del 删除网络设备IPv6IP地址。Media 设置网络设备媒介类型。mem_start 设置网络设备在主内存所
15、占用起始地址。Metric 指定在计算数据包转送次数时,所要加上数目。Mtu 设置网络设备MTU。Netmask 设置网络设备子网掩码。Tunnel 建立IPv4和IPv6之间隧道通信地址。-broadcast 将要送往指定地址数据包当成广播数据包来处理。-pointopoint 和指定地址网络设备建立直接连线,此模式含有保密功效。 图4.1(2)现在解释一下输出信息含义: eth0:网络接口 link encap:网络类型 HWaddr:网卡物理地址 UP:正在使用网络接口 Inet addr :IP地址 Interrupt:终端信息 Bcast:广播地址 Base address:内存地址
16、 RX byte,TX byte表示接搜和传输具体数目 RX packets,TX packets接收和传输数据包个数(3) netstat命令功效说明:显示网络状态。语法:netstat -acCeFghilMnNoprstuvVwx-A-ip补充说明:利用netstat指令可让你得悉整个Linux系统网络情况。参数: -a或-all 显示全部连线中Socket。 -A或- 列出该网络类型连线中相关地址。 -c或-continuous 连续列出网络状态。 -C或-cache 显示路由器配置快取信息。 -e或-extend 显示网络其它相关信息。 -F或-fib 显示FIB。 -g或-grou
17、ps 显示多重广播功效群组组员名单。 -h或-help 在线帮助。 -i或-interfaces 显示网络界面信息表单。 -l或-listening 显示监控中服务器Socket。 -M或-masquerade 显示伪装网络连线。 -n或-numeric 直接使用IP地址,而不经过域名服务器。 -N或-netlink或-symbolic 显示网络硬件外围设备符号连接名称。 -o或-timers 显示计时器。 -p或-programs 显示正在使用Socket程序识别码和程序名称。 -r或-route 显示Routing Table。 -s或-statistice 显示网络工作信息统计表。 -t
18、或-tcp 显示TCP传输协议连线情况。 -u或-udp 显示UDP传输协议连线情况。 -v或-verbose 显示指令实施过程。 -V或-version 显示版本信息。 -w或-raw 显示RAW传输协议连线情况。 -x或-unix 此参数效果和指定-A unix参数相同。 -ip或-inet 此参数效果和指定-A inet参数相同。以下图所表示:图4.1(3)4.2 熟悉网络配置文件配置方法一台安装了Linux系统电脑假如想要联网,首先要做就是进行网络配置。首先以根用户登录系统,然后使用lspci | grep Ethernet命令检验计算机上以太网卡设备是否被内核检测到。在默认情况下,只
19、有root也就是根用户才有权限进行网络配置。然后使用“ifconfig”命令查看系统已经识别并已激活网络接口。假如没有找到能够用“ifconfig -a”命令找到全部已识别包含未激活网络接口,然后使用”ifconfig 网卡名 up“激活。就对这块网卡进行设置使它能够发挥作用。在命令行输入“ifconfig 网卡名 IP地址 netmask 子网掩码”就能够临时指定网卡IP地址,但重启后失效。永久改变IP地址用“vi /etc/sysconfig/network-scripts/ifcfg-eth0”编辑网卡eth0配置文件。假如设置是dhcp自动获取IP地址,那么IPADDR、NETMASK
20、和GATWAY全部能够不写。使用“service network restart”命令重新开启network服务,使配置文件生效。四个状态全部必需是OK,不然说明设置有问题,需要重新修改设置。最终再次使用“ifconfig”命令查看网卡参数, IP地址修改成功,而且会一直保留。4.3 telnet建立多账户测试功效说明:远端登入。语法:telnet -8acdEfFKLrx-b-e-k-l-n-S-X主机名称或IP地址补充说明:实施telnet指令开启终端机阶段作业,并登入远端主机。参数: -8 许可使用8位字符资料,包含输入和输出。 -a 尝试自动登入远端系统。 -b 使用别名指定远端主机名
21、称。 -c 不读取用户专属目录里.telnetrc文件。 -d 开启排错模式。 -e 设置脱离字符。 -E 滤除脱离字符。 -f 此参数效果和指定-F参数相同。 -F 使用Kerberos V5认证时,加上此参数可把当地主机认证数据上传到远端主机。 -k 使用Kerberos认证时,加上此参数让远端主机采取指定领域名. -K 不自动登入远端主机。 -l 指定要登入远端主机用户名称。 -L 许可输出8位字符资料。 -n 指定文件统计相关信息。 -r 使用类似rlogin指令用户界面。 -S 设置telnet连线所需IP TOS信息。 -x 假设主机有支持数据加密功效,就使用它。 -X 关闭指定认
22、证形态。以下图测试: 图4.3 telnet建立多账户测试4.4 Samba服务器配置Samba是一整套UNIX程序(包含Linux),它能够了解SMB,即Server Message Block协议。Windows系列和OS/2操作系统全部是使用SMB协议来在不一样计算机之间相互通信。经过在UNIX上安装Samba,就使得UNIX能够同Windows系列计算机之间相互通信,并能够使UNIX机器模拟成Windows机器。这么,安装了SambaLinux机器就能够模拟Window NT功效,它并能提供几乎全部Windows NT功效。以下图所表示:(1) 服务器配置 图 (1)(2)创建账户和共
23、享目录 图 (2)(3)指定用户和添加共享 图(3)(4) 测试共享和选择服务器 图(4)(5) 输入口令和测试 图 (5)4.5 配置vsFTP服务器一、安装。命令:yum install vsftpd二、开启、关闭、重启:service vsftpd start/stop/restart.注:-查看vsftpd 开启状态rootsingledb # chkconfig -list vsftpdvsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:offrootsingledb # chkconfig vsftpd onrootsingledb # chk
24、config -list vsftpdvsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 这里看到,默认情况下从2到5设置为on了。2到5是多用户等级。 这个对应是linux不一样运行等级。我们也能够加level 选项来指定:rootsingledb # chkconfig -level 0 vsftpd on rootsingledb # chkconfig -list vsftpd vsftpd 0:on 1:off 2:on 3:on 4:on 5:on 6:off我们看到0已经设置为on了。传统init 定义了7个运行级(run level),每一
25、个等级全部代表系统应该补充运行一些特定服务: (1)0级是完全关闭系统等级 (2)1级或S级代表单用户模式 (3)2-5 级 是多用户等级 (4)6级 是 重新引导等级三、配置。1.配置文件:位置 /etc/vsftpd/;vsftpd.conf:主配置文件;ftpusers: 指定哪些用户不能访问FTP服务器;user_list: 指定用户是否能够访问ftp服务器由vsftpd.conf文件中userlist_deny取值来决定。其中vsftpd.conf 文件设置以下参数:(1)ftpd_banner=welcome to ftp service :设置连接服务器后欢迎信息(2)idle_
26、session_timeout=60 :限制远程用户机连接后,所建立控制连接,在多长时间没有做任何操作就会中止(秒)(3)data_connection_timeout=120 :设置用户机进行数据传输时,设置空闲数据中止时间(4)accept_timeout=60 设置在多长时间后自动建立连接(5)connect_timeout=60 设置数据连接最大激活时间,多长时间断开,为她人所使用;(6)max_clients=200 指明服务器总用户并发连接数为200(7)max_per_ip=3 指明每个用户机最大连接数为3(8)local_max_rate=50000(50kbytes/sec)
27、 当地用户最大传输速率限制(9)anon_max_rate=30000匿名用户最大传输速率限制(10)pasv_min_port=端口(11)pasv-max-prot=端口号 定义最大和最小端口,为0表示任意端口;(12)listen_address=IP地址 设置ftp服务来监听地址,用户端能够用哪个地址来连接;(13)listen_port=端口号 设置FTP工作端口号,默认为21(14)chroot_local_user=YES 设置全部当地用户能够chroot(15)chroot_local_user=NO 设置指定用户能够chroot(16)chroot_list_enable=Y
28、ES(17)chroot_list_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_list中用户才能实施 )(18)local_root=path 不管哪个用户全部能登录用户,定义登录帐号主目录, 若没有指定,则每一个用户则进入到个人用户主目录;(19)chroot_local_user=yes/no 是否锁定当地系统帐号用户主目录(全部);锁定后,用户只能访问用户主目录/home/user,不能利用cd命令向上转;只能向下;(20)chroot_list_enable=yes/no 锁定指定文件中用户主目录(部分),文件:/chroot_
29、list_file=path 中指定;(21)userlist_enable=YES/NO 是否加载用户列表文件;(22)userlist_deny=YES 表示上面所加载用户是否许可拒绝登录;(23)userlist_file=/etc/vsftpd/user_list 列表文件图下图所表示:(1)vsFTP配置参数图(a)图(b)图(c)图(d)(2)重启配置vsFTp并查询 图 (2)5. shell script 编程5.1 shell script简单介绍Shell是系统用户界面,提供了用户和内核进行交互操作一个接口。它接收用户输入命令并把它送入内核去实施。实际上Shell是一个命令
30、解释器,它解释由用户输入命令而且把它们送到内核。不仅如此,Shell有自己编程语言用于对命令编辑,它许可用户编写由shell命令组成程序。Shell编程语言含有一般编程语言很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写Shell程序和其它应用程序含有一样效果。5.2 shell script简单编程5.2.1用shell编程实现拷贝功效在根目录下有四个文件 m1.txt,m2.txt,m3.txt,m4.txt,用 Shell 编程,实现自动 创建 m1,m2,m3,m4 四个目录,并将 m1.txt,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自对应目录下
31、。 图 5.2.15.22 用shell编程求和计算从1到用户输入数字和。(1+2+3+n)。图 5.2.25.2.3编写一个 Shell 程序,实现以下功效:(1). 当运行一个程序时候,这个程序会让使用者选择 Y 或 N ;(2)假如使用者输入 Y 或 y 时,就显示 OK, continue (3)假如使用者输入 n 或 N 时,就显示 Oh, interrupt !(4)假如不是 Y/y/N/n 之内其它字节,就显示 I dont know what your choice is (利用中括号、 & 和 | 来实现)图5.2.3个人总结时间稍众即逝,为期一周课程设计转眼间就结束了,经过
32、此次课程设计,让我们愈加好认识和了解Linux操作系统。首先从开始对Linux一无所知,到做完课设后有了一定程度了解,从而深入熟悉Linux这个操作系统和在Linux下编程。经过此次设计,我们能够熟练掌握基础网络命令、网络配置文件及其配置方法和服务器简单配置,亲身体会到了Linux多用户特点。经过试验我认识到了系统调用实现,系统信息和状态读取,经过学习,学会了在 Linux环境下进行简单编程,也让我从中学到了不少Linux知识。此次课程设计,加深了我们对理论知识了解,也锻炼了我们实践能力,更多是在实践中收获了太多感慨和心得,即使课程设计已经结束,可我们明白“学无止境”道理,我们会继续刻苦钻研,
33、求实创新,不停地用知识来充实自己。在此次设计中,我们也有很多不足之处,还有很多Linux知识没有包含到,只是有点印象 了解不太深。经过此次课程设计,我们对于Linux有了深入了解,很多在书本上自己认为已经掌握知识点,不过在课程设计过程中却会存在很多小问题,这就考验我们总体把握和知识点融会贯通,经过此次课程设计,让我知道了自己还有很多知识点是没有掌握,很多知识点就算掌握了书本上,也还不会活用。期望以后课设和试验中多练习,实践是检验真理唯一路径,实践也是进步关键路径之一。最终,感谢老师帮助和指导。经过此次课程设计,让我们知道了在扎实基础前提下,我们更要多动手,多锻炼,勇于去尝试,勇于去实践。参考文件1 David Tansley著. 徐炎译.Linux和UNIX Shell编程指南. 北京:机械工业出版社2 刘兵著Linux实用教程M.北京:中国水利水电出版社,.73 朱居正、高冰著. Red Hat Linux 9实用培训教程. 北京:清华大学出版社,.74 张炯著.Unix网络编程实用技术和实例分析北京:清华大学出版社,.115 顾云苏著Linux 服务器配置和优化北京:清华大学出版社,9