本發(fā)明涉及計(jì)算機(jī),具體地說(shuō),涉及一種基于linux的安全管理啟動(dòng)流程方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、linux系統(tǒng)的常規(guī)啟動(dòng)流程如下:
2、bios啟動(dòng):當(dāng)計(jì)算機(jī)開(kāi)機(jī)時(shí),首先會(huì)執(zhí)行bios(basicinput/outputsystem)程序,bios負(fù)責(zé)對(duì)系統(tǒng)硬件進(jìn)行初始化和檢測(cè),并從指定的啟動(dòng)設(shè)備(如硬盤(pán)、光驅(qū)等)讀取bootloader程序。
3、bootloader啟動(dòng):bootloader是一個(gè)位于引導(dǎo)設(shè)備上的小型程序,它負(fù)責(zé)加載并啟動(dòng)操作系統(tǒng)內(nèi)核。常見(jiàn)的bootloader有g(shù)rub(grandunifiedbootloader)、lilo(linuxloader)等。
4、內(nèi)核啟動(dòng):bootloader將控制權(quán)交給操作系統(tǒng)內(nèi)核。內(nèi)核負(fù)責(zé)初始化各種硬件設(shè)備驅(qū)動(dòng)程序、裝載必要的系統(tǒng)模塊,并掛載根文件系統(tǒng)。
5、init進(jìn)程啟動(dòng):內(nèi)核啟動(dòng)完成后,會(huì)啟動(dòng)init進(jìn)程,這是整個(gè)系統(tǒng)的第一個(gè)進(jìn)程。init進(jìn)程負(fù)責(zé)讀取配置文件(如/etc/inittab或systemd的配置文件),并按照配置啟動(dòng)各種系統(tǒng)服務(wù)。
6、運(yùn)行級(jí)別切換:init進(jìn)程根據(jù)配置文件,進(jìn)入不同的運(yùn)行級(jí)別(runlevel)。不同的運(yùn)行級(jí)別代表不同的系統(tǒng)狀態(tài),如多用戶模式、單用戶模式等。
7、圖形界面啟動(dòng):如果系統(tǒng)配置為圖形界面啟動(dòng),init進(jìn)程會(huì)啟動(dòng)圖形顯示管理器(如gdm、kdm、lightdm等),圖形界面管理器再啟動(dòng)圖形化的桌面環(huán)境(如gnome、kde等)。
8、用戶登錄:最終用戶可以在圖形界面或命令行界面下登錄系統(tǒng),并開(kāi)始使用。
9、整個(gè)啟動(dòng)過(guò)程中,各個(gè)組件之間通過(guò)標(biāo)準(zhǔn)的啟動(dòng)流程和接口進(jìn)行協(xié)作,確保系統(tǒng)能夠順利啟動(dòng)并運(yùn)行。近年來(lái),一些linux發(fā)行版開(kāi)始使用systemd作為系統(tǒng)初始化工具,替代了傳統(tǒng)的init進(jìn)程,啟動(dòng)流程也有所變化,但基本原理是相同的。
10、當(dāng)前l(fā)inux啟動(dòng)方式的一個(gè)顯著缺點(diǎn)在于其對(duì)于文件系統(tǒng)或內(nèi)核的升級(jí)以及版本管理的局限性。由于傳統(tǒng)的啟動(dòng)方式依賴于硬編碼在bootloader如grub配置文件中的路徑和參數(shù)來(lái)定位硬盤(pán)上的內(nèi)存文件系統(tǒng)、內(nèi)核和文件系統(tǒng),這種方式在面臨系統(tǒng)組件升級(jí)或版本管理時(shí)顯得不夠靈活和高效。具體來(lái)說(shuō),當(dāng)需要更新內(nèi)核或文件系統(tǒng)時(shí),用戶通常需要手動(dòng)編輯grub配置文件,這既繁瑣又容易出錯(cuò),且難以支持多版本管理。
11、此外,傳統(tǒng)啟動(dòng)方式還缺乏一種在系統(tǒng)關(guān)鍵組件被誤刪除或損壞時(shí)能夠自動(dòng)恢復(fù)或修復(fù)的機(jī)制。如果用戶不小心刪除了系統(tǒng)的關(guān)鍵文件,系統(tǒng)可能無(wú)法啟動(dòng),而傳統(tǒng)的啟動(dòng)方式并沒(méi)有提供便捷的恢復(fù)手段。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)現(xiàn)有的啟動(dòng)方式不具備恢復(fù)機(jī)制,且系統(tǒng)升級(jí)方式復(fù)雜的問(wèn)題,提出一種基于linux的安全管理啟動(dòng)流程方法、系統(tǒng)、設(shè)備及介質(zhì);該方法通過(guò)將linux的文件系統(tǒng)和內(nèi)核分別壓縮為文件,并在啟動(dòng)時(shí)通過(guò)用戶選擇系統(tǒng)版本后解壓到內(nèi)存中啟動(dòng),不僅解決了傳統(tǒng)啟動(dòng)方式在版本管理和升級(jí)上的局限,還提供了在系統(tǒng)關(guān)鍵組件損壞時(shí)自動(dòng)修復(fù)的可能性;通過(guò)這種方式,可以更方便地管理系統(tǒng)版本,并在遇到問(wèn)題時(shí)快速恢復(fù)系統(tǒng)可用性。
2、本發(fā)明具體實(shí)現(xiàn)內(nèi)容如下:
3、一種基于linux的安全管理啟動(dòng)流程方法,首先修改linux的內(nèi)存文件系統(tǒng)的啟動(dòng)機(jī)制,確定內(nèi)存文件系統(tǒng)啟動(dòng)版本,其次壓縮linux的內(nèi)存文件系統(tǒng)、內(nèi)核和文件系統(tǒng)并打包,然后將壓縮的文件系統(tǒng)、內(nèi)核和文件系統(tǒng)解壓至內(nèi)存,并從內(nèi)存中讀取數(shù)據(jù),最后將讀取的數(shù)據(jù)切換至硬盤(pán)的用戶文件系統(tǒng),完成文件系統(tǒng)啟動(dòng)并切換至用戶空間。
4、為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,所述基于linux的安全管理啟動(dòng)流程方法具體包括以下步驟:
5、步驟s1:調(diào)用hook程序讀取grub環(huán)境變量,修改linux的內(nèi)存文件系統(tǒng)的啟動(dòng)機(jī)制,確定內(nèi)存文件系統(tǒng)啟動(dòng)版本;
6、步驟s2:調(diào)用xz算法將linux的內(nèi)存文件系統(tǒng)、內(nèi)核和文件系統(tǒng)壓縮為壓縮文件,并打包至硬盤(pán);
7、步驟s3:根據(jù)確定的啟動(dòng)版本,將壓縮的文件系統(tǒng)、內(nèi)核和文件系統(tǒng)解壓至內(nèi)存的啟動(dòng)分區(qū);
8、步驟s4:將內(nèi)存的文件系統(tǒng)切換至硬盤(pán)的用戶文件系統(tǒng),完成文件系統(tǒng)啟動(dòng)并切換至用戶空間。
9、為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,所述步驟s1具體包括以下步驟:
10、步驟s11:調(diào)用hook程序讀取grub環(huán)境變量grubenv的label標(biāo)簽;
11、步驟s12:根據(jù)label標(biāo)簽確定對(duì)應(yīng)的內(nèi)存文件系統(tǒng)、內(nèi)核、文件系統(tǒng)啟動(dòng)版本。
12、為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,所述步驟s2具體包括以下步驟:
13、步驟s21:調(diào)用xz算法將linux的內(nèi)存文件系統(tǒng)、內(nèi)核和文件系統(tǒng)壓縮為壓縮文件;
14、步驟s22:調(diào)用mksquashfs命令將壓縮文件打包為squashfs格式的鏡像文件;
15、步驟s23:將鏡像文件放置至硬盤(pán)的指定位置。
16、為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,所述步驟s3具體包括以下步驟:
17、步驟s31:觸發(fā)內(nèi)存文件系統(tǒng)的初始化邏輯,根據(jù)初始化邏輯讀取grub環(huán)境變量中的label標(biāo)簽;
18、步驟s32:根據(jù)label標(biāo)簽確定文件系統(tǒng)版本并解壓;
19、步驟s33:根據(jù)確定的啟動(dòng)版本,將壓縮的文件系統(tǒng)、內(nèi)核和文件系統(tǒng)解壓至內(nèi)存的啟動(dòng)分區(qū),并將解壓后的文件系統(tǒng)以只讀模式掛載至內(nèi)存中。
20、為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,所述步驟s4具體包括以下步驟:
21、步驟s41:將從內(nèi)存獲取的解壓后的文件系統(tǒng)拷貝至硬盤(pán)的指定位置;
22、步驟s42:將從內(nèi)存獲取的文件系統(tǒng)切換至硬盤(pán)恢復(fù)的用戶文件系統(tǒng),完成文件系統(tǒng)啟動(dòng)并切換至用戶空間。
23、基于上述提出的基于linux的安全管理啟動(dòng)流程方法,為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,提出一種基于linux的安全管理啟動(dòng)流程系統(tǒng),用于執(zhí)行上的基于linux的安全管理啟動(dòng)流程方法;包括初始化單元、壓縮打包單元、解壓?jiǎn)卧?、切換啟動(dòng)單元;
24、所述初始化單元,用于修改linux的內(nèi)存文件系統(tǒng)的啟動(dòng)機(jī)制,確定內(nèi)存文件系統(tǒng)啟動(dòng)版本;
25、所述壓縮打包單元,用于壓縮linux的內(nèi)存文件系統(tǒng)、內(nèi)核和文件系統(tǒng)并打包;
26、所述解壓?jiǎn)卧?,用于將壓縮的文件系統(tǒng)、內(nèi)核和文件系統(tǒng)解壓至內(nèi)存,并從內(nèi)存中讀取數(shù)據(jù);
27、所述切換啟動(dòng)單元,用于將讀取的數(shù)據(jù)切換至硬盤(pán)的用戶文件系統(tǒng),完成文件系統(tǒng)啟動(dòng)并切換至用戶空間。
28、基于上述提出的基于linux的安全管理啟動(dòng)流程方法,為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,提出一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器上存儲(chǔ)有計(jì)算機(jī)程序;當(dāng)所述計(jì)算機(jī)程序在所述處理器上執(zhí)行時(shí),實(shí)現(xiàn)上述的基于linux的安全管理啟動(dòng)流程方法。
29、基于上述提出的基于linux的安全管理啟動(dòng)流程方法,為了更好地實(shí)現(xiàn)本發(fā)明,進(jìn)一步地,提出一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令;當(dāng)所述計(jì)算機(jī)指令在上述的電子設(shè)備上執(zhí)行時(shí),實(shí)現(xiàn)上述的基于linux的安全管理啟動(dòng)流程方法。
30、本發(fā)明具有以下有益效果:
31、本發(fā)明修改了內(nèi)存文件系統(tǒng)的啟動(dòng)機(jī)制,增強(qiáng)了啟動(dòng)流程的靈活性和可配置性,解決了傳統(tǒng)啟動(dòng)方式在版本管理和升級(jí)上的局限,提供了在系統(tǒng)關(guān)鍵組件損壞時(shí)自動(dòng)修復(fù)的可能性,實(shí)現(xiàn)了更方便地管理系統(tǒng)版本,并在遇到問(wèn)題時(shí)快速恢復(fù)系統(tǒng)可用性。