TW201923568A - 實現驅動的系統及方法 - Google Patents

實現驅動的系統及方法 Download PDF

Info

Publication number
TW201923568A
TW201923568A TW107131126A TW107131126A TW201923568A TW 201923568 A TW201923568 A TW 201923568A TW 107131126 A TW107131126 A TW 107131126A TW 107131126 A TW107131126 A TW 107131126A TW 201923568 A TW201923568 A TW 201923568A
Authority
TW
Taiwan
Prior art keywords
driver
interrupt
space
interrupt processing
user
Prior art date
Application number
TW107131126A
Other languages
English (en)
Other versions
TWI783034B (zh
Inventor
吳彩娣
呂達夫
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201923568A publication Critical patent/TW201923568A/zh
Application granted granted Critical
Publication of TWI783034B publication Critical patent/TWI783034B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Vehicle Body Suspensions (AREA)
  • Control Of Multiple Motors (AREA)
  • Storage Device Security (AREA)

Abstract

本發明公開了一種實現驅動的系統及方法,包括:在用戶空間配置驅動TA的屬性;內核空間載入驅動程式時,解析驅動TA的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能。通過本發明提供的方案,驅動程式的代碼均在用戶空間,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。而且,不需要使用sysfs記錄用戶空間驅動的記憶體映射等資訊,所有的用戶空間的驅動資訊都只在驅動的TA中和TEE動態運行的記憶體中,因此不會造成資訊洩露,保證了驅動程式的安全性。

Description

實現驅動的系統及方法
本發明涉及但不限於電腦技術,尤指一種實現驅動的系統及方法。
目前,在驅動的實現中,以Linux內核(Linux kernel)中實現用戶空間的輸入/輸出介面(UIO)驅動為例,UIO的用戶空間(Userspace)實現了mmap(),用於處理設備記憶體的映射。如果UIO的驅動程式在用戶空間要等待一個中斷,需要簡單的阻塞在/dev/uioX的讀read() 操作上,UIO驅動的內核空間(Kernelspace)仍需要設置中斷處理函數,這樣,當設備產生中斷時,內核空間應答中斷,中斷計算器加1,read()操作立即返回。另外,UIO的驅動程式實現了poll()系統調用,可以使用select()函數來等待中斷的發生。註冊的UIO設備將會出現在/sys/class/uioX下,對設備的控制可以通過對/sys/class/uioX下的各檔讀寫來完成。   從相關技術中在Linux內核中實現用戶空間的UIO驅動的方案來看,一方面,一部分驅動程式仍然運行在內核空間,因此,是無法以安全應用(TA, Trusted Application)的方式對用戶空間的驅動進行開發整合的,也就無法使用可信應用管理(TAM)程式進行動態安裝、升級。另一方面,需要驅動程式的開發者顯示的調用mmap()、驅動註冊等函數,增加了設計的複雜度,不適合在小型的作業系統(OS, Operation System)中使用,而且sysfs中的資訊存在安全洩漏問題,不適合在可信執行環境(TEE)中使用;再者,用戶空間等待一個中斷需要等待(wait)在設備的讀操作上,與原有非UIO驅動程式的開發行為不統一,對於初始開發者,無疑增加了理解複雜度。
為了解決上述技術問題,本發明提供一種實現驅動的系統及方法,能夠實現以TA的方式對使用者的驅動程式進行管理,而且能夠很大程度上減輕程式開發的複雜度。   為了達到本發明目的,本發明提供了一種實現驅動的系統,包括:用戶空間和內核空間,其中,用戶空間中設置有:第一可信執行環境內部應用程式設計發展介面、安全應用,以及驅動程式;內核空間中設置有:第二可信執行環境內部應用程式設計發展介面、可信執行環境框架,以及安全作業系統;其中,   所述驅動程式中配置有驅動所述安全應用的屬性;   所述第一可信執行環境內部應用程式設計發展介面與所述第二可信執行環境內部應用程式設計發展介面,用於實現用戶空間內部、內核空間內部,以及用戶空間與內核空間之間的相互調用;   所述可信執行環境框架,基於所述安全作業系統,在載入所述驅動程式時,解析驅動所述安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間中的至少一個功能。   可選地,所述內核空間中還設置有:用戶空間驅動框架;   所述可信執行環境框架還用於:在需要註冊用戶空間驅動的中斷時,為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;   用戶空間驅動框架,用於保存所述可信執行環境框架建立的中斷處理執行緒、用戶空間中中斷處理函數和該中斷的中斷號的對應關係,被所述第二可信執行環境內部應用程式設計發展介面調用註冊用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,用戶空間驅動框架調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   本發明還提供了一種實現驅動的方法,包括:   內核空間載入驅動程式時,解析驅動安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能,其中,所述驅動安全應用的屬性在用戶空間配置。   可選地,所述方法還包括:   在需要註冊用戶空間驅動的中斷時,所述內核空間為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;   所述內核空間保存建立的中斷處理執行緒、所述用戶空間中中斷處理函數和該所述註冊的中斷的中斷號的對應關係,註冊所述用戶空間驅動設備通用的中斷處理函數;   當有中斷產生時,所述內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   本發明又提供了一種電腦可讀儲存介質,儲存有電腦可執行指令,所述電腦可執行指令用於執行上述任一項所述的實現驅動的方法。   本發明再提供了一種用於實現驅動的裝置,包括記憶體和處理器,其中,記憶體中儲存有以下可被處理器執行的指令:內核空間載入驅動程式時,解析驅動安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能,其中,所述驅動安全應用的屬性在用戶空間配置。   可選地,所述記憶體中還儲存有以下可被處理器執行的指令:   在需要註冊用戶空間驅動的中斷時,所述內核空間為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;所述內核空間保存建立的中斷處理執行緒、所述用戶空間中中斷處理函數和所述註冊的中斷的中斷號的對應關係,註冊所述用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,所述內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   本發明技術方案至少包括:在用戶空間配置驅動TA的屬性;內核空間載入驅動程式時,解析驅動TA的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能。通過本發明提供的方案,驅動程式的代碼均在用戶空間,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。而且,不需要使用sysfs記錄用戶空間驅動的記憶體映射等資訊,所有的用戶空間的驅動資訊都只在驅動的TA中和TEE動態運行的記憶體中,因此不會造成資訊洩露,保證了驅動程式的安全性。   可選地,本發明還包括:在註冊用戶空間驅動的中斷時,內核空間為該中斷需要回應的驅動的TA建立一個單獨的中斷處理執行緒;內核空間保存建立的中斷處理執行緒、用戶空間中中斷處理函數和該註冊的中斷的中斷號的對應關係註冊用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。本發明提供的實現驅動的方案中,一方面,中斷驅動程式的代碼均在用戶空間,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。另一方面,中斷註冊仍可以採用調用中斷註冊API的方案,因此,用戶無需感知內部處理流程;只需利用單獨高優先順序執行緒中斷, 這樣,最大程度上保證了中斷回應的即時性。   本發明的其它特徵和優點將在隨後的說明書中闡述,並且,部分地從說明書中變得顯而易見,或者通過實施本發明而瞭解。本發明的目的和其他優點可通過在說明書、申請專利範圍以及圖式中所特別指出的結構來實現和獲得。
為使本發明的目的、技術方案和優點更加清楚明白,下文中將結合圖式對本發明的實施例進行詳細說明。需要說明的是,在不衝突的情況下,本發明中的實施例及實施例中的特徵可以相互任意組合。   在本發明一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。   記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。   電腦可讀介質包括永久性和非永久性、 可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀介質不包括非暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。   在圖式的流程圖示出的步驟可以在諸如一組電腦可執行指令的電腦系統中執行。並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的循序執行所示出或描述的步驟。   可信執行環境(TEE)通過硬體的隔離,可確保在一個孤立、可信的環境中儲存、處理和保護敏感性資料。TEE廣泛用於各種安全應用,如支付、指紋和數位版權保護(DRM)等。TEE在用戶空間實現驅動程式,能夠滿足更高安全級別的要求,同時,用戶的驅動程式可以以運行在TEE內部的安全應用(TA, Trusted Application)的方式進行開發整合和管理。   圖1為本發明實現驅動的系統的組成示意圖,如圖1所示,包括用戶空間和內核空間,其中,用戶空間中至少設置有:第一TEE內部(Internal)應用程式設計發展介面(API, Application Programming Interface)、安全應用(TA, Trusted Application),以及驅動程式如驅動TA(Driver TA);內核空間中至少設置有:第二TEE Internal API、TEE框架(Framework),以及安全作業系統(Secure OS);其中,   第一TEE Internal API與第二TEE Internal API,用於實現用戶空間內部、內核空間內部,以及用戶空間與內核空間之間的相互調用。比如:TA 調用第一TEE Internal AP、用戶空間的第一TEE Internal API通過sysycall調用內核空間的第二TEE Internal API,這樣,第二TEE Internal API才能調用內核空間的其他模組的介面,具體實現術語本領域技術人員的公知技術,並不用於限定本發明的保護範圍。   驅動TA中配置有驅動TA的屬性,比如:驅動的名稱、需要映射的實體位址和對應的虛擬位址等。   配置方式與普通TA的屬性配置方式類似。這些屬性在編譯的時候,會被放在一個特殊的段裡。   驅動TA包括一個或一個以上,一個第三方的TA可以對應一個驅動TA。   TEE框架,基於安全OS,在載入驅動程式時,解析驅動TA的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能。   本發明提供的實現驅動的架構中,驅動程式的代碼均在用戶空間的驅動TA,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。而且,不需要使用sysfs記錄用戶空間驅動的記憶體映射等資訊,所有的用戶空間的驅動資訊都只在驅動的TA中和TEE動態運行的記憶體中,因此不會造成資訊洩露,保證了驅動程式的安全性。   通過本發明提供的實現驅動的架構,不需要驅動的開發者顯示的調用mmap()、驅動的註冊等相關函數,只需要簡單地配置驅動TA的屬性,而與普通TA的開發方式儘量保持了一致,這樣,減少了第三方驅動開發者的工作量;而且,也不需要sysfs的參與,實現了無驅動資訊洩漏的隱患,保證了驅動程式的安全性。第三方的驅動已TA的方式整合到TEE中,因此,實現了採用TAM的方式動態的更新,減少了驅動程式整合成本。   可選地,內核空間中還設置有:用戶空間驅動程式框架(Userspace Driver Framework);相應地,   TEE框架還用於:在外部如驅動的開發者需要註冊用戶空間驅動的中斷時,為該中斷需要回應的驅動的TA建立一個單獨的中斷處理執行緒;   用戶空間驅動程式框架,用於保存TEE框架建立的中斷處理執行緒、用戶空間中中斷處理函數和該註冊的中斷的中斷號的對應關係,被TEE內核空間的第二TEE Internal API調用註冊用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,先調用通用的中斷處理函數,再根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   這樣,中斷處理執行緒會切換到驅動用戶空間的中斷處理函數並處理中斷。   本發明提供的實現驅動的系統中,中斷驅動程式的代碼均在用戶空間的驅動TA,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。   通過本發明提供的實現驅動的系統,中斷註冊仍可以採用調用中斷註冊API的方案,因此,用戶無需感知內部處理流程;當有中斷產生時,只需利用單獨高優先順序執行緒該中斷, 這樣,最大程度上保證了中斷回應的即時性。   也就是說,通過本發明提供的實現驅動的系統,不需要驅動程式的開發者感知記憶體映射、註冊驅動、用戶空間回應中斷需要等待在設備讀操作上等操作, 在本發明提供的實現驅動的系統中,記憶體的映射、驅動註冊只需簡單的配置驅動的屬性,而中斷仍採用調用中斷註冊函數的方式,與相關技術中在內核空間開發驅動的方案保持一致,這樣極大地減小了驅動開發的複雜性。   圖2為本發明實現驅動的方法的流程圖,如圖2所示,包括:   步驟200:在用戶空間配置驅動TA的屬性。   可選地,屬性包括但不限於:驅動的名稱、需要映射的實體位址和對應的虛擬位址等。   配置方式與普通TA的屬性配置方式類似。這些屬性在編譯的時候,會被放在一個特殊的段裡。   驅動TA包括一個或一個以上,一個第三方的TA可以對應一個驅動TA。   步驟201:基於安全OS,內核空間載入驅動程式時,解析驅動TA的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能。   本發明提供的實現驅動的方法中,驅動程式的代碼均在用戶空間的驅動TA,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。而且,不需要使用sysfs記錄用戶空間驅動的記憶體映射等資訊,所有的用戶空間的驅動資訊都只在驅動的TA中和TEE動態運行的記憶體中,因此不會造成資訊洩露,保證了驅動程式的安全性。   通過本發明提供的實現驅動的方法,不需要驅動的開發者顯示的調用mmap()、驅動的註冊等相關函數,只需要簡單地配置驅動TA的屬性,而與普通TA的開發方式儘量保持了一致,這樣,減少了第三方驅動開發者的工作量;而且,也不需要sysfs的參與,實現了無驅動資訊洩漏的隱患,保證了驅動程式的安全性。第三方的驅動已TA的方式整合到TEE中,因此,實現了採用TAM的方式動態的更新,減少了驅動程式整合成本。   本發明實現驅動的方法還包括:   在需要註冊用戶空間驅動的中斷時,內核空間為該中斷需要回應的驅動的TA建立一個單獨的中斷處理執行緒;   內核空間保存建立的中斷處理執行緒、用戶空間中中斷處理函數和該註冊的中斷的中斷號的對應關係,註冊用戶空間驅動設備通用的中斷處理函數;   當有中斷產生時,內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   這樣,中斷處理執行緒會切換到驅動用戶空間的中斷處理函數並處理中斷。   本發明提供的實現驅動的方法中,中斷驅動程式的代碼均在用戶空間的驅動TA,不需要再與OS進行整合處理,完全實現了以TA的形式對用戶的驅動程式進行開發整合和管理。   通過本發明提供的實現驅動的方法,中斷註冊仍可以採用調用中斷註冊API的方案,因此,用戶無需感知內部處理流程;當有中斷產生時,只需利用單獨高優先順序執行緒該中斷, 這樣,最大程度上保證了中斷回應的即時性。   也就是說,通過本申請提供的實現驅動的方法,不需要驅動程式的開發者感知記憶體映射、註冊驅動、使用者空間回應中斷需要等待在設備讀操作上等操作, 在本申請提供的實現驅動的架構中,記憶體的映射、驅動註冊只需簡單的配置驅動的屬性,而中斷仍採用調用中斷註冊函數的方式,與相關技術中在內核空間開發驅動的方案保持一致,這樣極大地減小了驅動開發的複雜性。   在實際的應用中,為了保證安全性,有很多的驅動程式是需要配置成只有TEE才可以訪問的,比如加密引擎,這種情況下,需要在TEE中整合這些驅動程式。利用本發明提供的實現驅動的架構及方法,在高安全級別的需求下,這些第三方的驅動程式會整合在用戶空間,這樣,第三方的驅動程式的錯誤(bug)不會導致TEE有bug而受人攻擊;驅動程式崩潰(crash)時也不會導致整個TEE崩潰,方便了驅動程式的開發者開發和調試。同時,利用本發明提供的實現驅動的架構及方法,以TA的方式整合驅動程式,既方便了驅動程式的開發整合,又方便了使用TAM進行驅動的動態安裝、刪除、更新等操作。   本發明還提供一種電腦可讀儲存介質,儲存有電腦可執行指令,所述電腦可執行指令用於執行上述任一項所述的實現驅動的方法。   本發明還提供一種用於實現驅動的裝置,包括記憶體和處理器,其中,記憶體中儲存有以下可被處理器執行的指令:內核空間載入TA時,解析驅動TA的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能,其中,所述驅動安全應用的屬性在用戶空間配置。   可選地,所述記憶體中還儲存有以下可被處理器執行的指令:   在註冊用戶空間驅動的中斷時,所述內核空間為該中斷需要回應的驅動的TA建立一個單獨的中斷處理執行緒;所述內核空間保存建立的中斷處理執行緒,驅動所述用戶空間中中斷處理函數和該中斷的中斷號的對應關係,註冊所述用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,所述內核空間根據中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。   雖然本發明所揭露的實施方式如上,但所述的內容僅為便於理解本發明而採用的實施方式,並非用以限定本發明。任何本發明所屬領域內的技術人員,在不脫離本發明所揭露的精神和範圍的前提下,可以在實施的形式及細節上進行任何的修改與變化,但本發明的專利保護範圍,仍須以所附的申請專利範圍所界定的範圍為準。
200、201‧‧‧步驟
圖式用來提供對本發明技術方案的進一步理解,並且構成說明書的一部分,與本發明的實施例一起用於解釋本發明的技術方案,並不構成對本發明技術方案的限制。   圖1為本發明實現驅動的系統的組成示意圖;   圖2為本發明實現驅動的方法的流程圖。

Claims (7)

  1. 一種實現驅動的系統,其特徵在於,包括:用戶空間和內核空間,其中,用戶空間中設置有:第一可信執行環境內部應用程式設計發展介面、安全應用,以及驅動程式;內核空間中設置有:第二可信執行環境內部應用程式設計發展介面、可信執行環境框架,以及安全作業系統;其中,   該驅動程式中配置有驅動該安全應用的屬性;   該第一可信執行環境內部應用程式設計發展介面與該第二可信執行環境內部應用程式設計發展介面,用於實現用戶空間內部、內核空間內部,以及用戶空間與內核空間之間的相互調用;   該可信執行環境框架,基於該安全作業系統,在載入該驅動程式時,解析驅動該安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間中的至少一個功能。
  2. 根據請求項1所述的系統,其中,該內核空間中還設置有:用戶空間驅動框架;   該可信執行環境框架還用於:在需要註冊用戶空間驅動的中斷時,為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;   用戶空間驅動框架,用於保存該可信執行環境框架建立的中斷處理執行緒、用戶空間中中斷處理函數和該中斷的中斷號的對應關係,被該第二可信執行環境內部應用程式設計發展介面調用註冊用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,用戶空間驅動框架調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。
  3. 一種實現驅動的方法,其特徵在於,包括:   內核空間載入驅動程式時,解析驅動安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能,其中,該驅動安全應用的屬性在用戶空間配置。
  4. 根據請求項3所述的方法,其中,該方法還包括:   在需要註冊用戶空間驅動的中斷時,該內核空間為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;   該內核空間保存建立的中斷處理執行緒、該用戶空間中中斷處理函數和該該註冊的中斷的中斷號的對應關係,註冊該用戶空間驅動設備通用的中斷處理函數;   當有中斷產生時,該內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。
  5. 一種電腦可讀儲存介質,儲存有電腦可執行指令,該電腦可執行指令用於執行上述請求項3~請求項4中任一項所述的實現驅動的方法。
  6. 一種用於實現驅動的裝置,包括記憶體和處理器,其中,記憶體中儲存有以下可被處理器執行的指令:內核空間載入驅動程式時,解析驅動安全應用的屬性,以完成分配資源、註冊驅動、將設備實體位址映射到對應的虛擬位址空間上中的至少一個功能,其中,該驅動安全應用的屬性在用戶空間配置。
  7. 根據請求項6所述的裝置,其中,該記憶體中還儲存有以下可被處理器執行的指令:   在需要註冊用戶空間驅動的中斷時,該內核空間為該中斷需要回應的驅動程式建立一個單獨的中斷處理執行緒;該內核空間保存建立的中斷處理執行緒、該用戶空間中中斷處理函數和該註冊的中斷的中斷號的對應關係,註冊該用戶空間驅動設備通用的中斷處理函數;當有中斷產生時,該內核空間調用通用的中斷處理函數,根據對應關係中與產生的中斷對應的中斷號喚醒對應的中斷處理執行緒,將驅動用戶空間中斷處理函數的入口位址傳給喚醒的中斷處理執行緒。
TW107131126A 2017-11-06 2018-09-05 實現驅動的系統及方法 TWI783034B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711078956.3A CN109753347B (zh) 2017-11-06 2017-11-06 一种实现驱动的系统及方法
??201711078956.3 2017-11-06
CN201711078956.3 2017-11-06

Publications (2)

Publication Number Publication Date
TW201923568A true TW201923568A (zh) 2019-06-16
TWI783034B TWI783034B (zh) 2022-11-11

Family

ID=66332819

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107131126A TWI783034B (zh) 2017-11-06 2018-09-05 實現驅動的系統及方法

Country Status (3)

Country Link
CN (1) CN109753347B (zh)
TW (1) TWI783034B (zh)
WO (1) WO2019085811A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442462B (zh) * 2019-07-16 2020-07-28 阿里巴巴集团控股有限公司 Tee系统中的多线程数据传输方法和装置
CN110399235B (zh) 2019-07-16 2020-07-28 阿里巴巴集团控股有限公司 Tee系统中的多线程数据传输方法和装置
US10699015B1 (en) 2020-01-10 2020-06-30 Alibaba Group Holding Limited Method and apparatus for data transmission in a tee system
CN116484438A (zh) * 2022-01-17 2023-07-25 荣耀终端有限公司 信息处理方法和装置
CN116049809B (zh) * 2022-06-14 2023-11-07 荣耀终端有限公司 一种驱动调用方法和设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0102518D0 (en) * 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
WO2006115533A2 (en) * 2005-04-22 2006-11-02 Microsoft Corporation Protected computing environment
TW200722992A (en) * 2005-12-14 2007-06-16 Inventec Corp Physical memory testing method under Linux system
CN1988534B (zh) * 2005-12-23 2011-05-25 联想(北京)有限公司 可信计算系统和在内核态下访问tpm服务的方法
CN101453572A (zh) * 2007-11-30 2009-06-10 上海复旦上科多媒体有限公司 多媒体表演系统设备的控制方法
CN103679006B (zh) * 2013-10-25 2017-09-05 华为技术有限公司 一种运行驱动程序的方法及装置
CN103593189A (zh) * 2013-11-14 2014-02-19 昆明理工大学 一种嵌入式Linux下用户态驱动程序的实现方法
CN106936774B (zh) * 2015-12-29 2020-02-18 中国电信股份有限公司 可信执行环境中的认证方法和系统
CN106775833B (zh) * 2016-11-28 2021-03-16 青岛海信移动通信技术股份有限公司 设备驱动程序加载方法、终端及系统
CN107247578A (zh) * 2017-06-12 2017-10-13 北京奇虎科技有限公司 配置参数存储方法及装置

Also Published As

Publication number Publication date
CN109753347A (zh) 2019-05-14
WO2019085811A1 (zh) 2019-05-09
TWI783034B (zh) 2022-11-11
CN109753347B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
TWI783034B (zh) 實現驅動的系統及方法
KR102255767B1 (ko) 가상 머신 감사를 위한 시스템 및 방법들
KR100692346B1 (ko) 시스템 완전성 및 레거시 환경 에뮬레이션을 제공하기위한 방법
RU2398267C2 (ru) Иерархическая виртуализация посредством многоуровневого механизма виртуализации
US8181176B2 (en) Uniform storage device access using partial virtual machine executing within a secure enclave session
US20100318997A1 (en) Annotating virtual application processes
BR112015022865B1 (pt) Método e aparelho para ativar seletivamente as operações de um monitor de máquina virtual sob demanda
KR102104695B1 (ko) 하드웨어 디바이스에 대한 소프트웨어 인터페이스
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
Vahidi et al. VETE: Virtualizing the Trusted Execution Environment
US11379579B2 (en) Shadow stack violation enforcement at module granularity
WO2022017242A1 (zh) 在第一系统运行第二系统应用的方法、装置、设备及介质
EP2941694B1 (en) Capability based device driver framework
KR20060063643A (ko) 운영 체제의 성능을 향상시키는 방법 및 시스템
US11500981B2 (en) Shadow stack enforcement range for dynamic code
US10430223B2 (en) Selective monitoring of writes to protected memory pages through page table switching
US10169113B2 (en) Storage and application intercommunication using ACPI
EP2941695B1 (en) High throughput low latency user mode drivers implemented in managed code
US11074200B2 (en) Use-after-free exploit prevention architecture
US11385927B2 (en) Interrupt servicing in userspace
Dibble et al. Programming embedded systems: interacting with the embedded platform