本發(fā)明涉及操作系統(tǒng),具體涉及系統(tǒng)調(diào)用處理方法、裝置、系統(tǒng)、設備、介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、linux(一種操作系統(tǒng))以是服務器領(lǐng)域應用非常廣泛的操作系統(tǒng)。服務器的操作系統(tǒng)面臨著修復已知問題、升級等需求。例如,為了安全性提升修復cve(commonvulnerabilities&exposures,通用漏洞披露)漏洞、產(chǎn)品版本升級等。但是服務器系統(tǒng)可靠性要求較高,正常使用的服務器,設定時間內(nèi)允許停機的時間是非常短的。例如:對于4個9要求的服務器,一年內(nèi)最多可以停機(1-99.99%)*365*24*40=52.6分鐘,5個9要求的服務器,一年內(nèi)最多可以停機5.26分鐘。如此,服務器的操作系統(tǒng)需要在線、不影響業(yè)務前提下完成對操作系統(tǒng)的更新。
2、相關(guān)技術(shù)中,用戶態(tài)應用程序可以通過內(nèi)核模塊技術(shù)或熱補丁技術(shù)等適當?shù)牟呗栽O計,在不中斷用戶服務前提下,完成對原應用更新。但是,無論哪種技術(shù),其使用場景均有較大限制。在較多應用升級的場景中,增加新的系統(tǒng)調(diào)用的需求。例如:針對io_uring(linux提供的一種新型異步i/o模型),對于新引入特性,以內(nèi)核模塊形式實現(xiàn)backporting(將一個軟件的補丁應用到比此補丁所對應的版本更舊的版本)。若io_uring的新特性為linux內(nèi)核增加io_uring_setup、io_uring_register和io_uring_enter這3個系統(tǒng)調(diào)用接口,則由于內(nèi)核對于系統(tǒng)調(diào)用的限制,無法在不中斷用戶服務前提下,通過內(nèi)核模塊技術(shù)或者熱補丁技術(shù)完成對原應用的更新。由此,如何針對多數(shù)應用場景,在不中斷用戶服務前提下,完成對原應用更新,成為亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明提供了一種系統(tǒng)調(diào)用處理方法、裝置、系統(tǒng)、設備、介質(zhì)及程序產(chǎn)品,以解決如何針對多數(shù)應用場景,在不中斷用戶服務前提下,完成對原應用更新的問題。
2、第一方面,本發(fā)明提供了一種系統(tǒng)調(diào)用處理方法,應用于操作系統(tǒng),操作系統(tǒng)具有用戶態(tài)和內(nèi)核態(tài),方法包括:
3、在用戶態(tài)接收用戶態(tài)的系統(tǒng)調(diào)用;
4、將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,操作請求攜帶操作請求的調(diào)用編號;
5、基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用。
6、本發(fā)明系統(tǒng)調(diào)用處理方法,在用戶態(tài)接收用戶態(tài)的系統(tǒng)調(diào)用時,將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,操作請求攜帶操作請求的調(diào)用編號,并基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用。由此,通過將用戶態(tài)的系統(tǒng)調(diào)用轉(zhuǎn)換為內(nèi)核態(tài)的操作請求的方式,實現(xiàn)系統(tǒng)調(diào)用,避免直接通過用戶接口執(zhí)行用戶態(tài)系統(tǒng)調(diào)用需要停機的問題,從而有效減少停機時間,在不中斷用戶服務的前提下,完成應用更新等需要執(zhí)行系統(tǒng)調(diào)用的操作,顯著提升操作系統(tǒng)穩(wěn)定性。
7、在一種可選的實施方式中,將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,包括:
8、基于用戶態(tài)從內(nèi)核態(tài)接收的預先配置的系統(tǒng)調(diào)用列表,將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求。
9、本發(fā)明系統(tǒng)調(diào)用處理方法,基于用戶態(tài)從內(nèi)核態(tài)接收的預先配置的系統(tǒng)調(diào)用列表,將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,進一步通過內(nèi)核態(tài)執(zhí)行操作請求實現(xiàn)系統(tǒng)調(diào)用,有效避免直接通過用戶接口執(zhí)行用戶態(tài)系統(tǒng)調(diào)用需要停機的問題。
10、在一種可選的實施方式中,基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用,包括:
11、從預先配置的系統(tǒng)調(diào)用列表中查找與基于調(diào)用編號對應的內(nèi)核態(tài)應用;
12、回調(diào)內(nèi)核態(tài)應用。
13、本發(fā)明系統(tǒng)調(diào)用處理方法,內(nèi)核態(tài)預先配置多個系統(tǒng)調(diào)用,形成系統(tǒng)調(diào)用列表,列表中包含調(diào)用編號與內(nèi)核態(tài)應用的對應關(guān)系。在內(nèi)核態(tài)接收到用戶態(tài)發(fā)送的攜帶調(diào)用編號的系統(tǒng)調(diào)用之后,可以快速基于調(diào)用編號查找與調(diào)用編號對應的內(nèi)核態(tài)應用,實現(xiàn)對該內(nèi)核態(tài)應用的調(diào)用。在不增加系統(tǒng)調(diào)用接口的情況下,實現(xiàn)系統(tǒng)調(diào)用,有效提高系統(tǒng)可用性,從而有效減少因應用更新等系統(tǒng)調(diào)用操作帶來的停機問題,提升系統(tǒng)穩(wěn)定可靠性,顯著提升用戶體驗。
14、在一種可選的實施方式中,回調(diào)內(nèi)核態(tài)應用,包括:
15、由內(nèi)核接口調(diào)用模塊將操作請求轉(zhuǎn)發(fā)至操作系統(tǒng),實現(xiàn)對內(nèi)核態(tài)應用的調(diào)用。
16、本發(fā)明系統(tǒng)調(diào)用處理方法,由內(nèi)核接口調(diào)用模塊將操作請求轉(zhuǎn)發(fā)至操作系統(tǒng),有效實現(xiàn)對內(nèi)核態(tài)應用的調(diào)用,避免通過多個調(diào)用接口進行系統(tǒng)調(diào)用存在的接口數(shù)量限制問題。
17、在一種可選的實施方式中,在接收用戶態(tài)的系統(tǒng)調(diào)用之前,方法還包括:
18、接收內(nèi)核態(tài)的新增系統(tǒng)調(diào)用的注冊請求;
19、將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中。
20、在一種可選的實施方式中,將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中,包括:
21、將新增系統(tǒng)調(diào)用配置于內(nèi)核態(tài)的系統(tǒng)調(diào)用列表;
22、向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表。
23、本發(fā)明系統(tǒng)調(diào)用處理方法,將新增系統(tǒng)調(diào)用配置于內(nèi)核態(tài)的系統(tǒng)調(diào)用列表,并向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表。實現(xiàn)內(nèi)核態(tài)系統(tǒng)調(diào)用列表和用戶態(tài)的系統(tǒng)調(diào)用列表同步,從而在接收到用戶態(tài)發(fā)送的系統(tǒng)調(diào)用時,快速通過用戶態(tài)列表中的調(diào)用編號確定內(nèi)核態(tài)的操作請求,實現(xiàn)系統(tǒng)調(diào)用的回調(diào)。
24、在一種可選的實施方式中,向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表,包括:
25、向操作系統(tǒng)的虛擬文件系統(tǒng)注冊調(diào)用設備,調(diào)用設備用于接收用戶態(tài)的系統(tǒng)調(diào)用。
26、本發(fā)明系統(tǒng)調(diào)用處理方法,內(nèi)核態(tài)預先接收新增系統(tǒng)調(diào)用的注冊請求,并對新增系統(tǒng)調(diào)用進行配置,將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中。從而在接收到用戶態(tài)發(fā)送的系統(tǒng)調(diào)用時,快速實現(xiàn)對系統(tǒng)調(diào)用的回調(diào)。提升系統(tǒng)調(diào)用的執(zhí)行效率。
27、在一種可選的實施方式中,將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中,還包括:
28、為新增系統(tǒng)調(diào)用分配調(diào)用編號;
29、將調(diào)用編號綁定至新增系統(tǒng)調(diào)用。
30、本發(fā)明系統(tǒng)調(diào)用處理方法,為新增系統(tǒng)調(diào)用分配調(diào)用編號,并將調(diào)用編號綁定至新增系統(tǒng)調(diào)用。由此,在系統(tǒng)調(diào)用時,可以通過調(diào)用編號實現(xiàn)從用戶態(tài)到內(nèi)核態(tài)再到內(nèi)核態(tài)系統(tǒng)應用的系統(tǒng)調(diào)用,有效提高操作系統(tǒng)可用性。
31、在一種可選的實施方式中,將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中,還包括:
32、在向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表之后,基于用戶態(tài),將系統(tǒng)調(diào)用列表編譯至新增系統(tǒng)應用。
33、本發(fā)明系統(tǒng)調(diào)用處理方法,在向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表之后,基于用戶態(tài),將系統(tǒng)調(diào)用列表編譯至新增系統(tǒng)應用。由此,無需停機即可在用戶態(tài)實現(xiàn)新增系統(tǒng)應用的編譯,有效避免新增應用和應用更新等系統(tǒng)調(diào)用操作帶來的頻繁停機操作,顯著提升操作系統(tǒng)穩(wěn)定可靠性。
34、第二方面,本發(fā)明實施例提供了一種系統(tǒng)調(diào)用處理裝置,應用于操作系統(tǒng),操作系統(tǒng)具有用戶態(tài)和內(nèi)核態(tài),裝置包括:
35、接收模塊,用于在用戶態(tài)接收用戶態(tài)的系統(tǒng)調(diào)用;
36、轉(zhuǎn)換模塊,用于將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,操作請求攜帶操作請求的調(diào)用編號;
37、回調(diào)模塊,用于基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用。
38、第三方面,本發(fā)明實施例提供了一種操作系統(tǒng),操作系統(tǒng)具有用戶態(tài)和內(nèi)核態(tài);
39、在用戶態(tài),接收用戶態(tài)的系統(tǒng)調(diào)用;
40、在內(nèi)核態(tài),將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,操作請求攜帶操作請求的調(diào)用編號;以及基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用。
41、在一種可選的實施方式中,內(nèi)核態(tài)配置有函數(shù)內(nèi)核模塊,函數(shù)內(nèi)核模塊配置有系統(tǒng)調(diào)用列表;
42、函數(shù)內(nèi)核模塊用于接收內(nèi)核態(tài)的新增系統(tǒng)調(diào)用的注冊請求,以及將新增系統(tǒng)調(diào)用配置于系統(tǒng)調(diào)用列表中。
43、在一種可選的實施方式中,函數(shù)內(nèi)核模塊還用于向用戶態(tài)分發(fā)系統(tǒng)調(diào)用列表。
44、在一種可選的實施方式中,函數(shù)內(nèi)核模塊還用于為新增系統(tǒng)調(diào)用分配調(diào)用編號,并將調(diào)用編號綁定至新增系統(tǒng)調(diào)用。
45、在一種可選的實施方式中,內(nèi)核態(tài)還用于在操作系統(tǒng)新增系統(tǒng)調(diào)用時,以內(nèi)核模塊形式配置新增系統(tǒng)調(diào)用,并發(fā)送新增系統(tǒng)調(diào)用的注冊請求至函數(shù)內(nèi)核模塊。
46、在一種可選的實施方式中,用戶態(tài)配置有系統(tǒng)調(diào)用注冊庫,系統(tǒng)調(diào)用注冊庫用于接收函數(shù)內(nèi)核模塊向用戶態(tài)分發(fā)的系統(tǒng)調(diào)用列表。
47、在一種可選的實施方式中,用戶態(tài)配置有系統(tǒng)調(diào)用注冊庫,系統(tǒng)調(diào)用注冊庫用于從內(nèi)核態(tài)接收的預先配置的系統(tǒng)調(diào)用列表,以及將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求。
48、第四方面,本發(fā)明實施例提供了一種計算機設備,包括:
49、存儲器和處理器,存儲器和處理器之間互相通信連接,存儲器中存儲有計算機指令,處理器通過執(zhí)行計算機指令,從而執(zhí)行上述第一方面或其對應的任一實施方式的系統(tǒng)調(diào)用處理方法。
50、第五方面,本發(fā)明實施例提供了一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)上存儲有計算機指令,計算機指令用于使計算機執(zhí)行上述第一方面或其對應的任一實施方式的系統(tǒng)調(diào)用處理方法。
51、第六方面,本發(fā)明實施例提供了一種計算機程序產(chǎn)品,包括計算機指令,計算機指令用于使計算機執(zhí)行上述第一方面或其對應的任一實施方式的系統(tǒng)調(diào)用處理方法。
52、本發(fā)明系統(tǒng)調(diào)用處理方法、裝置、系統(tǒng)、設備、介質(zhì)及程序產(chǎn)品中,在用戶態(tài)接收用戶態(tài)的系統(tǒng)調(diào)用時,將系統(tǒng)調(diào)用轉(zhuǎn)換至內(nèi)核態(tài)的操作請求,操作請求攜帶操作請求的調(diào)用編號,并基于調(diào)用編號,回調(diào)與系統(tǒng)調(diào)用對應的內(nèi)核態(tài)應用。由此,通過將用戶態(tài)的系統(tǒng)調(diào)用轉(zhuǎn)換為內(nèi)核態(tài)的操作請求的方式,實現(xiàn)系統(tǒng)調(diào)用,避免直接通過用戶接口執(zhí)行用戶態(tài)系統(tǒng)調(diào)用需要停機的問題,從而有效減少停機時間,在不中斷用戶服務的前提下,完成應用更新等需要執(zhí)行系統(tǒng)調(diào)用的操作,顯著提升操作系統(tǒng)穩(wěn)定性。