本公開總體上涉及包括處理器或微控制器的計(jì)算機(jī)處理系統(tǒng),并且更具體地涉及用于限制由特定軟件模塊對計(jì)算機(jī)處理系統(tǒng)的資源的訪問的系統(tǒng)和方法。
背景技術(shù):
1、已知提供處理環(huán)境,其中應(yīng)用可以被賦予不同級別的特權(quán)以用于訪問資源,諸如硬件資源,例如外圍設(shè)備或特定存儲器區(qū)域,或者其他資源,例如軟件服務(wù)、加密服務(wù)、特定參數(shù)或機(jī)密數(shù)據(jù)。
2、具有用于訪問給定受限資源所需的特權(quán)級別的可信軟件應(yīng)用可以使用直接調(diào)用來直接訪問它。對照而言,如果不具有所需特權(quán)級別的不可信應(yīng)用希望訪問受限資源,則可能需要執(zhí)行中斷應(yīng)用執(zhí)行的系統(tǒng)調(diào)用,并且請求具有更高特權(quán)級別的系統(tǒng)(諸如操作系統(tǒng))代表不可信應(yīng)用訪問資源。
技術(shù)實(shí)現(xiàn)思路
1、根據(jù)一個(gè)實(shí)施例,一種計(jì)算設(shè)備包括被配置為存儲軟件應(yīng)用的至少一個(gè)存儲器設(shè)備、經(jīng)由總線被耦合到至少一個(gè)存儲器設(shè)備并被配置為執(zhí)行軟件應(yīng)用的處理設(shè)備、以及能夠通過軟件應(yīng)用中的代碼的執(zhí)行被調(diào)用的一個(gè)或多個(gè)資源。該至少一個(gè)存儲器設(shè)備、或者計(jì)算設(shè)備的另外的存儲器設(shè)備被配置為存儲重定向表,該重定向表基于對所述資源中的一個(gè)資源的調(diào)用的調(diào)用方地址和被調(diào)用地址中的任一者或兩者指示調(diào)用將被轉(zhuǎn)發(fā)到的替代地址。該計(jì)算設(shè)備還包括軟件,軟件用于攔截來自軟件應(yīng)用的調(diào)用并且基于重定向表選擇性地重定向該調(diào)用。在一個(gè)實(shí)施例中,其中一個(gè)或多個(gè)資源包括一個(gè)或多個(gè)硬件資源,該一個(gè)或多個(gè)硬件資源諸如計(jì)算設(shè)備的外圍設(shè)備。在一個(gè)實(shí)施例中,一個(gè)或多個(gè)資源包括至少一個(gè)存儲器設(shè)備的一個(gè)或多個(gè)存儲器區(qū)域。在一個(gè)實(shí)施例中,用于攔截調(diào)用的軟件被配置為將調(diào)用的調(diào)用方地址與在重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且在命中的情況下,將調(diào)用重定向到重定向表中的與調(diào)用的參考調(diào)用方地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,用于攔截調(diào)用的軟件被配置為將調(diào)用的被調(diào)用地址與在重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,并且在命中的情況下,將調(diào)用重定向到重定向表中的與調(diào)用的參考被調(diào)用地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,用于攔截調(diào)用的軟件被配置為將調(diào)用的調(diào)用方地址與在重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且將調(diào)用的被調(diào)用地址與在重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,并且在針對調(diào)用方地址和被調(diào)用地址兩者都命中的情況下,將調(diào)用重定向到重定向表中的與調(diào)用的參考調(diào)用方地址和參考被調(diào)用地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,能夠通過軟件應(yīng)用中的代碼的執(zhí)行被調(diào)用的一個(gè)或多個(gè)資源包括第一資源和第二資源,所述第一資源能夠通過對被存儲在至少一個(gè)存儲器設(shè)備中的第一地址處的第一函數(shù)的調(diào)用而被調(diào)用,所述第二資源能夠通過對被存儲在至少一個(gè)存儲器設(shè)備中的第二地址處的第二函數(shù)的調(diào)用而被調(diào)用。在一個(gè)實(shí)施例中,用于攔截調(diào)用的軟件被存儲在至少一個(gè)存儲器設(shè)備中。
2、根據(jù)另一實(shí)施例,一種計(jì)算設(shè)備包括一個(gè)或多個(gè)資源、以及被配置為存儲軟件應(yīng)用和重定向表的一個(gè)或多個(gè)存儲器設(shè)備。重定向表基于對一個(gè)或多個(gè)資源中的一個(gè)資源的調(diào)用的調(diào)用方地址和被調(diào)用地址中的任一者或兩者來指示該調(diào)用將被轉(zhuǎn)發(fā)到的替代地址。該計(jì)算設(shè)備還包括處理設(shè)備,該處理設(shè)備被耦合到一個(gè)或多個(gè)存儲器設(shè)備并且被配置為執(zhí)行軟件應(yīng)用。處理設(shè)備被配置為生成對所述一個(gè)或多個(gè)資源中的一個(gè)資源的調(diào)用。該計(jì)算設(shè)備還包括電路,該電路用于攔截調(diào)用并且根據(jù)重定向表將該調(diào)用轉(zhuǎn)發(fā)到替代地址。在一個(gè)實(shí)施例中,該電路包括:第一比較器,其被配置為將調(diào)用的調(diào)用方地址與參考調(diào)用方地址或參考調(diào)用方地址范圍進(jìn)行比較;或者第二比較器,其被配置為將調(diào)用的被調(diào)用地址與參考被調(diào)用地址或參考被調(diào)用地址范圍進(jìn)行比較。在一個(gè)實(shí)施例中,該電路還包括被配置為所述一個(gè)或多個(gè)存儲器設(shè)備中的存儲重定向表的存儲器設(shè)備。在一個(gè)實(shí)施例中,計(jì)算設(shè)備還包括總線,該總線被配置為將處理設(shè)備、一個(gè)或多個(gè)存儲器設(shè)備、一個(gè)或多個(gè)資源、以及電路彼此耦合。在一個(gè)實(shí)施例中,該電路被配置為更新重定向表。在一個(gè)實(shí)施例中,該一個(gè)或多個(gè)資源包括一個(gè)或多個(gè)硬件資源,該一個(gè)或多個(gè)硬件資源諸如計(jì)算設(shè)備的外圍設(shè)備。在一個(gè)實(shí)施例中,該一個(gè)或多個(gè)資源包括一個(gè)或多個(gè)存儲器設(shè)備的一個(gè)或多個(gè)存儲器區(qū)域。
3、根據(jù)又一實(shí)施例,提供了一種訪問計(jì)算設(shè)備的一個(gè)或多個(gè)資源的方法,該方法包括由計(jì)算設(shè)備的軟件或硬件攔截來自由計(jì)算設(shè)備的至少一個(gè)存儲器設(shè)備存儲的軟件應(yīng)用的調(diào)用。計(jì)算設(shè)備的處理設(shè)備經(jīng)由總線被耦合到至少一個(gè)存儲器設(shè)備,并且被配置為執(zhí)行軟件應(yīng)用。該方法還包括由計(jì)算設(shè)備的軟件或硬件基于被存儲在至少一個(gè)存儲器設(shè)備或另外的存儲器設(shè)備中的重定向表選擇性地重定向該調(diào)用。重定向表基于對所述資源中的一個(gè)資源的調(diào)用的調(diào)用方地址和被調(diào)用地址中的任一者或兩者來指示該調(diào)用將被轉(zhuǎn)發(fā)到的替代地址。在一個(gè)實(shí)施例中,該方法還包括由計(jì)算設(shè)備的軟件或硬件將調(diào)用的調(diào)用方地址與在重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且在命中的情況下,由計(jì)算設(shè)備的軟件或硬件將調(diào)用重定向到重定向表中的與該調(diào)用的參考調(diào)用方地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,該方法還包括由計(jì)算設(shè)備的軟件或硬件將調(diào)用的被調(diào)用地址與在重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,并且在命中的情況下,由計(jì)算設(shè)備的軟件或硬件將調(diào)用重定向到重定向表中的與該調(diào)用的參考被調(diào)用地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,該方法還包括由計(jì)算設(shè)備的軟件或硬件將調(diào)用的調(diào)用方地址與在重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且將調(diào)用的被調(diào)用地址與在重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,以及在針對調(diào)用方地址和被調(diào)用地址兩者都命中的情況下,由計(jì)算設(shè)備的軟件或硬件將調(diào)用重定向到重定向表中的與調(diào)用的參考調(diào)用方地址和參考被調(diào)用地址相關(guān)聯(lián)的替代地址。在一個(gè)實(shí)施例中,該方法還包括更新重定向表。
1.一種計(jì)算設(shè)備,包括:
2.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中所述一個(gè)或多個(gè)資源包括一個(gè)或多個(gè)硬件資源,所述一個(gè)或多個(gè)硬件資源諸如所述計(jì)算設(shè)備的外圍設(shè)備。
3.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中所述一個(gè)或多個(gè)資源包括所述至少一個(gè)存儲器設(shè)備的一個(gè)或多個(gè)存儲器區(qū)域。
4.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中用于攔截所述調(diào)用的所述軟件被配置為將所述調(diào)用的所述調(diào)用方地址與在所述重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且在命中的情況下,將所述調(diào)用重定向到所述重定向表中的與所述調(diào)用的所述參考調(diào)用方地址相關(guān)聯(lián)的所述替代地址。
5.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中用于攔截所述調(diào)用的所述軟件被配置為將所述調(diào)用的所述被調(diào)用地址與在所述重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,并且在命中的情況下,將所述調(diào)用重定向到所述重定向表中的與所述調(diào)用的所述參考被調(diào)用地址相關(guān)聯(lián)的所述替代地址。
6.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中用于攔截所述調(diào)用的所述軟件被配置為將所述調(diào)用的所述調(diào)用方地址與在所述重定向表中被指示的多個(gè)參考調(diào)用方地址進(jìn)行比較,并且將所述調(diào)用的所述被調(diào)用地址與在所述重定向表中被指示的多個(gè)參考被調(diào)用地址進(jìn)行比較,并且在針對所述調(diào)用方地址和所述被調(diào)用地址兩者都命中的情況下,將所述調(diào)用重定向到所述重定向表中的與所述調(diào)用的所述參考調(diào)用方地址和所述參考被調(diào)用地址相關(guān)聯(lián)的所述替代地址。
7.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中能夠通過所述軟件應(yīng)用中的所述代碼的執(zhí)行被調(diào)用的所述一個(gè)或多個(gè)資源包括:
8.根據(jù)權(quán)利要求1所述的計(jì)算設(shè)備,其中用于攔截所述調(diào)用的所述軟件被存儲在所述至少一個(gè)存儲器設(shè)備中。
9.一種計(jì)算設(shè)備,包括:
10.根據(jù)權(quán)利要求9所述的計(jì)算設(shè)備,其中所述電路包括:
11.根據(jù)權(quán)利要求10所述的計(jì)算設(shè)備,其中所述電路還包括所述一個(gè)或多個(gè)存儲器設(shè)備中的被配置為存儲所述重定向表的存儲器設(shè)備。
12.根據(jù)權(quán)利要求9所述的計(jì)算設(shè)備,還包括總線,所述總線被配置為將所述處理設(shè)備、所述一個(gè)或多個(gè)存儲器設(shè)備、所述一個(gè)或多個(gè)資源、以及所述電路彼此耦合。
13.根據(jù)權(quán)利要求9所述的計(jì)算設(shè)備,其中所述電路被配置為更新所述重定向表。
14.根據(jù)權(quán)利要求9所述的計(jì)算設(shè)備,其中所述一個(gè)或多個(gè)資源包括一個(gè)或多個(gè)硬件資源,所述一個(gè)或多個(gè)硬件資源諸如所述計(jì)算設(shè)備的外圍設(shè)備。
15.根據(jù)權(quán)利要求9所述的計(jì)算設(shè)備,其中所述一個(gè)或多個(gè)資源包括所述一個(gè)或多個(gè)存儲器設(shè)備的一個(gè)或多個(gè)存儲器區(qū)域。
16.一種訪問計(jì)算設(shè)備的一個(gè)或多個(gè)資源的方法,所述方法包括:
17.根據(jù)權(quán)利要求16所述的方法,還包括:
18.根據(jù)權(quán)利要求16所述的方法,還包括:
19.根據(jù)權(quán)利要求16所述的方法,還包括:
20.根據(jù)權(quán)利要求16所述的方法,還包括:更新所述重定向表。