應(yīng)毅 任凱
[摘要]目前Linux操作系統(tǒng)是高校計算機(jī)專業(yè)常見的實驗課程,但Linux實驗平臺的幾種常用建設(shè)方法都存在著諸多問題。論文提出新的方案:建立一臺SUSE Linux主服務(wù)器,在Windows平臺下安裝Cygwin軟件,學(xué)生先在Cygwin環(huán)境下進(jìn)行實驗,然后通過telnet以多用戶方式連入主服務(wù)器進(jìn)行驗證操作。該方案不但減少了機(jī)房的維護(hù)工作量,節(jié)省了實驗室資金,而且教學(xué)效果改善明顯,為操作系統(tǒng)實驗教學(xué)的改革提供了有益的思路并起到推廣作用。
[關(guān)鍵詞]實驗教學(xué)環(huán)境;SUSE Linux:Cygwin;終端登錄
[中圖分類號]G420[文獻(xiàn)標(biāo)識碼]A[論文編號]1009-8097(2012)02-0121-04
一現(xiàn)狀與問題
操作系統(tǒng)課程是普通高校本科計算機(jī)及相關(guān)專業(yè)的核心基礎(chǔ)課程,與此相匹配的實踐課程的講授不僅能加深理論知識的理解,在應(yīng)用性和操作性上也具有很強(qiáng)的現(xiàn)實意義。Linux是免費使用和自由傳播的類Unix操作系統(tǒng),有著強(qiáng)大的網(wǎng)絡(luò)優(yōu)勢和極為突出的安全性、穩(wěn)定性和可移植性,無論是智能手機(jī)、PC,還是小型機(jī),都可以運行Linux,Linux占據(jù)著越來越大的市場份額,同時Linux可以作為應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、網(wǎng)絡(luò)服務(wù)器、交換機(jī)、路由器等眾多軟件和設(shè)備的支撐平臺。因此,市場對掌握Linux技術(shù)的人才有大量的需求,所以教授Linux對學(xué)生就業(yè)也有現(xiàn)實意義。另一方面,Linux的操作方法基本與Unix相同,有了Linux這個基礎(chǔ),為學(xué)生以后在其他操作系統(tǒng)上工作提供了便利。
當(dāng)前,很多高校的計算機(jī)實驗室要為眾多的計算機(jī)相關(guān)課程服務(wù),受到資源限制,不可能單獨建立以Unix/Linux為操作系統(tǒng)的實驗室,為了提高設(shè)備的利用率,Linux的實驗環(huán)境一般會和網(wǎng)絡(luò)機(jī)房共同建設(shè),以Windows平臺為主,并通過硬盤保護(hù)卡對系統(tǒng)進(jìn)行保護(hù),在這種條件下建立Linux實驗環(huán)境的常用方法有以下幾種。
(1)直接安裝。直接把Linux安裝到每一臺學(xué)生機(jī)上,好處是速度快,學(xué)生上機(jī)實驗時能最直觀地體驗到真實的Linux,但考慮到兼容性,需要安裝雙系統(tǒng)(Windows+Linux)。而由于硬盤保護(hù)卡無法對Linux進(jìn)行自動復(fù)原,只能采用完全備份方式,導(dǎo)致硬盤資源浪費嚴(yán)重,手動復(fù)原所需時間長,影響實驗課的上課效率。
(2)虛擬機(jī)方式。在Windows環(huán)境下安裝虛擬機(jī)軟件,如Virtual PC、VMWare,然后在虛擬機(jī)上安裝Linux系統(tǒng),好處是可以使用原有的系統(tǒng)保護(hù)功能,Windows環(huán)境幾乎不受影響,機(jī)房維護(hù)輕松。缺點也很明顯:①虛擬機(jī)太慢,實驗代價偏大。首先需要打開虛擬機(jī)軟件,再激活Linux仿真系統(tǒng)。這個開啟過程很耗時,尤其是對于配置較低的PC。②使用虛擬機(jī)的實驗環(huán)境與真實IT企業(yè)中Linux開發(fā)環(huán)境相去甚遠(yuǎn)。真實的類Unix系統(tǒng)管理和開發(fā)是不會使用虛擬機(jī)的。
(3)主服務(wù)器方式。在機(jī)房中只建立一臺Linux操作系統(tǒng)服務(wù)器,學(xué)生在Windows操作系統(tǒng)下,通過網(wǎng)絡(luò)方式連入Linux系統(tǒng)主機(jī),好處是學(xué)生能使用到真實的Linux系統(tǒng),并對眾多學(xué)生機(jī)上的Windows系統(tǒng)也沒有影響。但要求服務(wù)器有較好的配置,如果性能一般,當(dāng)有很多用戶同時登錄到主服務(wù)器上時,會導(dǎo)致服務(wù)器不堪重負(fù),造成宕機(jī)或客戶端相應(yīng)過慢。
(4)DRBL方式。無盤工作站遠(yuǎn)程啟動Linux(DisklessRemote Boot in Linux),在一臺Linux服務(wù)器上安裝DRBL軟件,可以將Linux系統(tǒng)同時提供給大量的終端操作與使用,學(xué)生機(jī)不需要安裝任何軟件,并能與客戶端現(xiàn)有系統(tǒng)共存,學(xué)生能直觀的使用到Linux系統(tǒng),但需要所有計算機(jī)的主板和網(wǎng)卡都支持PXE網(wǎng)絡(luò)啟動,必須在服務(wù)器安裝兩塊以上的網(wǎng)卡,連接不同的交換機(jī),而且網(wǎng)速并發(fā)無法實現(xiàn),當(dāng)接駁終端超過40臺時效果下降明顯。
由此可見,現(xiàn)在高校構(gòu)建Linux實驗平臺最常見的幾種方法都有自身的一些優(yōu)缺點,所以筆者提出如下方案來解決上述問題。在學(xué)生機(jī)的Windows操作系統(tǒng)下安裝Cygwin軟件,在網(wǎng)絡(luò)機(jī)房中使用一臺計算機(jī)安裝Linux操作系統(tǒng),作為主服務(wù)器,學(xué)生先使用Cygwin軟件在各自計算機(jī)上進(jìn)行實驗,當(dāng)實驗完成或接近完成時,才通過telnet方式連入主服務(wù)器進(jìn)行運行和測試。該實驗教學(xué)環(huán)境不影響現(xiàn)有Windows平臺,減少了機(jī)房的維護(hù)工作量,并且與大中型IT公司的開發(fā)環(huán)境非常接近,有利于學(xué)生的就業(yè)。
基于此方案構(gòu)建的教學(xué)環(huán)境可以為Shell編程、Linux常用命令、C/C++程序設(shè)計、PHP開發(fā)等實驗教學(xué)服務(wù),但不大適合Linux系統(tǒng)安裝配制、內(nèi)核編程、服務(wù)器軟件安裝使用等教學(xué)內(nèi)容的實驗。
二實驗環(huán)境的設(shè)計與實現(xiàn)
1整體結(jié)構(gòu)
利用已有的網(wǎng)絡(luò)實驗室,在學(xué)生機(jī)上安裝Cygwin、SecureCRT等軟件,使用一臺計算機(jī)作為硬件平臺,安裝SUSELinux操作系統(tǒng),學(xué)生機(jī)通過telnet方式登陸主服務(wù)器。整體結(jié)構(gòu)如圖1所示。
2主服務(wù)器的搭建
雖然基于相同的Linux內(nèi)核,但Linux的發(fā)行版本種類繁多特色各異,Novell公司的SUSE Linux是個不錯的選擇。
SUSELinux起初是以SlackwareLinux為基礎(chǔ)的一款德文操作系統(tǒng),第一個產(chǎn)品誕生于1992年。2004年1月SUSELinux被Novell收購,之后SUSELinux專注于企業(yè)級服務(wù)器的開發(fā),Novell公司也與IIP、Intel、Microsoft、IBM、富士通等多家軟硬件公司形成戰(zhàn)略合作關(guān)系,SUSE Lmux的應(yīng)用涉及金融、通信、計算機(jī)、教育等多個領(lǐng)域,客戶包括匯豐銀行、倫敦證券交易所、中國民生銀行、中國電信、中興通訊、華為、SAP、Sony、NEC、東軟、中國科技大學(xué)、新加坡國立大學(xué)、國立臺灣師范大學(xué)等。
選擇SUSE Linux的目的就是希望讓實驗環(huán)境更接近于企業(yè),為學(xué)生的就業(yè)造成良好的影響。
SUSE Linux的安裝過程和安裝W'mdows非常接近,該實驗環(huán)境安裝的版本是:SUSE Linux Enterprise Server 10 forx86。其安裝和配置有以下幾點需要注意:
(1)分區(qū)的大小??紤]到Linux主服務(wù)器需要支持多用戶,并且需要安裝各種服務(wù)器軟件(數(shù)據(jù)庫、Web服務(wù)器、網(wǎng)絡(luò)服務(wù)器),所以以往根分區(qū)15G的大小是遠(yuǎn)遠(yuǎn)不夠的,至少需要50G-80G的磁盤空間,當(dāng)然,這個分區(qū)的大小還要視安裝服務(wù)器軟件的多少而定。
(2)固定PP地址。為主服務(wù)器設(shè)置固定的IP地址,方便學(xué)生上機(jī)時通過IP地址登錄到Linux主服務(wù)器。
(3)建立多用戶。Linux天生是一個多用戶操作系統(tǒng),它可以為每個用戶分配各自的資源(主要是文件系統(tǒng)及權(quán)限),而且互不影響。為了讓學(xué)生獨立的完成實驗,可以根據(jù)
學(xué)號建立用戶,例如一學(xué)期有4個班160多個學(xué)生開設(shè)Linux課程,使用相同的實驗室,那么這個Linux主服務(wù)器需要建立160多個用戶。當(dāng)要進(jìn)行服務(wù)器管理實驗時,可以建立群組,例如MySQL組、Tomcat組、Apache組等。
(4)打開Telnet服務(wù)。Telnet服務(wù)在SUSE Linux 10中是默認(rèn)不安裝的,需要使用YaST2工具安裝Telnet服務(wù)(命令:yast2 metd),并開啟防火墻的23端口(命令:yast2firewaU)。如果主服務(wù)器頻繁開關(guān)機(jī),還需要將Telnet服務(wù)設(shè)置為默認(rèn)開機(jī)啟動。
(5)打開FTP服務(wù)。FTP服務(wù)和telnot服務(wù)一樣,在SUSELinux 10中是默認(rèn)不安裝的,主服務(wù)器選擇安裝的是vsFtp,安裝完畢后需要修改vsFtp的配置文件(/etc/vsftpd.conf),將服務(wù)器方式設(shè)置為本地,設(shè)置監(jiān)聽端口為21,同時放開防火墻對FTP所使用的20和21端口的限制,最后重新啟動xinetd服務(wù)和vsfqod服務(wù)。
3客戶端cygwin的安裝
Cygwin是一個在Windows平臺上運行的Unix模擬環(huán)境,它是Cygnus Solutions公司開發(fā)的自由軟件,目前由RedHat負(fù)責(zé)維護(hù)。Cygwin由一個POSIX層和一組移植到Windows操作系統(tǒng)上的GNU工具集組成。這些工具包括:bash腳本語言環(huán)境、GCC、GDB、vi、ncFto、wGet、OpenSSH、CVS/RCS、TeX/LaTeX、bc、GNUpg。除此之外,Cygwin還提供了大量的Unix系統(tǒng)調(diào)用,使得開發(fā)者在不需要徹底修改源代碼的情況下,可將一些重要的Unix應(yīng)用程序移植到Win32環(huán)境。因此,有很多的IT公司都在使用Cygwin作為前期開發(fā)工具。
Cygwin可以在Windows 95以后的所有Windows平臺上運行,它使得在沒有Linux的情況下,也可以使用Shell命令行環(huán)境。本質(zhì)上說,Cygwin是W'mdows平臺下的一款應(yīng)用軟件,所以不必?fù)?dān)心安裝Cygwin會破壞Windows,W'mdows環(huán)境的系統(tǒng)保護(hù)也不會有影響,因此機(jī)房的維護(hù)工作量沒有任何增加。
與虛擬機(jī)不同,Cygwin啟動迅速,其目錄結(jié)構(gòu)也與類Unix系統(tǒng)幾乎完全一致,提供的API盡量與Linux保持一致,所以其使用體驗就感覺是在Linux上工作一樣。
Cygwin軟件的安裝方式主要有兩種:一種是從Intemet上安裝;另一種是先下載安裝包,之后從本地硬盤上安裝。當(dāng)網(wǎng)絡(luò)情況不穩(wěn)定時,建議使用后一種方式安裝。安裝完成后,在桌面會生成一個批處理文件:cygwin.bat,運行它即可啟動一個bash進(jìn)程,在該命令行窗口下,可以直接運行一系列的Unix/Linux命令。
4客戶端其他工具的配置
在Windows環(huán)境下,學(xué)生機(jī)可以通過command中的telnet命令登錄Linux主服務(wù)器。在這方面,功能更強(qiáng)也更常用的是SecureCRT,它是一個終端仿真程序,常用于連接遠(yuǎn)程的Unix或VMS主機(jī)。除了支持telnet協(xié)議外,還支持SSH、Rlogin、Serial等其他協(xié)議。SeeureCRT提供了豐富的終端功能,可以進(jìn)行顏色設(shè)置、屏幕緩沖設(shè)置、屏幕尺寸設(shè)置,用戶還可以進(jìn)行會話管理和自定義鍵位圖,支持命令的拷貝/粘貼,最主要的是SeeureCRT還能保存連接信息(主機(jī)IP、端口號)或書寫腳本(VBScript、JScript)用于自動登錄、自動執(zhí)行命令。
在學(xué)生機(jī)和主服務(wù)器之間會要傳遞文件,telnet和SeeureCRT都提供了上傳/下載的命令,另一個選擇是使用專門的FTP工具。CuteFTP是一款商業(yè)級的FTP客戶端程序,可上傳/T載整個目錄,自動維護(hù)鏈接,支持?jǐn)帱c續(xù)傳,還提供了目錄同步、自動排程、同時多站點管理、多協(xié)議支持等功能,而且是多線程傳輸文件,速度更快,占用服務(wù)器資源更少。
Linux的配置文件較多,配置文件管理和Shell編程是實驗課的重要內(nèi)容。一般可以使用vi等命令來查看、處理配置文件和Shell腳本,更好的選擇是使用專業(yè)的文本編輯器,例如UltraEdit,它可以打開Cygwin環(huán)境下的所有文本文件,也可以利用UltraEdit的FTP功能,遠(yuǎn)程打開Linux主服務(wù)器上的文本文件,除此之外,UltraEdit還具有代碼折疊、語法加亮、拼寫檢查、支持大文件等眾多特色功能。
以上3款軟件在W'mdows平臺上的安裝和使用都非常簡單,但卻是IT公司研發(fā)人員常用的工具,能極大地提高工作效率,起到事半功倍的效果。
三應(yīng)用案例
Shell編程的上機(jī)課中,給出這樣一個習(xí)題讓學(xué)生練習(xí):備份最后一天所有修改的文件。通過這個習(xí)題,來訓(xùn)練find、tar、gzip等命令的組合使用。
學(xué)生需要先在本機(jī)的Cygwin環(huán)境下用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環(huán)境下調(diào)試,運行無誤后,使用CmeFTP上傳backupAllFiles.sh文件到Linux主服務(wù)器。上傳時需提醒學(xué)生使用ASCII傳輸模式。計算機(jī)文件通常分為二進(jìn)制文件和ASCII文件(也稱純文本文件)。所以,F(xiàn)TP的傳輸有兩種方式:ASCII傳輸模式和二進(jìn)制數(shù)據(jù)傳輸模式。如果選擇了錯誤的傳輸模式,會導(dǎo)致文件不可用。這是一個重要的知識點。
上傳成功后,讓學(xué)生使用SecureCRT登錄到主服務(wù)器進(jìn)行調(diào)試和運行。在調(diào)試過程中,如果需要修改腳本,建議學(xué)生使用UltraEdit的FTP功能遠(yuǎn)程打開腳本文件。這時UltraEdit會詢問是否需要將文本文件轉(zhuǎn)換為Dos格式,提醒學(xué)生選擇“否”。Unix下的文本文件和Windows下的文本文件行尾的回車符不一樣。Unix格式用一個OxOa字符表示:Windows/Dos格式用0xodoa雙字符表示。如果字符錯誤,會導(dǎo)致腳本無法執(zhí)行。這也是一個重要的知識點。
在一節(jié)課的時間里,通過這個練習(xí)不僅訓(xùn)練了多個常用命令和Shell編程,還使用了Cygwin、CuteFTP、SecureCRT、UltraEdit等工具,同時還講解了幾個知識點,這些知識點的混淆都會在工作中導(dǎo)致錯誤,需要加強(qiáng)練習(xí)以避免。
四結(jié)束語
該實驗教學(xué)環(huán)境以SUSE Linux主服務(wù)器為中心,通過在
Windows平臺下安裝Cygwin、SecureCRT等軟件實現(xiàn),保持眾多學(xué)生機(jī)的原有狀況不變,沒有給實驗室的維護(hù)增加其他負(fù)擔(dān)。而且學(xué)生上機(jī)時先使用本機(jī)實驗,登錄主服務(wù)器操作時也不是每時每刻都在使用主服務(wù)器(例如Ultra)Edit的FTP打開文件修改),所以對主服務(wù)器的硬件要求并不高,不需要使用小型機(jī)或購置新設(shè)備,節(jié)省了實驗室資金。在實驗過程中教師也發(fā)現(xiàn),由于Cygwin、SecureCRT等工具是Windows下的應(yīng)用軟件,學(xué)生對Windows非常熟悉,也間接解除了學(xué)生對新系統(tǒng)的畏懼心理,得到了非常好的授課效果。
該實驗教學(xué)環(huán)境已實際運行在網(wǎng)絡(luò)機(jī)房中,每次實驗課有近80名學(xué)生同時上機(jī),經(jīng)實踐證明運行穩(wěn)定、維護(hù)方便,可供大家在建設(shè)Linux實驗室時參考與借鑒。
參考文獻(xiàn)
[1]葉俊民,李源,周偉等.“操作系統(tǒng)原”理論與實踐課教學(xué)研究[J].實驗技術(shù)與管理,2010,(9):171-173,177
[2]應(yīng)毅.針對實際應(yīng)用的Linux實驗教學(xué)研究[J].計算機(jī)教育,2010,20:139-142
[3]林浩Linux在計算機(jī)實驗室的幾種使用方案[J].實驗室科學(xué),2007,(31:87-88
[4]王娟琳,陶宇偉.Linux操作系統(tǒng)綜合實驗教學(xué)環(huán)境的實現(xiàn)[J].實驗室科學(xué),2010,13(2):122-123
[5]文東戈,王旭.Linux操作系統(tǒng)原理實驗教學(xué)平臺的設(shè)計與應(yīng)用[J].實驗室研究與探索,2008,27(5):63-65,76
[6]周鐵成,張惠敏.DRBL在構(gòu)建Linux教學(xué)實驗平臺中的應(yīng)用[J]實驗室研究與探索,2010,29(12):199-201
[7]鄭偉,范毅.Windows環(huán)境下的GCC編程——CygnusCygwin32簡介[J]電腦編程技巧與維護(hù),2003,(1):18-20,23
[8]應(yīng)毅,任凱.基于Cygwin的Linux實驗教學(xué)研究與應(yīng)用[J].南京師大學(xué)報(自然科學(xué)版),2010,33(教學(xué)研究):149-150
[9]張成崗.基于Cygwin實現(xiàn)生物信息學(xué)軟件從Unix/Linux向Windows移植[J].生物信息學(xué),2003,(1):25-28
[10]張雪平.使用SeeureCRT實現(xiàn)網(wǎng)絡(luò)管理自動化[J]內(nèi)江師范學(xué)院學(xué)報,2005,20(2):48-50
[11]高亞峰,陳晨蕾.CuteFTP pro軟件在數(shù)據(jù)傳輸中的應(yīng)用[J]儀器儀表與分析監(jiān)測,2003,(3):7,20
[12]錢貴平,李虎軍.基于UltraEdit和JDK的Java IDE配置[J].電腦學(xué)習(xí)2010,(2):93-94
編輯:小禾