本發明涉及計算機技術領域,尤具體地說是一種實用性強、基于龍芯硬件平臺的linux嵌入式系統實現方法。
背景技術:
隨著龍芯cpu的成熟和國產替代計劃的推進,龍芯越來越廣泛的應用在國產通信設備和國防信息裝備中,本發明是一種針對龍芯硬件平臺的linux嵌入式系統設計方法,可有效的提高系統的穩定性和可靠性。
linux是一種非常流行的開源操作系統,擁有豐富的開源軟件,是龍芯cpu的配套操作系統。由于linux操作系統和軟件的開源特性,可以以較低的成本,在較短的時間內通過集成開源軟件搭建起一套功能豐富嵌入式系統。
嵌入式系統通常需要長時間不間斷運行,特別是在通信和國防信息設備上,對嵌入式系統的可靠性提出了極高的要求。
由linux開源軟件集成起來的嵌入式系統,雖然具有成本優勢,但其安全性和可靠性通常得不到保障。
基于此,本發明提出了一種基于龍芯硬件平臺的linux嵌入式系統實現方法,來保護linux嵌入式系統的關鍵進程不被惡意關閉或意外中斷,從而提高系統的可靠性和可用性。
技術實現要素:
本發明的技術任務是針對以上不足之處,提供一種實用性強、基于龍芯硬件平臺的linux嵌入式系統實現方法。
一種基于龍芯硬件平臺的linux嵌入式系統實現方法,其實現過程為:
基于配置有龍芯的硬件平臺,該平臺上安裝有linux嵌入式系統、配置有看門狗資源,即在linux嵌入式系統中增加看門狗驅動,在系統啟動時加載,使能看門狗功能;
設計一個保護進程模塊,該保護進程模塊在系統啟動后運行,定期喂狗,若保護進程被惡意關閉,則看門狗自動將設備重啟。
所述保護進程模塊用于保護進程的安全,該保護進程模塊在嵌入式系統中第一個啟動,對外提供注冊接口;嵌入式系統中包括業務進程、服務代理進程的其它進程調用其注冊接口時,將包括本進程名稱、進程號、程序運行啟動路徑的參數信息傳遞給保護進程模塊;保護進程定期向各個被保護的進程發送信號以監控各個進程的運行狀態,若信號無響應,說明被保護進程卡死或者意外中斷,保護進程立即結束原有進程,并重啟啟動被保護進程進行恢復。
在保護進程模塊中,配置一線程負責定時喂狗,即喂狗線程;配置另一線程負責監控被保護進程,即監控線程;該保護進程模塊提供接口,其它進程調用此接口注冊成為被保護進程;監控線程定時向被保護進程發送信號,若信號無響應,監控線程重啟被保護進程。
基于監控線程和喂狗線程,進程的保護過程具體為:
在系統啟動時,首先啟動看門狗,然后啟動保護進程模塊;
保護進程模塊中的喂狗線程和監控線程啟動,同時啟動被保護的進程;
喂狗線程通過定時器定時喂狗,若無定時喂狗發生時,重啟系統;
監控線程向被保護進程發送信號,若無響應信號時,重啟被保護線程。
本發明的一種基于龍芯硬件平臺的linux嵌入式系統實現方法,具有以下優點:
本發明的一種基于龍芯硬件平臺的linux嵌入式系統實現方法,充分利用龍芯硬件平臺提供的看門狗資源,通過實時監控和快速恢復的方法,保護linux嵌入式系統的關鍵進程不被惡意關閉或意外中斷;避免的人工手動維護進程,提高了嵌入式系統的可維護性;降低了關鍵業務進程退出帶來的系統當機的發生概率,提高了系統的可用性;控制了引入開源軟件可靠性差的影響,提高了嵌入式系統整體的可靠性;兩級保護,快速恢復,提高了嵌入式系統的健壯性,實用性強,適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發明的實現流程圖。
具體實施方式
下面結合附圖和具體實施例對本發明作進一步說明。
如附圖1所示,一種基于龍芯硬件平臺的linux嵌入式系統實現方法,近年來,圍繞發展自主可控、安全可信的國產軟硬件,國內一些企業進行了積極的探索,涌現了一批以龍芯為代表的自主cpu芯片。本專利針對龍芯硬件平臺配套的linux操作系統,linux操作系統是開源軟件且十分普及,使用linux作為核心開發嵌入式系統具有簡單易學,靈活擴展,開發成本低等優點。嵌入式系統,通常需要長時間不間斷運行,具有較高的可靠性要求。本專利利用龍芯硬件平臺的看門狗資源,通過實時監控和快速恢復技術,保障linux嵌入式系統關鍵進程的安全,防止惡意攻擊和意外中斷,提高系統的可靠性。
本發明利用龍芯硬件平臺的看門狗資源,應用實時監控和快速恢復的設計方法,嚴密保護linux嵌入式系統關鍵進程的安全,提高系統的可靠性。
本發明具有以下特點:
實現龍芯看門狗的linux驅動,在驅動中使能看門狗,并將定時器初始化。將驅動編譯進linux內核中。
實現保護進程,保護進程中其中一線程負責定時喂狗,另一線程負責監控被保護進程,保護進程提供接口,其它進程調用此接口注冊成為被保護進程。監控線程定時向被保護進程發送信號,若信號無響應,監控線程重啟被保護進程。
將保護進程的程序加入linux嵌入式系統的啟動腳本,首先啟動。
本發明的實現過程為:
基于配置有龍芯的硬件平臺,該平臺上安裝有linux嵌入式系統、配置有看門狗資源,即在linux嵌入式系統中增加看門狗驅動,在系統啟動時加載,使能看門狗功能;
設計一個保護進程模塊,該保護進程模塊在系統啟動后運行,定期喂狗,若保護進程被惡意關閉,則看門狗自動將設備重啟。
所述保護進程模塊用于保護進程的安全,該保護進程模塊在嵌入式系統中第一個啟動,對外提供注冊接口;嵌入式系統中包括業務進程、服務代理進程的其它進程調用其注冊接口時,將包括本進程名稱、進程號、程序運行啟動路徑的參數信息傳遞給保護進程模塊;保護進程定期向各個被保護的進程發送信號以監控各個進程的運行狀態,若信號無響應,說明被保護進程卡死或者意外中斷,保護進程立即結束原有進程,并重啟啟動被保護進程進行恢復。
在保護進程模塊中,配置一線程負責定時喂狗,即喂狗線程;配置另一線程負責監控被保護進程,即監控線程;該保護進程模塊提供接口,其它進程調用此接口注冊成為被保護進程;監控線程定時向被保護進程發送信號,若信號無響應,監控線程重啟被保護進程。
基于監控線程和喂狗線程,進程的保護過程具體為:
在系統啟動時,首先啟動看門狗,然后啟動保護進程模塊;
保護進程模塊中的喂狗線程和監控線程啟動,同時啟動被保護的進程;
喂狗線程通過定時器定時喂狗,若無定時喂狗發生時,重啟系統;
監控線程向被保護進程發送信號,若無響應信號時,重啟被保護線程。
上述具體實施方式僅是本發明的具體個案,本發明的專利保護范圍包括但不限于上述具體實施方式,任何符合本發明的一種基于龍芯硬件平臺的linux嵌入式系統實現方法的權利要求書的且任何所述技術領域的普通技術人員對其所做的適當變化或替換,皆應落入本發明的專利保護范圍。