本發(fā)明涉及嵌入式操作系統(tǒng)領(lǐng)域,尤其涉及一種容器的創(chuàng)建方法、裝置、操作系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、當(dāng)前主流的容器實(shí)現(xiàn)方式中,都是在操作系統(tǒng)內(nèi)核增加了復(fù)雜的容器功能支撐,比如在linux上主要通過(guò)namespace、control?group、ufs實(shí)現(xiàn)容器支持。容器的配置數(shù)據(jù)是保存在容器配置數(shù)據(jù)文件中,操作系統(tǒng)啟動(dòng)容器時(shí),通過(guò)文件系統(tǒng)將容器配置數(shù)據(jù)文件中的容器配置數(shù)據(jù)讀取出來(lái),然后使用讀取的容器配置數(shù)據(jù)來(lái)處初始化容器。
2、容器的運(yùn)行需要操作系統(tǒng)內(nèi)核一定要提供文件系統(tǒng)功能,不適用于高安全的微內(nèi)核架構(gòu)的分區(qū)操作系統(tǒng)。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供了一種容器的創(chuàng)建方法、裝置、操作系統(tǒng)、設(shè)備及存儲(chǔ)介質(zhì),在各個(gè)基于微內(nèi)核的分區(qū)上創(chuàng)建容器,所述方法包括:在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù);每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí)根據(jù)該容器的配置數(shù)據(jù)配置該容器。本發(fā)明的技術(shù)方案通過(guò)在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù),解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題,使容器系統(tǒng)各容器的配置更加高效,提高了容器系統(tǒng)的簡(jiǎn)潔性、可維護(hù)性和性能。
2、第一方面,本發(fā)明實(shí)施例提供了一種容器的創(chuàng)建方法,用于在各個(gè)基于微內(nèi)核的分區(qū)上創(chuàng)建容器,包括:在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù);每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí)根據(jù)該容器的配置數(shù)據(jù)配置該容器。
3、由上,通過(guò)在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù),解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題,使容器系統(tǒng)各容器的配置更加高效,提高了容器系統(tǒng)的簡(jiǎn)潔性、可維護(hù)性和性能。
4、在第一方面的一種可能實(shí)施方式中,在每個(gè)容器的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù),包括:在每個(gè)分區(qū)的內(nèi)存中的第一內(nèi)存的設(shè)定區(qū)間存儲(chǔ)該分區(qū)對(duì)應(yīng)的容器的配置數(shù)據(jù),每個(gè)分區(qū)的第一內(nèi)存中存儲(chǔ)該分區(qū)的容器的運(yùn)行映像;每個(gè)分區(qū)的第一內(nèi)存的設(shè)定區(qū)間在該分區(qū)相應(yīng)的所述運(yùn)行映像的文件中對(duì)應(yīng)地址區(qū)間被保留。
5、由上,在容器的運(yùn)行映像的設(shè)定區(qū)間在分區(qū)的內(nèi)存中對(duì)應(yīng)的內(nèi)存區(qū)間保存容器的配置數(shù)據(jù),更加簡(jiǎn)潔的管理實(shí)時(shí)容器配置數(shù)據(jù)、進(jìn)一步提高容器操作系統(tǒng)的簡(jiǎn)潔性、性能、可維護(hù)性
6、在第一方面的一種可能實(shí)施方式中,所述容器系統(tǒng)還包括部署在一個(gè)獨(dú)立的基于微內(nèi)核的分區(qū)上的容器引擎分區(qū);在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù)之前,還包括:容器引擎分區(qū)在所述微內(nèi)核上創(chuàng)建該容器對(duì)應(yīng)的分區(qū),并在該分區(qū)的第一內(nèi)存中加載該分區(qū)對(duì)應(yīng)的所述運(yùn)行映像。
7、由上,通過(guò)容器引擎創(chuàng)建各容器對(duì)應(yīng)的分區(qū),從而可以在各容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存在相應(yīng)容器的配置數(shù)據(jù),解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題。
8、在第一方面的一種可能實(shí)施方式中,在每個(gè)分區(qū)的第一內(nèi)存的設(shè)定區(qū)間存儲(chǔ)該分區(qū)對(duì)應(yīng)的配置數(shù)據(jù),具體包括:容器引擎把每個(gè)分區(qū)的容器的配置數(shù)據(jù)存儲(chǔ)到該分區(qū)的容器控制塊中;容器引擎從每個(gè)分區(qū)的容器控制塊中獲得該分區(qū)的容器的配置數(shù)據(jù),并保存到該分區(qū)的第一內(nèi)存的設(shè)定區(qū)間。
9、由上,通過(guò)容器引擎把該分區(qū)的第一內(nèi)存中加載該分區(qū)對(duì)應(yīng)的容器的運(yùn)行映像,解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題,使容器系統(tǒng)各容器的配置更加高效。
10、在第一方面的一種可能實(shí)施方式中,每個(gè)容器的容器配置數(shù)據(jù)至少包括該容器的磁盤(pán)空間大小和各設(shè)備的信息;每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí)根據(jù)該容器的配置數(shù)據(jù)配置該容器,包括:每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí),根據(jù)該容器的配置數(shù)據(jù)中的磁盤(pán)空間大小初始化該容器的文件系統(tǒng),并根據(jù)該容器的配置數(shù)據(jù)中的各設(shè)備的信息初始化各所述設(shè)備。
11、由上,通過(guò)根據(jù)容器的配置數(shù)據(jù)中的磁盤(pán)空間大小初始化容器的文件系統(tǒng),并根據(jù)容器的配置數(shù)據(jù)中的各設(shè)備的信息初始化各設(shè)備,從而完成容器的配置。
12、在第一方面的一種可能實(shí)施方式中,每個(gè)容器的配置數(shù)據(jù)還包括:該容器的描述信息、親和運(yùn)行的cpu核集合、內(nèi)存空間大小。
13、由上,通過(guò)在容器配置數(shù)據(jù)中包括親和運(yùn)行的cpu核集合和內(nèi)存空間大小,使容器運(yùn)行時(shí)知曉自身的資源,從而便于利用資源。
14、第二方面,本發(fā)明實(shí)施例提供了一種容器的創(chuàng)建裝置,用于在各個(gè)基于微內(nèi)核的分區(qū)上創(chuàng)建容器,包括:數(shù)據(jù)存儲(chǔ)模塊,用于在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù);容器配置模塊,用于由每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí)根據(jù)該容器的配置數(shù)據(jù)配置該容器。
15、由上,通過(guò)在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù),解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題,使容器系統(tǒng)各容器的配置更加高效,提高了容器系統(tǒng)的簡(jiǎn)潔性、可維護(hù)性和性能。
16、在第二方面的一種可能實(shí)施方式中,數(shù)據(jù)存儲(chǔ)模塊具體用于在每個(gè)分區(qū)的內(nèi)存中的第一內(nèi)存的設(shè)定區(qū)間存儲(chǔ)該分區(qū)對(duì)應(yīng)的容器的配置數(shù)據(jù),每個(gè)分區(qū)的第一內(nèi)存中存儲(chǔ)該分區(qū)的容器的運(yùn)行映像;每個(gè)分區(qū)的第一內(nèi)存的設(shè)定區(qū)間在該分區(qū)相應(yīng)的所述運(yùn)行映像的文件中對(duì)應(yīng)地址區(qū)間被保留。
17、由上,在容器的運(yùn)行映像的設(shè)定區(qū)間在分區(qū)的內(nèi)存中對(duì)應(yīng)的內(nèi)存區(qū)間保存容器的配置數(shù)據(jù),更加簡(jiǎn)潔的管理實(shí)時(shí)容器配置數(shù)據(jù)、進(jìn)一步提高容器操作系統(tǒng)的簡(jiǎn)潔性、性能、可維護(hù)性
18、在第二方面的一種可能實(shí)施方式中,所述容器系統(tǒng)還包括部署在一個(gè)獨(dú)立的基于微內(nèi)核的分區(qū)上的容器引擎分區(qū);所述裝置還包括;在每個(gè)容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存儲(chǔ)該容器的配置數(shù)據(jù)之前,容器引擎分區(qū)在所述微內(nèi)核上創(chuàng)建該容器對(duì)應(yīng)的分區(qū);數(shù)據(jù)存儲(chǔ)模塊還具體用于在該分區(qū)的第一內(nèi)存中加載該分區(qū)對(duì)應(yīng)的所述運(yùn)行映像。
19、由上,通過(guò)容器引擎創(chuàng)建各容器對(duì)應(yīng)的分區(qū),從而可以在各容器對(duì)應(yīng)的分區(qū)的內(nèi)存中存在相應(yīng)容器的配置數(shù)據(jù),解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題。
20、在第二方面的一種可能實(shí)施方式中,數(shù)據(jù)存儲(chǔ)模塊在每個(gè)分區(qū)的第一內(nèi)存的設(shè)定區(qū)間存儲(chǔ)該分區(qū)對(duì)應(yīng)的配置數(shù)據(jù)時(shí),包括:容器引擎把每個(gè)分區(qū)的容器的配置數(shù)據(jù)存儲(chǔ)到該分區(qū)的容器控制塊中;容器引擎從每個(gè)分區(qū)的容器控制塊中獲得該分區(qū)的容器的配置數(shù)據(jù),并保存到該分區(qū)的第一內(nèi)存的設(shè)定區(qū)間。
21、由上,通過(guò)容器引擎把該分區(qū)的第一內(nèi)存中加載該分區(qū)對(duì)應(yīng)的容器的運(yùn)行映像,解決了微內(nèi)核無(wú)法提供文件系統(tǒng)來(lái)獲得容器配置數(shù)據(jù)的問(wèn)題,使容器系統(tǒng)各容器的配置更加高效。
22、在第二方面的一種可能實(shí)施方式中,每個(gè)容器的容器配置數(shù)據(jù)至少包括該容器的磁盤(pán)空間大小和各設(shè)備的信息;容器配置模塊用于每個(gè)容器的運(yùn)行映像在啟動(dòng)時(shí),根據(jù)該容器的配置數(shù)據(jù)中的磁盤(pán)空間大小初始化該容器的文件系統(tǒng),并根據(jù)該容器的配置數(shù)據(jù)中的各設(shè)備的信息初始化各所述設(shè)備。
23、由上,通過(guò)根據(jù)容器的配置數(shù)據(jù)中的磁盤(pán)空間大小初始化容器的文件系統(tǒng),并根據(jù)容器的配置數(shù)據(jù)中的各設(shè)備的信息初始化各設(shè)備,從而完成容器的配置。
24、在第二方面的一種可能實(shí)施方式中,每個(gè)容器的配置數(shù)據(jù)還包括:該容器的描述信息、親和運(yùn)行的cpu核集合、內(nèi)存空間大小。
25、由上,通過(guò)在容器配置數(shù)據(jù)中包括親和運(yùn)行的cpu核集合和內(nèi)存空間大小,使容器運(yùn)行時(shí)知曉自身的資源,從而便于利用資源。
26、第三方面,本發(fā)明實(shí)施例提供了一種容器操作系統(tǒng),通過(guò)本發(fā)明的第一方面任一所述實(shí)施方式創(chuàng)建容器。
27、第四方面,提供了一種計(jì)算設(shè)備,包括:總線;通信接口,其與所述總線連接;至少一個(gè)處理器,其與所述總線連接;以及至少一個(gè)存儲(chǔ)器,其與所述總線連接并存儲(chǔ)有程序指令,所述程序指令當(dāng)被所述至少一個(gè)處理器執(zhí)行時(shí)使得所述至少一個(gè)處理器執(zhí)行本發(fā)明的第一方面任一所述實(shí)施方式。
28、第五方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有程序指令,所述程序指令當(dāng)被計(jì)算機(jī)執(zhí)行時(shí)使得所述計(jì)算機(jī)執(zhí)行本發(fā)明的第一方面任一所述實(shí)施方式。