曾浩+吳小朋+王敏
一、前言
在互聯(lián)網(wǎng)和寬帶網(wǎng)發(fā)展的過(guò)程中,出現(xiàn)了網(wǎng)絡(luò)電視(IPTV),它是互聯(lián)網(wǎng)業(yè)務(wù)和傳統(tǒng)電視業(yè)務(wù)融合后產(chǎn)生的新業(yè)務(wù)。它給消費(fèi)者帶來(lái)的是集生活與信息于一體的網(wǎng)絡(luò)方式。IPTV 將是下一帶網(wǎng)絡(luò)中最重要的業(yè)務(wù)之一,也是人們信息化生活中的重要組成部分,對(duì) IPTV 機(jī)頂盒的研究,可謂意義深遠(yuǎn)。
在對(duì)機(jī)頂盒研究的過(guò)程中,升級(jí)系統(tǒng)是IPTV機(jī)頂盒軟件系統(tǒng)中較重要的功能模塊,升級(jí)系統(tǒng)性能的好壞不但直接影響用戶(hù)對(duì)產(chǎn)品的操作使用,也同時(shí)影響運(yùn)營(yíng)商對(duì)IPTV業(yè)務(wù)的運(yùn)營(yíng)和推廣。在系統(tǒng)的升級(jí)過(guò)程中,機(jī)頂盒的自修復(fù)機(jī)制對(duì)于保證其穩(wěn)定性和可靠性至關(guān)重要。所謂機(jī)頂盒的自修復(fù)機(jī)制是指機(jī)頂盒在升級(jí)過(guò)程中遇到斷電、系統(tǒng)崩潰、出現(xiàn)壞塊等異常情況時(shí)自我修復(fù)系統(tǒng),從而保證在不需要維護(hù)人員參與的情況下,仍能使用戶(hù)正常體驗(yàn)IPTV業(yè)務(wù)的機(jī)制。
二、研究與分析
通過(guò)研究分析,目前用于機(jī)頂盒的自修復(fù)機(jī)制中,大致分為以下幾種策略:第一是Flash空間劃分大多采取主、備分區(qū)的方式,主分區(qū)存放包含升級(jí)功能和正常業(yè)務(wù)功能的系統(tǒng),備份分區(qū)用于存放只包含升級(jí)功能的系統(tǒng)。這種方式的優(yōu)點(diǎn)是當(dāng)機(jī)頂盒斷電造成工作于主分區(qū)的系統(tǒng)崩潰時(shí),從備份分區(qū)直接進(jìn)入升級(jí)系統(tǒng),恢復(fù)主系統(tǒng)。而且節(jié)省了Flash空間,一定程度上解決了機(jī)頂盒升級(jí)時(shí)斷電造成系統(tǒng)崩潰的問(wèn)題,但是仍然存在不足。如果在對(duì)Flash進(jìn)行多次擦寫(xiě)后備份分區(qū)出現(xiàn)壞塊導(dǎo)致不可用時(shí),只要斷電,整個(gè)系統(tǒng)就會(huì)崩潰,并且無(wú)法自我修復(fù),用戶(hù)便無(wú)法正常體驗(yàn)IPTV業(yè)務(wù)。第二種是將Flash從邏輯上劃分為引導(dǎo)區(qū),升級(jí)分區(qū),工作分區(qū)和備份分區(qū)。將系統(tǒng)引導(dǎo)信息存入引導(dǎo)區(qū),將只具有升級(jí)功能的系統(tǒng)存放到升級(jí)分區(qū),將包含升級(jí)功能和正常業(yè)務(wù)功能的系統(tǒng)存入工作分區(qū),將升級(jí)成功后工作分區(qū)中的系統(tǒng)備份放入備份分區(qū)。然后重新設(shè)計(jì)引導(dǎo)加載程序,設(shè)計(jì)了一套新的自修復(fù)機(jī)制。其優(yōu)點(diǎn)是Flash中三個(gè)分區(qū)的系統(tǒng)構(gòu)成了一套完整的自修復(fù)機(jī)制,保證了各種情況下,機(jī)頂盒都能夠完成自動(dòng)升級(jí),并且保證了用戶(hù)能夠正常體驗(yàn)IPTV業(yè)務(wù);缺點(diǎn)是基于改進(jìn)Flash劃分的新的Boot Loader的框架設(shè)計(jì)復(fù)雜繁瑣。第三中就是將Flash劃分為引導(dǎo)區(qū)、主分區(qū)和備份區(qū),其中引導(dǎo)區(qū)包括引導(dǎo)加載程序和引導(dǎo)參數(shù),主分區(qū)包括升級(jí)功能和業(yè)務(wù)功能,備份區(qū)包含升級(jí)功能。
綜上所述,通過(guò)分析研究,本課題采用主備分區(qū)的Flash分區(qū)方式以及一種斷電保護(hù)機(jī)制。傳統(tǒng)的升級(jí)是reboot recovery后進(jìn)入recovery模式,確保/backup分區(qū)里存的是最近并且是可以正常升級(jí)成功的包。但是,若在刷系統(tǒng)的過(guò)程中斷電,系統(tǒng)只擦出一半,那么系統(tǒng)將不能啟動(dòng),也就不會(huì)進(jìn)入/backup,所以需要一種斷電保護(hù)機(jī)制。其中,reboot recovery命令只是讓系統(tǒng)從recovery進(jìn)入,但卻不會(huì)改變boot env中的值,這種斷電保護(hù)機(jī)制是將boot env中的值設(shè)置成包的路徑,那么下次檢測(cè)到這個(gè)值還是路徑,它就會(huì)進(jìn)入recovery模式,直到升級(jí)成功后將env中的值清空。系統(tǒng)進(jìn)入recovery后,將升級(jí)包復(fù)制寫(xiě)入/backup分區(qū),設(shè)置kt_key 的值為升級(jí)路徑,然后將升級(jí)包寫(xiě)入系統(tǒng)。下圖是斷電保護(hù)機(jī)制的流程圖。
機(jī)頂盒終端啟動(dòng)時(shí),首先將引導(dǎo)區(qū)信息載入內(nèi)存,并根據(jù)標(biāo)志有效性的值判斷升級(jí)分區(qū),工作分區(qū)和備份分區(qū)中的系統(tǒng)是否正常。使用中通常包括如下情形:
(1)當(dāng)判斷出主分區(qū)中的系統(tǒng)正常時(shí),使用該系統(tǒng)從升級(jí)服務(wù)器下載升級(jí)文件,進(jìn)行正常的升級(jí),如果升級(jí)過(guò)程中出現(xiàn)斷電情況,則啟動(dòng)斷電保護(hù)機(jī)制,進(jìn)行升級(jí)系統(tǒng)。(2)當(dāng)判斷出主分區(qū)中的系統(tǒng)被破壞,而備份分區(qū)中的系統(tǒng)正常時(shí),可以使用備份分區(qū)中的系統(tǒng)進(jìn)行升級(jí),如果升級(jí)過(guò)程中出現(xiàn)斷電情況,則啟動(dòng)斷電保護(hù)機(jī)制,進(jìn)行升級(jí)系統(tǒng)。(3)當(dāng)判斷出主分區(qū)和升級(jí)分區(qū)中的系統(tǒng)都被破壞時(shí),將系統(tǒng)恢復(fù)到被破壞之前的使用狀態(tài),保證用戶(hù)的正常使用。
三、總結(jié)
從以上三種情況中可以看出,F(xiàn)lash中兩個(gè)分區(qū)的系統(tǒng)以及一種斷電保護(hù)機(jī)制構(gòu)成了一套完整的自修復(fù)機(jī)制,保證了各種情況下,機(jī)頂盒都能夠完成自動(dòng)升級(jí),并且保證了用戶(hù)總能夠正常體驗(yàn)IPTV業(yè)務(wù),因此該自我修復(fù)機(jī)制具有高可靠性和高穩(wěn)定性。通過(guò)對(duì)機(jī)頂盒正常升級(jí)時(shí)斷電,恢復(fù)供電后,查看系統(tǒng)能否正常開(kāi)啟,能否重新升級(jí),重新升級(jí)后,檢查機(jī)頂盒配置頁(yè)面中參數(shù)是否改變。測(cè)試結(jié)果表明,本升級(jí)方案很好地解決了機(jī)頂盒自我修復(fù)問(wèn)題,同時(shí)廣大用戶(hù)對(duì)使用效果反映良好。
參 考 文 獻(xiàn)
[1]馮忠信,陳光等.機(jī)頂盒Flash分區(qū)信息丟失故障分析.中國(guó)有線(xiàn)電視,2011年09期
[2]鄭文靜,李明強(qiáng),舒繼武.flash存儲(chǔ)技術(shù),計(jì)算機(jī)研究與發(fā)展,2010年4期
[3]曾浩,呂華,王銘偉.IPTV機(jī)頂盒升級(jí)方案的設(shè)計(jì)與實(shí)現(xiàn).電視設(shè)計(jì).2010(05):54-56
[4]何寶宏,淺析IPTV的幾個(gè)關(guān)鍵問(wèn)題,中國(guó)電信網(wǎng),2005,8:10~14