果差的問題。降低了操作系統(tǒng)共存過程的復(fù)雜度,不會破壞原系統(tǒng)的磁盤分區(qū)布局,提高了系統(tǒng)共存的效果。
[0079]參照圖4,圖4為本發(fā)明操作系統(tǒng)共存方法的第二實施例的流程示意圖?;谏鲜霾僮飨到y(tǒng)共存方法的第一實施例,在所述步驟S40之后,還包括:
[0080]步驟S50,接收基于所述引導(dǎo)列表中的所述第一操作系統(tǒng)的引導(dǎo)項,獲取所述第一操作系統(tǒng)的內(nèi)核和配置文件,加載所述第一操作系統(tǒng),切換并運行所述第一操作系統(tǒng)。
[0081]在切換至第二操作系統(tǒng)后,若需要切換回第一操作系統(tǒng),則基于所述引導(dǎo)列表中的所述第一操作系統(tǒng)的引導(dǎo)項,觸發(fā)切換至第一操作系統(tǒng)的指令,在觸發(fā)切換至第一操作系統(tǒng)的指令后,獲取所述第一操作系統(tǒng)的內(nèi)核和配置文件,加載所述第一操作系統(tǒng),切換并運行所述第一操作系統(tǒng)。
[0082]具體的,在恢復(fù)至第一操作系統(tǒng)時,只需要將所述第二操作系統(tǒng)的引導(dǎo)項以及虛擬磁盤文件刪除即可恢復(fù)回第一操作系統(tǒng)。在此過程中均不會破壞第一操作系統(tǒng)的磁盤分區(qū)布局。本實施例在實現(xiàn)操作系統(tǒng)共存的方式是多個物理操作系統(tǒng)共存-非虛擬機方式,目前虛擬化廠商Vmware通過虛擬機的方式也可以安裝多個操作系統(tǒng),但虛擬機系統(tǒng)(第二操作系統(tǒng))運行需要依賴宿主系統(tǒng)。第一操作系統(tǒng)和第二操作系統(tǒng)沒有依賴性。且我們實現(xiàn)的方式是非破壞性的,即不會破壞原系統(tǒng)的分區(qū)布局。對比Mac系統(tǒng)下通過bootcamp方式安裝的第二系統(tǒng)或傳統(tǒng)方式安裝第二系統(tǒng),需要單獨分區(qū),會破壞原系統(tǒng)分區(qū)布局。
[0083]本實施例通過在第一操作系統(tǒng)下添加引導(dǎo)項和創(chuàng)建虛擬磁盤文件,使得不會破壞第一操作系統(tǒng)的磁盤分區(qū)布局,且能快速、合理的恢復(fù)至第一操作系統(tǒng)。
[0084]上述第一至第二實施例的操作系統(tǒng)共存方法的執(zhí)行主體均可以為終端。更進(jìn)一步地,該操作系統(tǒng)共存方法可以由安裝在終端上的客戶端操作系統(tǒng)共存程序(例如,操作系統(tǒng)共存軟件)實現(xiàn),其中,該終端包括但不限于手機、pad、筆記本電腦等。
[0085]本發(fā)明進(jìn)一步提供一種操作系統(tǒng)共存裝置。
[0086]參照圖5,圖5為本發(fā)明操作系統(tǒng)共存裝置的較佳實施例的功能模塊示意圖。
[0087]在一實施例中,所述操作系統(tǒng)共存裝置包括:獲取模塊10、存儲模塊20、處理模塊30、運行模塊40及生成模塊50。
[0088]所述獲取模塊10,用于在第一操作系統(tǒng)下,獲取預(yù)先創(chuàng)建的磁盤文件所占用的物理磁盤扇區(qū)信息;
[0089]所述存儲模塊30,用于將所獲取的物理磁盤扇區(qū)信息保存到所述第一操作系統(tǒng)的配置文件中;
[0090]所述第一操作系統(tǒng)優(yōu)選為Windows操作系統(tǒng),也還可以是其他操作系統(tǒng),所述第一操作系統(tǒng)與所述第二操作系統(tǒng)不同。
[0091]在所述第一操作系統(tǒng)下,例如,在Windows下,創(chuàng)建模塊10先創(chuàng)建一個虛擬磁盤文件。
[0092]為了對創(chuàng)建的磁盤進(jìn)行保護,具體的,參考圖6,所述裝置還包括接發(fā)模塊60、創(chuàng)建模塊70和磁盤保護模塊80,
[0093]所述接發(fā)模塊60,用于接收磁盤文件創(chuàng)建請求;
[0094]所述創(chuàng)建模塊70,用于創(chuàng)建與所述磁盤文件創(chuàng)建請求對應(yīng)的磁盤文件;
[0095]接發(fā)模塊60接收磁盤文件創(chuàng)建請求,在第一操作系統(tǒng)下創(chuàng)建模塊70創(chuàng)建與所述磁盤文件創(chuàng)建請求對應(yīng)的磁盤文件,所述磁盤文件優(yōu)選為虛擬磁盤文件,用于占用物理磁盤扇區(qū),由于壓縮磁盤不會分配全部簇,因此不支持在壓縮磁盤下創(chuàng)建虛擬磁盤文件。
[0096]所述磁盤保護模塊80,用于運行驅(qū)動程序?qū)λ龃疟P文件進(jìn)行保護。
[0097]在成功創(chuàng)建磁盤文件后,磁盤保護單元13使用驅(qū)動程序?qū)μ摂M磁盤文件進(jìn)行保護,保護方法是在驅(qū)動中使用10_PAGE_FILE標(biāo)志打開文件實現(xiàn)占用,保證虛擬磁盤文件占用的物理扇區(qū)不會被移動,這些扇區(qū)是提供給第二操作系統(tǒng)使用的,必須保證這些扇區(qū)在使用的過程中不會發(fā)生改變。
[0098]在創(chuàng)建磁盤文件后,獲取模塊10獲取磁盤文件所占的物理磁盤扇區(qū)信息,并通過存儲模塊20保存到當(dāng)前系統(tǒng)盤下的配置文件中。例如,所述第一操作系統(tǒng)以Windows操作系統(tǒng)為例,通過 Windows API Device1Control 傳入
[0099]FSCTL_GET_RETRIEVAL_POINTERS獲取虛擬磁盤文件所占的物理簇信息,并保存到當(dāng)前系統(tǒng)盤下的配置文件中。
[0100]所述處理模塊30,用于安裝第二操作系統(tǒng)的引導(dǎo)程序,釋放第二操作系統(tǒng)的引導(dǎo)文件以及內(nèi)核至所述第一操作系統(tǒng)的系統(tǒng)盤;
[0101]在通過存儲模塊20將獲取的物理磁盤扇區(qū)信息保存到系統(tǒng)盤下的配置文件中后,處理模塊30安裝第二操作系統(tǒng)的引導(dǎo)程序,釋放第二操作系統(tǒng)的引導(dǎo)文件以及內(nèi)核至所述第一操作系統(tǒng)的系統(tǒng)盤。所述第二操作系統(tǒng)優(yōu)選為Linux系統(tǒng),在本發(fā)明其他實施例中也還可以是其他操作系統(tǒng),所述第二操作系統(tǒng)為與所述第一操作系統(tǒng)不同的操作的操作系統(tǒng)。
[0102]進(jìn)一步地,所述創(chuàng)建模塊70,還用于創(chuàng)建引導(dǎo)所述引導(dǎo)文件和所述內(nèi)核的引導(dǎo)項;
[0103]創(chuàng)建模塊70創(chuàng)建所述第二操作系統(tǒng)的引導(dǎo)文件和內(nèi)核的引導(dǎo)項,所述引導(dǎo)項優(yōu)選為向Grub中條件第二操作系統(tǒng)的引導(dǎo)項,默認(rèn)引導(dǎo)至第二操作系統(tǒng)。
[0104]所述獲取模塊10,還用于獲取所述第一操作系統(tǒng)的引導(dǎo)列表,所述引導(dǎo)列表包括第一操作系統(tǒng)的引導(dǎo)項和內(nèi)核;
[0105]所述處理模塊30,用于將所述引導(dǎo)項添加至所述引導(dǎo)列表中。
[0106]處理模塊30在第一操作系統(tǒng)的引導(dǎo)列表中添加指向Grub的引導(dǎo)項,引導(dǎo)項名稱即是我們添加的第二操作系統(tǒng),例如,為Linux系統(tǒng)引導(dǎo)項。
[0107]所述運行模塊40,用于在接收到在第一操作系統(tǒng)下基于所述引導(dǎo)程序的觸發(fā)操作時,運行所述內(nèi)核;
[0108]所述獲取模塊10,還用于從所述系統(tǒng)盤中獲取所述引導(dǎo)文件;
[0109]用戶需要運行第二操作系統(tǒng)時,基于引導(dǎo)列表,選擇引導(dǎo)進(jìn)入第二操作系統(tǒng)。具體的,運行第二操作系統(tǒng)的過程可以是:接發(fā)模塊60接收基于所述引導(dǎo)列表中的所述引導(dǎo)項的操作,獲取模塊10獲取所述系統(tǒng)盤中的內(nèi)核和配置文件,處理模塊30加載所述第二操作系統(tǒng),切換并運行所述第二操作系統(tǒng)。
[0110]所述獲取模塊1,還用于通過所述弓I導(dǎo)文件從所述配置文件中獲取所述磁盤文件的扇區(qū)信息;
[0111]所述生成模塊50,用于根據(jù)所述扇區(qū)信息生成虛擬磁盤,以通過所述虛擬磁盤完成所述第二操作系統(tǒng)數(shù)據(jù)的讀寫。
[0112]進(jìn)入第二操作系統(tǒng)后,處理模塊30先只讀掛載第一操作系統(tǒng)的系統(tǒng)分區(qū),由虛擬磁盤應(yīng)用層程序讀寫虛擬磁盤扇區(qū)信息列表并通知虛擬磁盤驅(qū)動虛擬出塊設(shè)備,將虛擬塊設(shè)備初始化成虛擬磁盤(第一次進(jìn)入時初始化),供第二操作系統(tǒng)使用;當(dāng)在第二操作系統(tǒng)中向虛擬磁盤讀寫數(shù)據(jù)時,虛擬磁盤驅(qū)動根據(jù)讀寫的扇區(qū)位置重新定位到虛擬磁盤文件所對應(yīng)的物理扇區(qū),實現(xiàn)數(shù)據(jù)的存取,下次進(jìn)入第二操作系統(tǒng)后仍然可以讀寫已有數(shù)據(jù)。以Windows系統(tǒng)和Linux系統(tǒng)為例,通過上述方式實現(xiàn)在不破壞現(xiàn)有Windows系統(tǒng)的基礎(chǔ)上安裝Linux系統(tǒng),從而實現(xiàn)了 Windows系統(tǒng)以及Linux系統(tǒng)的共存,且兩個系統(tǒng)間可以隨時進(jìn)行切換而不影響各個系統(tǒng)下面的數(shù)據(jù)。
[0113]本實施例通過處理模塊30在第一操作系統(tǒng)的引導(dǎo)列表中添加引導(dǎo)第二操作系統(tǒng)的引導(dǎo)文件,釋放第二操作系統(tǒng)的引導(dǎo)文件以及內(nèi)核至所述第一操作系統(tǒng)的系統(tǒng)盤,在觸發(fā)所述引導(dǎo)文件時,處理模塊30通過引導(dǎo)文件加載配置文件,并