应毅 任凯
[摘要]目前Linux操作系统是高校计算机专业常见的实验课程,但Linux实验平台的几种常用建设方法都存在着诸多问题。论文提出新的方案:建立一台SUSE Linux主服务器,在Windows平台下安装Cygwin软件,学生先在Cygwin环境下进行实验,然后通过telnet以多用户方式连入主服务器进行验证操作。该方案不但减少了机房的维护工作量,节省了实验室资金,而且教学效果改善明显,为操作系统实验教学的改革提供了有益的思路并起到推广作用。
[关键词]实验教学环境;SUSE Linux:Cygwin;终端登录
[中图分类号]G420[文献标识码]A[论文编号]1009-8097(2012)02-0121-04
一现状与问题
操作系统课程是普通高校本科计算机及相关专业的核心基础课程,与此相匹配的实践课程的讲授不仅能加深理论知识的理解,在应用性和操作性上也具有很强的现实意义。Linux是免费使用和自由传播的类Unix操作系统,有着强大的网络优势和极为突出的安全性、稳定性和可移植性,无论是智能手机、PC,还是小型机,都可以运行Linux,Linux占据着越来越大的市场份额,同时Linux可以作为应用服务器、数据库服务器、网络服务器、交换机、路由器等众多软件和设备的支撑平台。因此,市场对掌握Linux技术的人才有大量的需求,所以教授Linux对学生就业也有现实意义。另一方面,Linux的操作方法基本与Unix相同,有了Linux这个基础,为学生以后在其他操作系统上工作提供了便利。
当前,很多高校的计算机实验室要为众多的计算机相关课程服务,受到资源限制,不可能单独建立以Unix/Linux为操作系统的实验室,为了提高设备的利用率,Linux的实验环境一般会和网络机房共同建设,以Windows平台为主,并通过硬盘保护卡对系统进行保护,在这种条件下建立Linux实验环境的常用方法有以下几种。
(1)直接安装。直接把Linux安装到每一台学生机上,好处是速度快,学生上机实验时能最直观地体验到真实的Linux,但考虑到兼容性,需要安装双系统(Windows+Linux)。而由于硬盘保护卡无法对Linux进行自动复原,只能采用完全备份方式,导致硬盘资源浪费严重,手动复原所需时间长,影响实验课的上课效率。
(2)虚拟机方式。在Windows环境下安装虚拟机软件,如Virtual PC、VMWare,然后在虚拟机上安装Linux系统,好处是可以使用原有的系统保护功能,Windows环境几乎不受影响,机房维护轻松。缺点也很明显:①虚拟机太慢,实验代价偏大。首先需要打开虚拟机软件,再激活Linux仿真系统。这个开启过程很耗时,尤其是对于配置较低的PC。②使用虚拟机的实验环境与真实IT企业中Linux开发环境相去甚远。真实的类Unix系统管理和开发是不会使用虚拟机的。
(3)主服务器方式。在机房中只建立一台Linux操作系统服务器,学生在Windows操作系统下,通过网络方式连入Linux系统主机,好处是学生能使用到真实的Linux系统,并对众多学生机上的Windows系统也没有影响。但要求服务器有较好的配置,如果性能一般,当有很多用户同时登录到主服务器上时,会导致服务器不堪重负,造成宕机或客户端相应过慢。
(4)DRBL方式。无盘工作站远程启动Linux(DisklessRemote Boot in Linux),在一台Linux服务器上安装DRBL软件,可以将Linux系统同时提供给大量的终端操作与使用,学生机不需要安装任何软件,并能与客户端现有系统共存,学生能直观的使用到Linux系统,但需要所有计算机的主板和网卡都支持PXE网络启动,必须在服务器安装两块以上的网卡,连接不同的交换机,而且网速并发无法实现,当接驳终端超过40台时效果下降明显。
由此可见,现在高校构建Linux实验平台最常见的几种方法都有自身的一些优缺点,所以笔者提出如下方案来解决上述问题。在学生机的Windows操作系统下安装Cygwin软件,在网络机房中使用一台计算机安装Linux操作系统,作为主服务器,学生先使用Cygwin软件在各自计算机上进行实验,当实验完成或接近完成时,才通过telnet方式连入主服务器进行运行和测试。该实验教学环境不影响现有Windows平台,减少了机房的维护工作量,并且与大中型IT公司的开发环境非常接近,有利于学生的就业。
基于此方案构建的教学环境可以为Shell编程、Linux常用命令、C/C++程序设计、PHP开发等实验教学服务,但不大适合Linux系统安装配制、内核编程、服务器软件安装使用等教学内容的实验。
二实验环境的设计与实现
1整体结构
利用已有的网络实验室,在学生机上安装Cygwin、SecureCRT等软件,使用一台计算机作为硬件平台,安装SUSELinux操作系统,学生机通过telnet方式登陆主服务器。整体结构如图1所示。
2主服务器的搭建
虽然基于相同的Linux内核,但Linux的发行版本种类繁多特色各异,Novell公司的SUSE Linux是个不错的选择。
SUSELinux起初是以SlackwareLinux为基础的一款德文操作系统,第一个产品诞生于1992年。2004年1月SUSELinux被Novell收购,之后SUSELinux专注于企业级服务器的开发,Novell公司也与IIP、Intel、Microsoft、IBM、富士通等多家软硬件公司形成战略合作关系,SUSE Lmux的应用涉及金融、通信、计算机、教育等多个领域,客户包括汇丰银行、伦敦证券交易所、中国民生银行、中国电信、中兴通讯、华为、SAP、Sony、NEC、东软、中国科技大学、新加坡国立大学、国立台湾师范大学等。
选择SUSE Linux的目的就是希望让实验环境更接近于企业,为学生的就业造成良好的影响。
SUSE Linux的安装过程和安装W'mdows非常接近,该实验环境安装的版本是:SUSE Linux Enterprise Server 10 forx86。其安装和配置有以下几点需要注意:
(1)分区的大小。考虑到Linux主服务器需要支持多用户,并且需要安装各种服务器软件(数据库、Web服务器、网络服务器),所以以往根分区15G的大小是远远不够的,至少需要50G-80G的磁盘空间,当然,这个分区的大小还要视安装服务器软件的多少而定。
(2)固定PP地址。为主服务器设置固定的IP地址,方便学生上机时通过IP地址登录到Linux主服务器。
(3)建立多用户。Linux天生是一个多用户操作系统,它可以为每个用户分配各自的资源(主要是文件系统及权限),而且互不影响。为了让学生独立的完成实验,可以根据
学号建立用户,例如一学期有4个班160多个学生开设Linux课程,使用相同的实验室,那么这个Linux主服务器需要建立160多个用户。当要进行服务器管理实验时,可以建立群组,例如MySQL组、Tomcat组、Apache组等。
(4)打开Telnet服务。Telnet服务在SUSE Linux 10中是默认不安装的,需要使用YaST2工具安装Telnet服务(命令:yast2 metd),并开启防火墙的23端口(命令:yast2firewaU)。如果主服务器频繁开关机,还需要将Telnet服务设置为默认开机启动。
(5)打开FTP服务。FTP服务和telnot服务一样,在SUSELinux 10中是默认不安装的,主服务器选择安装的是vsFtp,安装完毕后需要修改vsFtp的配置文件(/etc/vsftpd.conf),将服务器方式设置为本地,设置监听端口为21,同时放开防火墙对FTP所使用的20和21端口的限制,最后重新启动xinetd服务和vsfqod服务。
3客户端cygwin的安装
Cygwin是一个在Windows平台上运行的Unix模拟环境,它是Cygnus Solutions公司开发的自由软件,目前由RedHat负责维护。Cygwin由一个POSIX层和一组移植到Windows操作系统上的GNU工具集组成。这些工具包括:bash脚本语言环境、GCC、GDB、vi、ncFto、wGet、OpenSSH、CVS/RCS、TeX/LaTeX、bc、GNUpg。除此之外,Cygwin还提供了大量的Unix系统调用,使得开发者在不需要彻底修改源代码的情况下,可将一些重要的Unix应用程序移植到Win32环境。因此,有很多的IT公司都在使用Cygwin作为前期开发工具。
Cygwin可以在Windows 95以后的所有Windows平台上运行,它使得在没有Linux的情况下,也可以使用Shell命令行环境。本质上说,Cygwin是W'mdows平台下的一款应用软件,所以不必担心安装Cygwin会破坏Windows,W'mdows环境的系统保护也不会有影响,因此机房的维护工作量没有任何增加。
与虚拟机不同,Cygwin启动迅速,其目录结构也与类Unix系统几乎完全一致,提供的API尽量与Linux保持一致,所以其使用体验就感觉是在Linux上工作一样。
Cygwin软件的安装方式主要有两种:一种是从Intemet上安装;另一种是先下载安装包,之后从本地硬盘上安装。当网络情况不稳定时,建议使用后一种方式安装。安装完成后,在桌面会生成一个批处理文件:cygwin.bat,运行它即可启动一个bash进程,在该命令行窗口下,可以直接运行一系列的Unix/Linux命令。
4客户端其他工具的配置
在Windows环境下,学生机可以通过command中的telnet命令登录Linux主服务器。在这方面,功能更强也更常用的是SecureCRT,它是一个终端仿真程序,常用于连接远程的Unix或VMS主机。除了支持telnet协议外,还支持SSH、Rlogin、Serial等其他协议。SeeureCRT提供了丰富的终端功能,可以进行颜色设置、屏幕缓冲设置、屏幕尺寸设置,用户还可以进行会话管理和自定义键位图,支持命令的拷贝/粘贴,最主要的是SeeureCRT还能保存连接信息(主机IP、端口号)或书写脚本(VBScript、JScript)用于自动登录、自动执行命令。
在学生机和主服务器之间会要传递文件,telnet和SeeureCRT都提供了上传/下载的命令,另一个选择是使用专门的FTP工具。CuteFTP是一款商业级的FTP客户端程序,可上传/T载整个目录,自动维护链接,支持断点续传,还提供了目录同步、自动排程、同时多站点管理、多协议支持等功能,而且是多线程传输文件,速度更快,占用服务器资源更少。
Linux的配置文件较多,配置文件管理和Shell编程是实验课的重要内容。一般可以使用vi等命令来查看、处理配置文件和Shell脚本,更好的选择是使用专业的文本编辑器,例如UltraEdit,它可以打开Cygwin环境下的所有文本文件,也可以利用UltraEdit的FTP功能,远程打开Linux主服务器上的文本文件,除此之外,UltraEdit还具有代码折叠、语法加亮、拼写检查、支持大文件等众多特色功能。
以上3款软件在W'mdows平台上的安装和使用都非常简单,但却是IT公司研发人员常用的工具,能极大地提高工作效率,起到事半功倍的效果。
三应用案例
Shell编程的上机课中,给出这样一个习题让学生练习:备份最后一天所有修改的文件。通过这个习题,来训练find、tar、gzip等命令的组合使用。
学生需要先在本机的Cygwin环境下用vi编写Shell脚本:backupAllFiles.sh。如下为主要脚本代码:
#!/bin]bash
backupFileName=baekup-“date+”%F
tar cvf-find-mtime-1-type f-print>
$backupFileName.tar
gzip $backupFileName.tar
echo ”Directory $PWD backed up in archive
exit 0
然后先在Cygwin环境下调试,运行无误后,使用CmeFTP上传backupAllFiles.sh文件到Linux主服务器。上传时需提醒学生使用ASCII传输模式。计算机文件通常分为二进制文件和ASCII文件(也称纯文本文件)。所以,FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。如果选择了错误的传输模式,会导致文件不可用。这是一个重要的知识点。
上传成功后,让学生使用SecureCRT登录到主服务器进行调试和运行。在调试过程中,如果需要修改脚本,建议学生使用UltraEdit的FTP功能远程打开脚本文件。这时UltraEdit会询问是否需要将文本文件转换为Dos格式,提醒学生选择“否”。Unix下的文本文件和Windows下的文本文件行尾的回车符不一样。Unix格式用一个OxOa字符表示:Windows/Dos格式用0xodoa双字符表示。如果字符错误,会导致脚本无法执行。这也是一个重要的知识点。
在一节课的时间里,通过这个练习不仅训练了多个常用命令和Shell编程,还使用了Cygwin、CuteFTP、SecureCRT、UltraEdit等工具,同时还讲解了几个知识点,这些知识点的混淆都会在工作中导致错误,需要加强练习以避免。
四结束语
该实验教学环境以SUSE Linux主服务器为中心,通过在
Windows平台下安装Cygwin、SecureCRT等软件实现,保持众多学生机的原有状况不变,没有给实验室的维护增加其他负担。而且学生上机时先使用本机实验,登录主服务器操作时也不是每时每刻都在使用主服务器(例如Ultra)Edit的FTP打开文件修改),所以对主服务器的硬件要求并不高,不需要使用小型机或购置新设备,节省了实验室资金。在实验过程中教师也发现,由于Cygwin、SecureCRT等工具是Windows下的应用软件,学生对Windows非常熟悉,也间接解除了学生对新系统的畏惧心理,得到了非常好的授课效果。
该实验教学环境已实际运行在网络机房中,每次实验课有近80名学生同时上机,经实践证明运行稳定、维护方便,可供大家在建设Linux实验室时参考与借鉴。
参考文献
[1]叶俊民,李源,周伟等.“操作系统原”理论与实践课教学研究[J].实验技术与管理,2010,(9):171-173,177
[2]应毅.针对实际应用的Linux实验教学研究[J].计算机教育,2010,20:139-142
[3]林浩Linux在计算机实验室的几种使用方案[J].实验室科学,2007,(31:87-88
[4]王娟琳,陶宇伟.Linux操作系统综合实验教学环境的实现[J].实验室科学,2010,13(2):122-123
[5]文东戈,王旭.Linux操作系统原理实验教学平台的设计与应用[J].实验室研究与探索,2008,27(5):63-65,76
[6]周铁成,张惠敏.DRBL在构建Linux教学实验平台中的应用[J]实验室研究与探索,2010,29(12):199-201
[7]郑伟,范毅.Windows环境下的GCC编程——CygnusCygwin32简介[J]电脑编程技巧与维护,2003,(1):18-20,23
[8]应毅,任凯.基于Cygwin的Linux实验教学研究与应用[J].南京师大学报(自然科学版),2010,33(教学研究):149-150
[9]张成岗.基于Cygwin实现生物信息学软件从Unix/Linux向Windows移植[J].生物信息学,2003,(1):25-28
[10]张雪平.使用SeeureCRT实现网络管理自动化[J]内江师范学院学报,2005,20(2):48-50
[11]高亚峰,陈晨蕾.CuteFTP pro软件在数据传输中的应用[J]仪器仪表与分析监测,2003,(3):7,20
[12]钱贵平,李虎军.基于UltraEdit和JDK的Java IDE配置[J].电脑学习2010,(2):93-94
编辑:小禾