一種利用linux內核實現多系統的裝置及方法
2023-04-24 04:18:01 1
一種利用linux內核實現多系統的裝置及方法
【專利摘要】本發明公開一種利用linux內核實現多系統的裝置及方法,其中,裝置包括:用於不同系統共用的底層模塊;設置在底層模塊之上的用於在不同系統之間進行切換的系統切換模塊;及設置在系統切換模塊之上的不同系統;所述系統切換模塊包括虛擬終端模塊及事件模塊;所述虛擬終端模塊包括用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端一一對應;所述事件模塊,用於根據用戶的切換指令,將底層模塊的設備文件提供給不同系統進行訪問。
【專利說明】—種利用I inux內核實現多系統的裝置及方法
【技術領域】
[0001]本發明涉及移動終端多系統領域,尤其涉及一種利用Iinux內核實現多系統的裝置及方法。
【背景技術】
[0002]隨著科技的發展和社會的進步,越來越多的智能設備走進了千家萬戶,智慧型手機、智能平板、智能電視等智能產品極大地方便了人們的工作和生活。目前,這些設備上一般只有一個作業系統,例如Android、ios、firefox os等。如可以在一臺設備上同時安裝兩個或多個作業系統,那麼將極大的提高用戶的體驗,使得用戶在一臺設備上就可以體驗多種系統,滿足了用戶體驗不同系統的需求。
[0003]目前主流的Android設備硬體強大,CPU基本上是雙核以及四核,這也為打造多作業系統提供了堅實的硬體基礎,現有技術也實現了在一臺設備上安裝兩種作業系統的方案,但現有的雙作業系統,如需要切換系統,需要重新啟動系統,才能實現系統切換,切換起來不方便;並且,現有的雙作業系統容易造成屏幕同時顯示兩個系統的問題,易導致屏幕混亂。
[0004]因此,現有技術還有待於改進和發展。
【發明內容】
[0005]鑑於上述現有技術的不足,本發明的目的在於提供一種利用Iinux內核實現多系統的裝置及方法,旨在解決現有多系統實現技術需要重啟才能切換系統導致系統切換不方便以及容易導致屏幕混亂的問題。
[0006]本發明的技術方案如下:
一種利用Iinux內核實現多系統的裝置,其中,包括:
用於不同系統共用的底層模塊;
設置在底層模塊之上的用於在不同系統之間進行切換的系統切換模塊;
及設置在系統切換模塊之上的不同系統;
所述系統切換模塊包括虛擬終端模塊及事件模塊;
所述虛擬終端模塊包括用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端--對應;
所述事件模塊,用於根據用戶的切換指令,將底層模塊的設備文件提供給不同系統進行訪問。
[0007]所述的利用Iinux內核實現多系統的裝置,其中,所述不同系統至少包括第一系統和第二系統,所述第一系統為Android系統。
[0008]所述的利用Iinux內核實現多系統的裝置,其中,所述事件模塊包括:
刪除單元,用於當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文件;設備文件節點創建單元,用於創建新的設備文件節點,用來存儲設備文件;
讀取單元,用於從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。
[0009]所述的利用Iinux內核實現多系統的裝置,其中,所述事件模塊還包括:
恢復單元,用於當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件。
[0010]所述的利用Iinux內核實現多系統的裝置,其中,所述切換指令為用戶通過按下指定熱鍵實現。
[0011]所述的利用Iinux內核實現多系統的裝置,其中,所述指定熱鍵為組合鍵。
[0012]一種利用Iinux內核實現多系統的方法,其中,包括步驟:
在底層模塊之上設置用於在不同系統之間進行切換的系統切換模塊;
在系統切換模塊之上設置不同系統的應用層;
在系統切換模塊中設置用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端--對應;
當接收到用戶的切換指令時,將底層模塊的設備文件提供給不同系統進行訪問; 並通過與系統一一對應的虛擬終端對切換後的系統進行顯示。
[0013]所述的利用Iinux內核實現多系統的方法,其中,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟具體包括步驟:· 查詢並記錄當前系統使用的虛擬終端,並獲取一個空閒的虛擬終端,通過所述空閒虛擬終端進行顯示。
[0014]所述的利用Iinux內核實現多系統的方法,其中,所述不同系統至少包括第一系統和第二系統,所述第一系統為Android系統,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟具體包括:
當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文
件;
創建新的設備文件節點,用來存儲設備文件;
從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。
[0015]所述的利用Iinux內核實現多系統的方法,其中,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟還包括:
當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件。
[0016]有益效果:本發明通過在底層模塊之上設置系統切換模塊,並在系統切換模塊中設置虛擬終端模塊及事件模塊,通過該事件模塊使得不同系統可以共用一內核,並且能夠使當前使用的系統響應用戶的操作,同時其他系統不會進行響應;通過該虛擬終端模塊對不同系統進行顯示,從而避免了多個系統同時在屏幕上顯示導致的屏幕混亂的問題。
【專利附圖】
【附圖說明】
[0017]圖1為本發明一種利用Iinux內核實現多系統的裝置較佳實施例的結構框圖。
[0018]圖2為本發明中事件模塊的結構框圖。
[0019]圖3為本發明一種利用Iinux內核實現多系統的方法較佳實施例的流程圖。[0020]圖4為本發明一種利用Iinux內核實現多系統的方法具體實施例的流程圖。【具體實施方式】
[0021]本發明提供一種利用Iinux內核實現多系統的裝置及方法,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
[0022]本發明提供的一種利用Iinux內核實現多系統的裝置,其包括:
用於不同系統共用的底層模塊;
設置在底層模塊之上的用於在不同系統之間進行切換的系統切換模塊;
及設置在系統切換模塊之上的不同系統;
所述系統切換模塊包括虛擬終端模塊及事件模塊;
所述虛擬終端模塊包括用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端--對應;
所述事件模塊,用於根據用戶的切換指令,將底層模塊的設備文件提供給不同系統進行訪問。
[0023]本發明的原理是在Iinux內核的基礎上建立一個新的系統(當然可以不止一個新的系統),新的系統和原有的系統共享一個Iinux內核,這就可以達到快速切換系統的目的,因為這兩個系統都具有同一個核心,所以不需要重啟才能切換至另一個系統,切換起來非常方便。同時,由於本發明中的事件模塊可以根據用戶的切換指令將底層模塊的設備文件提供給不同系統的應用層訪問,所以避免了兩個系統同時在屏幕上顯示導致屏幕混亂的問題。
[0024]下面以一具體實施例來`對本發明的裝置進行具體說明。
[0025]如圖1所示,該裝置包括:用於web os系統以及Android系統共用的底層模塊,用於在web οs系統以及Andro i d系統之間進行系統切換的系統切換模塊,設置在系統切換模塊之上的不同系統。底層模塊包括Iinux內核、文件系統及各種驅動,通過該系統切換模塊將兩個不同的系統隔離開來,在系統切換模塊之上就是不同的系統=Android系統和webos系統,這兩個系統共享一個Iinux內核、驅動及文件系統,由於Iinux內核是一個開源的系統,所以可以通過修改其代碼,來按照本發明的需求進行修改,來實現雙系統切換。
[0026]由於在一個內核上運行兩個系統,會造成兩個系統同時顯示到屏幕導致系統顯示混亂的問題,為了解決上述問題,本實施例中的虛擬終端模塊設置有用於對不同系統進行顯示的多個虛擬終端(即圖形虛擬終端),且系統與虛擬終端一一對應。這樣將每一個虛擬終端當成一個虛擬出來的屏幕,不同的系統使用不同的虛擬終端,例如在一個虛擬終端上畫圖,並不會影響到另外的虛擬終端上進行畫圖等操作,所以兩個系統分別運行在不同的虛擬終端下即可解決屏幕顯示混亂的問題。
[0027]假如Android系統使用的虛擬終端編號為7,那麼web os系統使用編號不為7的虛擬終端即可,例如編號為I。當系統啟動時,默認是切換到了虛擬終端7上進行顯示,也即顯示Android系統,當用戶需要切換系統時,只需切換到虛擬終端I,顯示web os系統,當用戶需要切換回Android系統時,再切換回虛擬終端7即可。
[0028]虛擬終端的設備驅動文件路徑是/dev/tty,只需對這個文件進行操作,並通過調用ioctl函數(用於向設備發出控制和配置命令的函數)即可實現切換虛擬終端的目的。由於Iinux內核最大支持63個虛擬終端,所以理論上在Iinux內核上可以同時安裝63個系統。
[0029]在本實施例中,事件模塊其具有讀取用戶的輸入操作功能,並能夠將用戶操作指令傳遞給上層,交由上層進行響應處理。事件模塊的功能需要Iinux內核的Input Driver(輸入驅動)來支持。在Iinux內核中,任何設備(外設輸入設備)包括遙控器、滑鼠等都是被當成文件來訪問的,在路徑/dev/input/下以event開頭的文件就是設備文件,只需對這些設備文件進行讀取,並存放在一個隊列中,並由上層的應用層進行讀取,作出相應的處理,即可完成相應的功能,所以Android系統就是利用/dev/input/下的dev設備來讀取用戶的輸入操作。本發明中,為了隔離不同系統,如圖2所示,在事件模塊100中設置了:
刪除單元110,用於當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文件;例如當用戶將系統從Android系統切換至web os系統時,就刪除Iinux內核的設備文件,即刪除dev/input/下相關的設備文件;
設備文件節點創建單元120,用於創建新的設備文件節點,用來存儲設備文件;即在其他路徑下創建新的設備文件節點,用來存儲設備文件;
讀取單元130,用於從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。web os系統可從新的設備文件節點來讀取設備文件,這樣就能捕獲用戶的輸入操作,並傳遞給上層進行響應;
恢復單元140,用於當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件;這是因為原有的設備文件被刪除,所以Android系統無法獲取用戶輸入操作,所以當用戶將系統從web os系統切換回至Android系統時,就需要再恢復這些已刪除的設備文件,從而達到控制兩個系統分別讀取用戶輸入操作的目的。
[0030]較優選的,所述切換指令為用戶通過按下指定熱鍵實現,即用戶通過按下某個指定熱鍵即可實現系統切換,對於不同的設備其指定熱鍵可能不同,所以需對不同的設備進行不同的定義,例如對於手機和帶有遙控器的電視其定義是不同的。更優選的,所述指定熱鍵為組合鍵,這樣能夠避免用戶錯按或誤按影響用戶使用的問題。指定熱鍵的定義,可以在Iinux內核中修改事件驅動,來接受相應的指定按鍵切換到不同的系統中。
[0031]修改的代碼文件路徑是/kernel /drivers/input/input, c,在該文件中,增加對指定熱鍵的接收以及處理函數。當接受到切換指定熱鍵後,調用系統切換模塊的接口去進行系統切換。
[0032]上述實施例是以設備同時安裝Android系統和web os系統為例進行說明,顯然,本發明還可安裝目前流行的其他系統,例如firefox web os等系統,或者基於現有的硬體基礎,同時安裝三個或以上的系統,同樣能實現三系統切換操作的目的。另外,本發明中,假如設備上的某個系統出現故障,還可切換到另外一個系統上去進行修復,這也方便了用戶解決故障。
[0033]基於上述裝置,本發明還提供一種利用Iinux內核實現多系統的方法,如圖3所示,其包括步驟:
5101、在底層模塊之上設置用於在不同系統之間進行切換的系統切換模塊;
5102、在系統切換模塊之上設置不同系統的應用層; 5103、在系統切換模塊中設置用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端 對應;
5104、當接收到用戶的切換指令時,將底層模塊的設備文件提供給不同系統進行訪
問;
5105、並通過與系統一一對應的虛擬終端對切換後的系統進行顯示。
[0034]進一步,所述步驟S104具體包括:
查詢並記錄當前系統使用的虛擬終端,並獲取一個空閒的虛擬終端,通過所述空閒虛擬終端進行顯示。
[0035]進一步,所述不同系統至少包括第一系統和第二系統,所述第一系統為Android系統,所述步驟S104具體包括:
當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文
件;
創建新的設備文件節點,用來存儲設備文件;
從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。
[0036]進一步,所述步驟S104還包括:
當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件。
[0037]下面提供一利用Iinux內核實現多系統的方法具體實施例,如圖4所示,其包括: 開始;
5201、用戶開機;
5202、默認進入到Android系統;
5203、接收到用戶的切換指令時,準備切換至第二系統;
5204、內核接收熱鍵,啟動切換進程;
5205、查詢當前Android系統使用的虛擬終端,並記錄其編號,同時查詢一個空閒的虛擬終端,並切換至該空閒虛擬終端;
5206、刪除Iinux內核的設備文件,同時創建新的設備文件節點,用來存儲設備文件;
5207、調用第二系統的初始化進程,並將控制權交給第二系統;
5208、當用戶按下切換回Android系統的熱鍵時,使用之前記錄的Android系統的虛擬終端;
5209、恢復原有的Iinux內核的設備文件,同時刪除當前第二系統使用的設備文件;
結束。
[0038]關於上述方法的具體技術細節在前面的方法中已有詳述。
[0039]綜上所述,本發明通過在底層模塊之上設置系統切換模塊,並在系統切換模塊中設置虛擬終端模塊及事件模塊,通過該事件模塊使得不同系統可以共用一內核,並且能夠使當前使用的系統響應用戶的操作,同時其他系統不會進行響應;通過該虛擬終端模塊對不同系統進行顯示,從而避免了多個系統同時在屏幕上顯示導致的屏幕混亂的問題。
[0040]應當理解的是,本發明的應用不限於上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬於本發明所附權利要求的保護範圍。
【權利要求】
1.一種利用Iinux內核實現多系統的裝置,其特徵在於,包括: 用於不同系統共用的底層模塊; 設置在底層模塊之上的用於在不同系統之間進行切換的系統切換模塊; 及設置在系統切換模塊之上的不同系統; 所述系統切換模塊包括虛擬終端模塊及事件模塊; 所述虛擬終端模塊包括用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端--對應; 所述事件模塊,用於根據用戶的切換指令,將底層模塊的設備文件提供給不同系統進行訪問。
2.根據權利要求1所述的利用Iinux內核實現多系統的裝置,其特徵在於,所述不同系統至少包括第一系統和第二系統,所述第一系統為Android系統。
3.根據權利要求2所述的利用Iinux內核實現多系統的裝置,其特徵在於,所述事件模塊包括: 刪除單元,用於當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文件; 設備文件節點創建單元,用於創建新的設備文件節點,用來存儲設備文件; 讀取單元,用於從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。
4.根據權利要求2所述的利用Iinux內核實現多系統的裝置,其特徵在於,所述事件模塊還包括: 恢復單元,用於當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件。
5.根據權利要求2所述的利用Iinux內核實現多系統的裝置,其特徵在於,所述切換指令為用戶通過按下指定熱鍵實現。
6.根據權利要求2所述的利用Iinux內核實現多系統的裝置,其特徵在於,所述指定熱鍵為組合鍵。
7.一種利用Iinux內核實現多系統的方法,其特徵在於,包括步驟: 在底層模塊之上設置用於在不同系統之間進行切換的系統切換模塊; 在系統切換模塊之上設置不同系統的應用層; 在系統切換模塊中設置用於對不同系統進行顯示的多個虛擬終端,且系統與虛擬終端--對應; 當接收到用戶的切換指令時,將底層模塊的設備文件提供給不同系統進行訪問; 並通過與系統一一對應的虛擬終端對切換後的系統進行顯示。
8.根據權利要求7所述的利用Iinux內核實現多系統的方法,其特徵在於,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟具體包括步驟: 查詢並記錄當前系統使用的虛擬終端,並獲取一個空閒的虛擬終端,通過所述空閒虛擬終端進行顯示。
9.根據權利要求8所述的利用Iinux內核實現多系統的方法,其特徵在於,所述不同系統至少包括第一系統和第二系統,所述第一系統為Android系統,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟具體包括:當根據用戶切換指令從Android系統切換至第二系統時,刪除Iinux內核的設備文件; 創建新的設備文件節點,用來存儲設備文件; 從新的設備文件節點讀取設備文件,捕獲用戶的操作,並進行響應。
10.根據權利要求8所述的利用Iinux內核實現多系統的方法,其特徵在於,所述將底層模塊的設備文件提供給不同系統進行訪問的步驟還包括: 當根據用戶切換指令從第二系統切回至Android系統時,恢復Iinux內核下已刪除的設備文件。`
【文檔編號】G06F9/48GK103677989SQ201310677376
【公開日】2014年3月26日 申請日期:2013年12月13日 優先權日:2013年12月13日
【發明者】劉偉 申請人:Tcl集團股份有限公司