陳新 楊子天
摘 要:針對(duì)計(jì)算機(jī)編程類課程建立網(wǎng)絡(luò)教學(xué)實(shí)驗(yàn)平臺(tái),不僅可供計(jì)算機(jī)相關(guān)專業(yè)借鑒,也可廣泛應(yīng)用于理工類專業(yè)的教學(xué)實(shí)踐中。在網(wǎng)絡(luò)迅速普及的時(shí)代,基于網(wǎng)絡(luò)環(huán)境的教學(xué)研究將具有更加重要的應(yīng)用價(jià)值。
關(guān)鍵詞:網(wǎng)絡(luò)環(huán)境;虛擬化;實(shí)驗(yàn)教學(xué)平臺(tái)
一、概述
計(jì)算機(jī)編程類課程是理工類專業(yè)的典型課程,具有實(shí)驗(yàn)要求高、環(huán)境復(fù)雜等特點(diǎn)。基于網(wǎng)絡(luò)的計(jì)算機(jī)實(shí)驗(yàn)平臺(tái)已在國外高水平大學(xué)的理工科教學(xué)中得到了廣泛應(yīng)用,并取得了良好的效果,其必將成為國內(nèi)大學(xué)理工科課程教學(xué)改革的探索方向。網(wǎng)絡(luò)教學(xué)可以為學(xué)生提供一種全新的學(xué)習(xí)模式,滿足學(xué)生隨時(shí)隨地學(xué)習(xí)的需求。在國外,網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)正處在快速發(fā)展的階段,以MOOC為代表的大型開放式網(wǎng)絡(luò)課程已從北美洲、歐洲傳播到亞洲、南美洲、非洲及大洋洲。國外一些高校借助虛擬化及云技術(shù)也搭建了自己的計(jì)算機(jī)科研實(shí)驗(yàn)平臺(tái),如Grid5000、PlanetLab及DAS-4等。通過平臺(tái)搭建,教學(xué)實(shí)驗(yàn)資源的提供和使用方式發(fā)生了巨大的變化,形成了橫跨多個(gè)資源節(jié)點(diǎn)、對(duì)用戶透明的實(shí)驗(yàn)環(huán)境。
二、當(dāng)前存在的問題
國內(nèi)高校目前的計(jì)算機(jī)類編程實(shí)驗(yàn)大多還是以單機(jī)操作為主,許多高校計(jì)算機(jī)實(shí)驗(yàn)教學(xué)管理還沒有完全實(shí)現(xiàn)網(wǎng)絡(luò)化,導(dǎo)致實(shí)驗(yàn)教學(xué)的組織、實(shí)施、質(zhì)量管理過程中存在很多不盡人意的問題,影響實(shí)驗(yàn)教學(xué)的順利進(jìn)行。
另外,實(shí)驗(yàn)環(huán)境不同,編譯結(jié)果也是千差萬別。實(shí)驗(yàn)報(bào)告大多是紙質(zhì)手寫,學(xué)生把大量精力浪費(fèi)在抄寫代碼的過程中。此種形式也給教師審核帶來很大不便,使其無法把精力全部放在實(shí)驗(yàn)教學(xué)上。
三、虛擬化實(shí)驗(yàn)教學(xué)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
網(wǎng)絡(luò)教學(xué)的整體方案將部署在VMware vSphere平臺(tái)上,其中包含以下三大方案:
1.MOOC教學(xué)板塊。
在線上播放課件,以網(wǎng)絡(luò)為依托,應(yīng)用多媒體和網(wǎng)絡(luò)技術(shù),通過多媒體教學(xué)信息的收集、傳輸、處理和共享實(shí)現(xiàn)教育教學(xué)目標(biāo)。如可以將課堂視頻、課外習(xí)題、課堂講義等資源傳輸?shù)浇K端供學(xué)生自主選擇,自主學(xué)習(xí)。
2.基于Docker容器技術(shù)的在線實(shí)驗(yàn)環(huán)境。
所使用的環(huán)境結(jié)構(gòu)基于Docker容器技術(shù),它不同于傳統(tǒng)的使用環(huán)境,用戶的所有操作僅限于最上層的操作界面。此外,不同用戶共享除用戶層以外的其他層,類似應(yīng)用于沙盒和還原中的技術(shù),不同實(shí)驗(yàn)會(huì)有不同的材料層。
3.Online Judge在線評(píng)測(cè)。
Online Judge采用模塊化分層設(shè)計(jì),各個(gè)模塊之間相互高度解耦,并相互隔離,保證其可用性及安全性。操作系統(tǒng)選用Linux操作系統(tǒng),Web部分采用普通Web方案。判題部分是整個(gè)Online Judge網(wǎng)站的核心所在。把判題部分單獨(dú)抽出來組成一類服務(wù),便于隨時(shí)通過增加判題節(jié)點(diǎn)加快判題的速度。Web端發(fā)送判題的請(qǐng)求給RabbitMQ等消息隊(duì)列,每一個(gè)判題節(jié)點(diǎn)就是一個(gè)worker,這樣可以增加判題節(jié)點(diǎn)的數(shù)量。判題核心就是編譯、運(yùn)行用戶提交的代碼程序,通過設(shè)置時(shí)間、內(nèi)存等限制,對(duì)ptrace進(jìn)行監(jiān)控,對(duì)系統(tǒng)調(diào)用進(jìn)行限制,解決安全性問題。
四、安全性問題
1.時(shí)間、資源的限制。
使用rlimit控制內(nèi)存,方便在運(yùn)行結(jié)束后獲得內(nèi)存使用情況的數(shù)據(jù)。使用rlimit進(jìn)行CPU時(shí)間控制,但其只能控制CPU時(shí)間,不能控制實(shí)際運(yùn)行時(shí)間,所以需要額外添加alarm進(jìn)行實(shí)際時(shí)間的限制。文件句柄同樣通過rlimit實(shí)現(xiàn),以保證程序不要打開太多文件。如果可行的話,最好還是使用stdio然后管道重定向,完全禁止程序的文件IO操作。
2.訪問控制。
通過chroot建立一個(gè)jail,將程序限制在指定目錄中運(yùn)行。由于是比賽程序,使用的動(dòng)態(tài)鏈接庫很有限,所以直接靜態(tài)編譯。
3.權(quán)限控制。
監(jiān)控程序使用root權(quán)限運(yùn)行,完成必要準(zhǔn)備后fork并切換為受限用戶運(yùn)行程序。
4.系統(tǒng)調(diào)用控制。
監(jiān)控所有的系統(tǒng)調(diào)用,運(yùn)用白名單+計(jì)數(shù)器過濾。
五、結(jié)論
本文研究了當(dāng)前編程實(shí)驗(yàn)教學(xué)方式存在的不足,以建構(gòu)主義學(xué)習(xí)理論為指導(dǎo),探究了新的網(wǎng)絡(luò)環(huán)境下的教學(xué)模式和方法,構(gòu)建了一個(gè)以實(shí)踐性教學(xué)思想為指導(dǎo)的網(wǎng)絡(luò)教學(xué)平臺(tái),為教學(xué)提供了資源性支持、交互性支持和管理性支持,為學(xué)生學(xué)習(xí)提供良好的網(wǎng)絡(luò)學(xué)習(xí)實(shí)驗(yàn)環(huán)境,同時(shí)也可以幫助教師搭建學(xué)習(xí)環(huán)境,指導(dǎo)學(xué)習(xí)過程,監(jiān)控學(xué)習(xí)狀態(tài),了解教學(xué)反饋和開展教學(xué)評(píng)價(jià)。
參考文獻(xiàn):
[1]張青,杜召陽,白佳.采用虛擬化技術(shù)優(yōu)化IT基礎(chǔ)架構(gòu)有效提升IT服務(wù)提供能力[J].電信技術(shù),2010,1(3):82-84.
[2]王鵬.一種基于云端技術(shù)的計(jì)算機(jī)實(shí)驗(yàn)室維護(hù)系統(tǒng)[J].興義民族師范學(xué)院學(xué)報(bào),2013(2):114-117.