TW201710947A - 具有管理程序的系統 - Google Patents

具有管理程序的系統 Download PDF

Info

Publication number
TW201710947A
TW201710947A TW105127311A TW105127311A TW201710947A TW 201710947 A TW201710947 A TW 201710947A TW 105127311 A TW105127311 A TW 105127311A TW 105127311 A TW105127311 A TW 105127311A TW 201710947 A TW201710947 A TW 201710947A
Authority
TW
Taiwan
Prior art keywords
security
area
mode
secure
unit
Prior art date
Application number
TW105127311A
Other languages
English (en)
Inventor
Hidekazu Kato
Shoi Egawa
Original Assignee
Seltech Corp
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 Seltech Corp filed Critical Seltech Corp
Publication of TW201710947A publication Critical patent/TW201710947A/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

提供一種系統(1),具有:處理單元(11),其具備執行模式,該執行模式包含依支援機能(12)而被禁止朝記憶體的保全區域存取之非安全模式(3);及被許可朝保全區域存取之安全模式(2);及在安全模式(2)運作的管理程序(20)。管理程序(20)包含:第1設定單元(23),對在安全模式(2)運作的第1OS(30)設定含有可對記憶體的保全區域及非保全區域存取之第1作動條件(21);及第2設定單元(24),對在非安全模式(3)運作的第2OS(41)設定第2作動條件(22a),該第2作動條件(22a)含有可對非保全區域存取,使用支援機能(12)設定不可朝保全區域存取,及藉由對與第1OS(30)共用之第1裝置存取而移行到安全模式(2)。

Description

具有管理程序的系統
本發明係有關一種具有管理程序的系統。
日本國專利公開公報2013-161479號揭示提供一種使用安全區域及低安全區域的資料處理裝置及方法之技術。專利文獻1所揭示的資料處理裝置係具備有作業系統的安全區域及低安全區域之處理電路。在安全區域作動時,處理電路可存取非在低安全區域可存取的資料。處理係響應於控制流程變更命令的執行而切換成目標位址的程式命令。區域選擇係就目標位址的命令,為決定處理電路作動的選擇區域而實施。區域核對(checking)係為了檢查是否容許哪個區域是依區域選擇所決定之選擇區域而被實施。區域檢查錯誤係區域選擇中的選擇區域並非容許選擇區域的情況所引起。
[先前技術文獻] [專利文獻]
[專利文獻1]日本國專利公開公報2013-161479號
在具備以硬體等級支援安全區域(安全模式(Secure Mode)、安全區域(Secure World))及低安全區域(低安全模式(Low Secure Mode)、低安全區域(Low Secure World)、一般區域、典型的非安全模式(Non Secure Mode))的機能(支援機能)之資料處理裝置中,期待提供更安全的虛擬化環境。
本發明的一態樣為,一種系統,具有:處理單元,其包含禁止朝含有保全區域及非保全區域之記憶體的保全區域存取之支援機能、且具備含有低安全模式(低安全環境)、典型的有非安全模式(非安全模式、非安全模式)及安全模式(安全模式、安全環境)之執行模式,該低安全模式,依支援機能而被禁止朝保全區域存取,該安全模式被許可朝保全區域存取;及管理程序,在處理單元的前述安全模式下運作,管理程序包含:第1設定單元,該第1設定單元對在安全模式下運作的第1OS(作業系統)設定含有可朝保全區域及非保全區域存取之第1作動條件;第2設定單元,該第2設定單元對低安全模式下運作的第2OS(作業系統)設定第2作動條件,該第2作動條件包含設定可對非保全區域之存取,使用支援機能設定不可對保全區域存取,且藉由對與第1OS共用的第1裝置存取而移行至安全模式(Secure World));及仿真單元,將第1裝置虛擬化並供予第2OS。
此系統中,管理程序係在提供基本上已防止來自外界的攻擊之安全的執行環境(安全區域)的安全模式下運作。因此,來自於在低安全模式運作的Rich OS(多功能作業系統)等之第2OS的干涉或暴露被攻撃的可能性少,藉由在安全模式運作的管理程序,可提供更安全的虛擬化環境(虛擬環境)。
一方面,當因為在低安全模式下運作的第2OS之作動而必要虛擬化時,處理單元從低安全模式切換成安全模式,成為處理速度降低的要因。因此,管理程序包含設定在安全模式作動的第1OS的第1作動條件(第1組態)之第1設定單元,並包含設定在低安全模式作動的第2OS的第2作動條件(第2組態)之第2設定單元,管理程序係在安全模式(安全環境)作動,設定低安全模式之第2OS的作動條件。
第2作動條件係設定可對非保全區域存取,使用支援機能設定不可對保全區域存取,更包含藉由對和第1OS共用的第1裝置之存取而移行至安全模式,管理程序係於安全模式,藉由仿真單元,對第2OS將第1裝置虛擬化並提供。藉由此第2作動條件,低安全模式下運作的第2OS成為在未移行至安全模式下可朝記憶體的非保全區域存取,又,對於未和安全模式下運作的OS共用的裝置亦可在未移行至安全模式下作存取。因此,關於低安全模式下運作的第2OS,可削減在運作中移行至安全模式的時序,可抑制虛擬 化所致處理速度的降低。一方面,關於安全模式下運作的第1OS,對與第2OS共用的第1裝置之存取係於安全模式中被虛擬化,可抑制伴隨於模式的移行之處理速度的降低。因此,可使RTOS(即時作業系統)等之響應速度的降低會成為問題的OS在安全模式中以可靠性高的狀態運作。
亦可為,第1作動條件包含設成不可對含有低安全的電腦網路之非保全裝置存取,第2作動條件包含設定可對非保全裝置存取。管理程序係透過第1作動條件設定在安全模式作動的第1OS在安全性上不可對重要的非保全裝置等之資源存取,更可確保第1OS的安全性。又,依第1作動條件及第2作動條件,可將朝電腦網路之存取例如固定(限制)在第2OS。
依管理程序所設定之各OS的作動條件,能限定各OS可存取的裝置,從裝置側觀之,管理程序能以分配予複數作動的OS當中任一且僅從所分配的OS被存取的方式設定虛擬環境(OS的作動環境)。因此,可對各OS將資源(裝置)固定化,藉由固定化而避免裝置共有,透過減低對共有管理程序的裝置仿真之機會,從而減低管理程序作動的機會。因此,本系統透過使管理程序在安全模式下運作得以確保虛擬化的安全性,並可抑制在低安全模式運作之OS的處理速度降低。
又,管理程序係在安全模式下運作。因此,管理程序包含切換含有第1OS及第2OS的複數個OS之OS切換單元,OS切換單元可包含將複數個OS的作動條件及複數 個OS的上下文(context)分別儲存於保全區域之單元。使切換OS之際的上下文(OS的狀態)更安全地退避,可確實地切換複數個OS。
支援安全模式的支援機能的一例為,ARM公司所提供的可信賴區域(Trust zone)機構(TZ機構)、MIPS技術公司所提供的VZ機構、intel公司所提供的VT(Virtualization Technology;虛擬化技術)機構。第2OS的一例為,Linux(註冊商標)、Android等之高機能、多功能且通用性高的OS。安全的第1OS(安全OS)的一例係支援嵌入控制用軟體的即時作業系統。
再者,此系統係管理程序亦可具有OS啟動準備單元。由於管理程序係在安全模式下運作,故OS啟動準備單元可包含:將儲存於保全區域之第2OS的韌體,使用儲存於保全區域的驗證資訊驗證之第1驗證單元;及將儲存於保全區域之已驗證的第2OS的韌體,在非保全區域的啟動區域展開成執行用的實例(instance)之展開單元。管理程序係可使用已藉從低安全模式下運作的第2OS無法存取的(看不見的)儲存於保全區域的驗證資訊驗證完畢的第2OS的韌體來啟動第2OS。因此,可防止第2OS的韌體因第2OS等之低安全模式下運作的OS及應用程式而改變。
再者,此系統亦可具有在安全模式下運作的更新單元。安全模式下運作的管理程序亦可含有更新單元。更新單元包含:將下載到非保全區域之更新用的韌體,使用儲存於保全區域的驗證資訊驗證之第2驗證單元;及將下載到 非保全區域之已驗證的更新用的韌體儲存於保全區域之儲存單元。更新用的韌體之下載係以在第2OS上作動的應用程式執行而可儲存於記憶體的非保全區域。更新單元係在安全模式運作,藉由第2驗證單元驗證被儲存於非保全區域之更新用的韌體之後,藉由儲存單元將更新用的韌體儲存於保全區域。藉由此處理,將已藉由儲存於保全區域的驗證資訊驗證完的韌體儲存於保全區域,可在儲存於保全區域的狀態下使用。因此,可防止更新用的韌體因第2OS等之低安全模式下運作的OS及應用程式而改變。
第1作動條件及第2作動條件亦可含有設定在非保全區域之共有的記憶體區域的作動條件。透過將共有的記憶體區域設定於非保全區域,可減低第1OS及第2OS在對共有的記憶體區域存取之際管理程序介入的機會,可縮短OS間通信所需的處理時間。共有的記憶體區域的作動條件包含當第2OS寫入共有的記憶體區域即朝安全模式移行,管理程序包含通知第1OS已寫入共有的記憶體區域的單元,第1OS亦可含有當寫入共有的記憶體區域就藉由中斷來通知第2OS之單元。由於第1OS可在不透過管理程序下通知第2OS,故可在不等待管理程序之響應下繼續即時的處理。
此系統亦可具備搭載著記憶體和處理單元之系統晶片。又,此系統亦可具有在第2OS上運作的應用程式及利用應用程式控制的裝置。藉由管理程序可與包含非保全的裝置在內的各式各樣裝置進行存取,可在第2OS上運作控制各式各樣的裝置之應用程式。裝置可以是印表機、印刷裝 置、製本裝置、加工機械等之產業用的裝置,可以是冷藏庫、洗衣機、微波爐等之家庭用的裝置,亦可以是引擎、汽車用的控制裝置。
本發明的其他態樣之一為,一種於以下的系統中控制複數個OS之方法,該系統具有處理單元,該處理單元包含禁止朝含有保全區域及非保全區域之記憶體的保全區域存取之支援機能、且具備含有低安全模式及安全模式之執行模式,該低安全模式,依前述支援機能而被禁止朝保全區域存取,該安全模式被許可朝保全區域存取。此系統含有在處理單元的安全模式下運作的管理程序,該方法包含以下步驟。
1.對在安全模式下運作的第1OS設定含有可朝保全區域及非保全區域存取之第1作動條件。
2.對在低安全模式下運作的第2OS設定第2作動條件,該第2作動條件包含設定可對非保全區域存取,使用支援機能設定不可對保全區域存取,且藉由對與第1OS共用的第1裝置存取而移行至安全模式。
3.管理程序將第1裝置虛擬化並供予第2OS。
該方法可進一步包含,管理程序包含準備OS的啟動,準備OS的啟動係將儲存於保全區域之第2OS的韌體,使用儲存於保全區域的驗證資訊驗證,將儲存於保全區域之已驗證的第2OS的韌體,在非保全區域的啟動區域展開成執行用的實例。
該方法亦可進一步包含,安全模式下運作的更 新單元將下載到非保全區域之更新用的韌體,使用儲存於保全區域的驗證資訊驗證,將下載到非保全區域之已驗證的更新用的韌體儲存於保全區域。
該方法亦可進一步包含,當第2OS寫入設定於非保全區域之共有的記憶體區域時朝安全模式移行,管理程序將已寫入共有的記憶體區域通知第1OS,當第1OS寫入共有的記憶體區域時藉由中斷而通知第2OS。
本發明更不同的其他態樣之一為,一種於以下的系統中可控制複數個OS之程式(程式製品),該系統具有處理單元,該處理單元包含禁止朝含有保全區域及非保全區域之記憶體的保全區域存取之支援機能、且具備含有低安全模式及安全模式之執行模式,該低安全模式,依支援機能而被禁止朝保全區域存取,該安全模式被許可朝保全區域存取。此程式(程式製品)可記錄於電腦可讀取之記錄媒體作提供。程式係包含在處理單元的前述安全模式下使管理程序運作的命令,管理程序執行:對在安全模式下運作的第1OS設定含有可朝保全區域及非保全區域存取之第1作動條件;對在低安全模式下運作的第2OS設定第2作動條件,該第2作動條件包含設定可對非保全區域存取,使用支援機能設定不可對保全區域存取,且藉由對與第1OS共用的第1裝置存取而移行至安全模式;及將第1裝置虛擬化並供予第2OS。
1‧‧‧系統
2‧‧‧安全模式
3‧‧‧低安全模式(非安全模式、一般模式)
10‧‧‧硬體平台
11‧‧‧處理器(處理器單元)
11b‧‧‧動態記憶體
11x‧‧‧DMAC
11t‧‧‧計時部
12‧‧‧支援機構
13‧‧‧靜態記憶體控制器
12a、12b‧‧‧記憶體空間
12‧‧‧TZ機構
14f‧‧‧韌體
14h‧‧‧韌體(程式、程式製品)
14i‧‧‧韌體〈實例〉
14n‧‧‧韌體、更新用的韌體
14x‧‧‧韌體
15‧‧‧加密金鑰EPROM、安全的記憶體
15a、15b‧‧‧驗證資訊
16‧‧‧安全啟動ROM、啟動ROM、安全啟動用的記憶體
17‧‧‧安全核心RAM
18‧‧‧通用RAM、DDR記憶體
18a‧‧‧保全區域(安全區域)
18b‧‧‧非保全區域(非安全區域)
18c‧‧‧共有區域
18s‧‧‧啟動區域
19a‧‧‧網路裝置、網路介面、網路
19b‧‧‧通用介面裝置
20‧‧‧管理程序
21‧‧‧組態(第1組態、第1作動條件)
22a~22c‧‧‧組態
21x‧‧‧資訊、作動條件
22x‧‧‧作動條件
23‧‧‧第1設定單元
24a~24c‧‧‧第2設定單元
25‧‧‧啟動準備單元
26‧‧‧OS切換單元
26a‧‧‧單元
26x‧‧‧上下文
27‧‧‧仿真單元
27a‧‧‧樣式(第1樣式)
27b‧‧‧樣式(第2樣式)
27c‧‧‧樣式(第3樣式)
28‧‧‧OS間通信單元
30‧‧‧安全OS(第1OS)
35‧‧‧應用程式群
36‧‧‧裝置驅動器
36q‧‧‧中斷、中斷信號
36x‧‧‧驅動器、裝置驅動器、通信驅動器
41~43‧‧‧OS
45‧‧‧客戶端應用程式群
46‧‧‧裝置驅動器
46x‧‧‧驅動器
50‧‧‧安全啟動單元
51‧‧‧驗證單元、第1驗證單元
52‧‧‧展開單元
60‧‧‧更新單元(安全更新單元)
61‧‧‧驗證單元、第2驗證單元
62‧‧‧儲存單元
圖1係表示含有管理程序之嵌入系統的一例之方塊圖。
圖2係表示含有TZ機構之平台的一例。
圖3係表示藉由管理程序控制OS的過程之流程圖。
圖4係表示安全啟動的處理概要之圖。
圖5係表示安全更新的處理概要之圖。
圖6係表示用以進行OS間通信的設定程序之圖。
圖7係表示用以進行OS間通信的設定程序的不同例子之圖。
圖1表示具備管理程序之系統的一例。此系統1為被安裝於家電製品、產業機械、印表機、汽車等之電腦系統,係典型的SoC(系統晶片)。系統1包含:含有處理器單元11的硬體平台10;在其上運作的管理程序20;在管理程序20所提供的虛擬化環境運作的安全OS(第1OS)30及多功能OS(第2OS)41~43。
處理器單元11係提供複數個執行模式(執行環境),但在本實施形態中,假設了在記憶體設定保全區域,依禁止朝其保全區域存取的支援機能(記憶體保護機能)所實現之安全模式2及保全等級低於安全模式2的低安全模式(以下稱為非安全模式、非安全模式或一般模式)3的2個執行模式。藉由在非安全模式3中處理器單元11的支援機能來禁止朝記憶體的保全區域之存取。
系統1具有:在安全模式2運作的安全OS30 之上([安全區域(Secure World)])作動之可信賴的應用程式群35;及在非安全模式3運作的多功能OS41~43之上([非安全區域(Low Secure World)]、一般區域)作動的客戶端應用程式群45。有時將在非安全模式3運作的多功能OS41~43等之OS記載成如以下的非安全(非安全)的OS或非安全OS。
構成IoT(Internet of Things;物聯網)的嵌入系統之機能係由屬系統軟體的OS(Operating System;作業系統)及OS上的應用程式來規定。管理程序20可構築複數個OS環境。本案申請人所提供的管理程序「FOXvisor」及「FEXEROX」為,處理器(處理器單元)11使用持有硬體的支援機構12可分離複數個OS之裸機樣式(樣式I)的管理程序。
支援機能為,在安裝有ARM系的IP的處理器中能使用可信賴區域(Trust zone;以下稱為TZ機構),安裝有MIPS系的IP的處理器中可使用VZ機構,Intel系的處理器中可使用VT機構。支援機能亦可含有虛擬化擴張機能,就安裝有ARM系的IP的處理器而言可舉出虛擬化延伸(Virtualization Extension)及LPAE(Large Physical Address Extension;大型實體位址延伸)。
以下,在支援機能(安全支援機能、安全支援機構)方面,參照含有TZ機構12的處理器單元11。關於TZ機構12,可構築能分離一般區域的記憶體空間12a和安全區域(Secure World)的記憶體空間12b,且從一般區域看不 見安全區域(Secure World)的記憶體空間12b之無法存取(禁止存取)的環境。再者,在此處理器單元11中,記憶體空間含有週邊裝置(週邊的緩衝器)、暫存器之資源被映射。因此,藉由TZ機構12,可捕捉對含有裝置的資源之特定位址的存取以移行到安全模式2。
圖2表示可信賴區域(Trust zone)認定的平台(SoC)10之構成。平台10包含:具備安全支援機能之處理器11;通用的快閃記憶體13m;及屬通用RAM18的DDR記憶體。處理器單元11包含:具備控制TZ機構的機能之CPU11a;DDR記憶體的控制器11b;控制TZ機構的位址空間之控制器11c;加密金鑰EPROM15;安全啟動ROM16;安全核心(kernel)RAM17;及靜態記憶體控制器13。於平台10,通用RAM的DDR記憶體18的位址空間中之保全區域(安全區域)18a係藉由TZ機構12而成為在非安全模式(一般區域)3無法存取的區域。又,加密金鑰EPROM15、安全啟動ROM16及安全核心RAM17亦是保全區域,藉由TZ機構12而成為在非安全模式3無法存取的區域。於此平台10,在DDR記憶體18的位址空間區域中之非保全區域(非安全區域)18b設定有複數個OS可共通地存取之共有區域18c。
回到圖1,管理程序20包含:進行依管理程序20的控制運作之複數個OS的啟動準備之OS啟動準備單元25;於處理器單元11的資源不足之情況等進行OS切換之OS切換單元26;提供作為虛擬裝置的機能之仿真單元27; 及支援OS間通信之OS間通信單元28。管理程序20係於系統1啟動之際,藉由儲存於安全啟動ROM16之韌體(程式、程式製品)14h被處理器單元11的啟動載入器載入而啟動。
啟動準備單元25包含第1設定單元23,該第1設定單元23在安全模式2運作的第1OS(安全OS)30的啟動之際,對安全OS30設定含有可朝記憶體的保全區域及非保全區域存取之第1作動條件(第1組態)21。啟動準備單元25進一步包含第2設定單元24a~24c,該第2設定單元24a~24c在非安全模式3運作的第2OS(多功能OS,非安全OS)41~43分別啟動之際,對非安全OS41~43分別設定可對非保全區域存取,使用屬支援機能的TZ機構12設定不可朝保全區域存取之第2作動條件(第2組態)22a~22c。第2組態22a~22c更包含透過對與安全OS30共用的裝置(第1裝置)存取而移行至安全模式2。
具體言之,第1組態21係對應於安全OS30的裝置驅動器36而分配硬體平台10之安全的資源(裝置),且設成可對其等資源存取。第2組態22a~22c係對應於非安全的多功能OS41~43之各個裝置驅動器46而分配硬體平台10之非安全的資源(裝置),且設成可對其等存取。
因此,透過管理程序20在第1組態21適用於安全OS30後啟動,可提供安全的作動環境給在安全OS30之上作動的應用程式35。又,透過管理程序20在第2組態22a~22c適用於非安全的多功能OS41~43後啟動,可提供 雖非安全但通用性高的作動環境給在多功能OS41~43之上作動的應用程式45。安全OS30及多功能OS41~43亦可切換運作,若是多核心的處理器單元11,亦可安全OS30及非安全的多功能OS41~43所有、或其等一部份並列地運作。屬非安全的OS的一例之多功能OS(第2OS)41~43,係和例如Linux(註冊商標)、Android等各式各樣的應用程式對應之通用OS。
第1組態21係對安全OS30分配屬記憶體的安全的區域(保全區域)之加密金鑰EPROM15、安全啟動ROM16、安全核心RAM17、及屬通用RAM的DDR記憶體18的安全區域18a並設定成可存取。第1組態21係進一步對第1OS30亦分配DDR記憶體18的非安全區域(非保全區域)18b,並設定成可存取非安全區域18b。安全OS30的裝置驅動器36係含有能進行OS間通信之驅動器36x,第1組態21係含有包含分配予驅動器36x之OS間通信用的共有記憶體18c的映射資訊之作動條件21x。
第1組態21係未將非安全的網路裝置19a或通用介面裝置19b等之非安全的資源分配予安全OS30,從安全OS30及安全OS30之上作動之可信賴的應用程式35朝此等非安全的資源直接的存取係被禁止,不被許可。第1組態21係亦可含有使用管理程序20所提供的虛擬裝置,經由保障驗證等之所定的安全性之程序間接地存取非安全的資源之作動條件。
第2組態22a~22c當中的例如第2組態22a 為,以對通用且非安全的多功能OS41將DDR記憶體18的非安全區域18b之被固定的位址區域、網路裝置19a、及通用介面裝置19b所含有的特定的裝置固定的狀態作分配,在非安全OS41之上作動的應用程式45於此等裝置,可在非安全模式3,即未移行至安全模式2下作存取。
第2組態22a係透過對與安全OS30共用的裝置(第1裝置),例如DMAC11x及計時部11t存取而移行至安全模式2。多功能OS41係以在安全模式2運作的管理程序20所提供之虛擬裝置對此等裝置作存取。處理器單元11,係在捕捉到多功能OS41對存取共用的裝置之特定的位址之存取時,移行至安全模式2,管理程序20的仿真單元27係解析作為存取對象的裝置、存取中的暫存器、屬客戶端OS的多功能OS41的狀態以決定仿真的內容。
多功能OS41的裝置驅動器46係包含可進行OS間通信的驅動器46x,第2組態22係包含含有分配予驅動器46x之OS間通信用的共有記憶體18c的映射資訊之作動條件22x。
第2組態22a係提供在一般區域(非安全模式)作動的條件(環境)。藉由設定第2組態22a,透過TZ機構12可利用一般區域的記憶體空間12a存取DDR記憶體18的非安全區域18b。然而,依據TZ機構12,看不見安全區域(Secure World)的記憶體空間12b的安全區域18a等之位址,從多功能OS41及此OS41之上作動的客戶端應用程式45看不見加密金鑰EPROM15、安全啟動ROM16、安全核心 RAM17、及通用RAM的安全區域18a,朝此等區域之存取不被許可。
OS啟動準備單元25更包含安全啟動(安全啟動)單元50及更新單元(安全更新單元)60。安全啟動單元50包含:將儲存於屬保全區域的安全啟動ROM16之第2OS41的韌體14f,使用儲存於屬保全區域的加密金鑰EPROM15之驗證資訊15a驗證之第1驗證單元51;及將儲存於屬保全區域的安全啟動ROM16之已驗證的第2OS的韌體14f在屬非保全區域的DDR記憶體18的非安全區域18b的啟動區域18s展開以形成執行用的實例14i之展開單元52。
當備妥執行用的實例14i時,管理程序20設定用以啟動第2OS41的第2組態22a,切換成非安全模式3。透過處理器單元11的啟動載入器將形成在屬非保全區域的非安全區域18b之執行用的實例14i載入,使第2OS41啟動。
若處理器單元11為多核心,則將特定的CPU核心的執行模式切換成非安全模式3,使用第2組態22a可啟動第2OS41。因此,在處理器單元11中,能使在安全模式2運作的安全OS30與在非安全模式3運作的第2OS(多功能OS、非安全OS)41並列地運作。在處理器單元11為單核心或為將複數個OS並列運作有資源不足之情況,亦可切換模式並使安全OS30和非安全OS41輪流地啟動及運作。在其他的OS42及43中亦相同。
在任一情況也都無法從在非安全模式3運作的第2OS41看見儲存有啟動本身的原始的韌體14f之安全啟動ROM16,且無法寫入。因此,可防止非安全OS41因何等要因而改變。
更新單元60包含:將下載到屬非保全區域的非安全的記憶體區域18b之非安全的多功能OS41的更新用的韌體14n,使用儲存於屬保全區域的加密金鑰EPROM15之驗證資訊15b驗證之第2驗證單元61;及將下載到非安全的記憶體區域18b之已驗證的更新用的韌體14n儲存於屬保全區域的安全啟動ROM16之儲存單元62。在儲存於安全啟動ROM16之際或儲存後,將以前的韌體14f置換成新下載之更新用的韌體14n,藉此可將非安全OS41的啟動用的韌體14f安全地更新。針對其他的OS的韌體也同樣地可安全地更新。
更新單元60係於管理程序20運作的安全模式2下將藉由第2OS41下載之更新用的韌體14n儲存於安全啟動用的記憶體16之前,可在安全的環境且無法從第2OS41看見並且不可寫的狀態,使用儲存於安全的記憶體15之安全的驗證資訊15b進行驗證。因此,即使是下載含有惡意程式碼的韌體之情況,可在儲存於啟動用的記憶體16前於安全的狀態下確認,可排除含有惡意程式碼的韌體。
OS切換單元26包含有將複數個OS的作動條件(組態)及複數個OS的上下文26x分別儲存於記憶體的保全區域,例如DDR記憶體18的保全區域18a之單元 26a。上下文26x為表示對應之OS的運作狀態之資訊,具體言之,係含有各CPU核心的暫存器的內容者。例如,從安全OS30切換成非安全OS41之情況為,於管理程序20運作的安全模式2中,OS切換單元26以核心單位取得在安全OS30運作過之CPU核心的暫存器的內容,生成上下文26x,連同安全OS30的組態21一起儲存於保全區域18a。
接著,OS切換單元26將儲存於保全區域18a的(暫時退避的)非安全OS41之上下文26x載入,依據所載入之上下文26x設定每CPU核心的暫存器的內容。之後,設定組態22a,設定再開啟非安全OS41之程式計數器。處理器單元11係移行至非安全模式3,透過從所設定之程式計數器開始處理能再開啟非安全OS41。在切換其他的OS時亦相同。於此管理程序20,即使是非安全模式3運作的OS彼此切換,透過在安全模式2進行OS切換,可將上下文26x儲存於保全區域18a。因此,即使是OS在非安全模式3正運作之狀態,亦可防止暫時退避之其他OS的狀態被改變,能提升在處理器單元11及系統1中之處理的可靠性。
OS間通信單元28,係在安全模式2支援基於第1組態21及第2組態22a各自含有的OS間通信用的作動條件21x及22x所進行的OS間通信。依作動條件21x及22x設定之共有記憶體區域18c因為係非保全區域18b內,故在安全模式2運作的安全OS30亦是,在非安全模式3運作的非安全OS41中亦可在未進行移行模式下作存取。第2組態22a所含有的作動條件22x係包含當非安全OS41寫入 共有的記憶體區域18c時會朝安全模式2移行。當朝安全模式2移行時,管理程序20係解析被捕捉的條件,將OS間通信單元28既寫入共有的記憶體區域18c通知安全OS30。因此透過安全OS30在共有的記憶體區域18c存取(讀出)而建立OS間通信。
安全OS30的OS間通信用的裝置驅動器36x當寫入共有的記憶體區域18c時,從安全模式2轉往非安全模式3係可使用中斷進行通知,故在非安全OS41正並列地運作之情況係藉中斷36q通知非安全OS41。非安全OS41係透過於非安全模式3在共有記憶體區域18c存取(讀出)而建立OS間通信。亦可將共有的記憶體區域18c設於保全區域且藉由管理程序20完全虛擬化而實現OS間通信。然而,透過將共有的記憶體區域18c設於非保全區域18b,管理程序20能抑制涉及有關OS間通信之處理,可縮短OS間通信所需的處理時間。再者,透過安全OS30是使用中斷進行通知,變得無需等待管理程序20通知結束。因此,可削減妨礙安全OS30之即時對應的要素。
管理程序20中提供作為虛擬裝置的機能之仿真單元27為,在虛擬裝置方面準備了3個樣式27a、27b及27c。第1樣式27a係共有(共用)實體裝置,管理程序20將複數個OS對各自準備的虛擬裝置進行的控制調停而控制/共有1個實體裝置之形態(樣式)。
第2樣式27b為機能追加。在此樣式27b中,管理程序20係通過虛擬裝置將未存在的裝置機能供予複數 個OS(客戶端OS)之形態(樣式)。OS間通信、虛擬網路是符合條件的,雖未存在實體的硬體,但此等機能是藉由管理程序20所提供。
第3樣式27c係機能擴張。在機能擴張的樣式27c中,管理程序20針對某裝置追加機能。例如有「虛擬串列」。客戶端OS傳輸到虛擬串列的資料,管理程序20或其他的客戶端OS可變換成TCP/IP並在網路上傳輸。亦可逆向傳輸資料,管理程序20係作成客戶端OS能以從虛擬串列接收由網路送來的TCP/IP之資料的形式讀入資料。藉由虛擬串列之將資料朝向進行TCP/IP變換之管理程序20的串列傳輸,具體言之係可使用OS間通信來進行。
關於作為安全OS30所採用之RTOS或簡易的嵌入用OS,存在很多不具有像TCP/IP的複雜機能的OS。透過管理程序20或具有TCP/IP機能之其他的客戶端OS將虛擬串列的輸入/輸出變換成TCP/IP的輸入/輸出,可在未改修不具有像TCP/IP的複雜機能的OS之情況下安裝網路對應的系統。
此系統1中,使提供像OS啟動準備、OS切換、OS間通信及虛擬裝置這類虛擬化的機能之管理程序20在安全模式2運作。因此,可在安全側執行虛擬化的處理,特別是與在安全側運作的OS30和在非安全側運作的客戶端OS41相關之虛擬化的處理,可減低來自在非安全的環境運作的客戶端OS41之干涉或攻撃的可能性。因此,系統1中可提供耐來自於外界的干涉或攻撃性強之安全的虛擬化環 境。
一方面,藉由管理程序20是在安全模式2運作,當為了在非安全模式3運作的客戶端OS41之處理而有必要虛擬化時,則從非安全模式3切換成安全模式2,成為系統1的處理速度降低之要因。因此,管理程序20係使用在安全模式2作動之安全OS30的第1作動條件(第1組態)21及在非安全模式3作動之非安全OS41~43等之客戶端OS的第2作動條件(第2組態)22a~22b,藉由作成將各個OS所存取之資源的範圍(裝置)避免重複地可固定或限制,藉以減低管理程序20中介的機會,抑制系統1之處理速度的降低。
又,於含有在非安全模式3運作的客戶端OS41~43的作動條件之第2組態22a~22c,使用屬記憶體保護機能的TZ機構12將朝向保全區域之存取設為不可,且於確保記憶體的安全性後,減低管理程序20在非安全模式3中之中介的必要性。一方面,第2組態22a~22c作成包含藉由對與安全OS30共用的裝置之存取而移行至安全模式2,在安全模式2運作的管理程序20可將共有的裝置當作虛擬裝置提供給各個OS。
此系統1中,管理程序20是控制朝安全模式2移行及朝非安全模式3移行。朝安全模式2移行係可為對管理程序20明示切換命令、可為捕捉朝特定的位址之存取、亦可為接收到來自於計時部11t或外部硬體模組之中斷信號時。若是提供TZ機構12的ARM公司的處理器,則在用以 表示明示朝安全模式2移行的切換命令方面,可使用SMC(Secure Monitor Call;安全監控調用)指令。
透過管理程序20在安全模式2運作,於安全模式2運作的安全OS30,特別是RTOS30,在未切換模式下藉由仿真單元27可存取共有的裝置。再者,管理程序20於安全模式2,成為可藉由準虛擬化而對RTOS30分配資源(裝置),例如DMAC11x,可抑制RTOS30的性能降低。
圖3藉由流程圖表示此系統1中管理程序20控制(管理)複數個OS之過程。當系統1一啟動時,於步驟101,首先,設定安全模式2。其次,於步驟102,載入被儲存於屬保全區域的啟動ROM16的管理程序的韌體(程式、程式製品)14h,管理程序20被啟動。於步驟103,管理程序20藉由第1設定單元23將安全OS30用的組態(第1組態、第1作動條件)21設定為啟動時的組態(configuration)。於步驟104,處理器單元11的啟動載入器將被儲存於屬保全區域的啟動ROM16之安全OS的韌體14x載入,啟動安全OS30。
於步驟105,管理程序20的安全啟動單元50將非安全的多功能OS41的韌體〈實例〉14i備於記憶體的非保全區域18b的啟動區域18s。於步驟106,管理程序20藉由OS啟動準備單元25的第2設定單元24a將多功能OS41用的組態(第2組態,第2作動條件)22a設定為啟動時的組態。在步驟107將處理器單元11的執行模式移行至非安全模式3,於步驟108,處理器單元11的啟動載入器被儲存 於非保全區域的啟動區域18s之多功能OS41的韌體14i載入,於非安全模式3啟動多功能OS41。其他的OS42及43也可同樣地啟動。因為要在非安全模式3中控制(管理)複數個OS41~43,故亦可在啟動複數個OS41~43之前,啟動在非安全模式3運作的相異的管理程序。
當複數個OS30、41~43一啟動時,成為在其等OS之上可運作應用程式之狀態,於步驟109,系統1運作開始。在運作中,於步驟110,當發生多功能OS41對與安全OS30共用的裝置作存取時,處理器單元11係於步驟111移行至安全模式2。管理程序20的仿真單元27係於步驟112,仿真(模擬)對共用裝置之處理,將其結果儲存於記憶體之適當的或預先決定的非保全區域18b,藉以在虛擬化環境執行對共用的裝置之存取。在步驟113,將處理器單元11移行至非安全模式3,多功能OS41係繼續處理。
於步驟114,當依中斷或排程等而發生OS之切換時,於步驟115,將處理器單元11移行至安全模式2,於步驟116,管理程序20的OS切換單元26進行OS切換處理。具體言之,於既運作之多功能OS41的狀態,具體來說是將含有各CPU核心的暫存器的內容之上下文26x退避到記憶體的保全區域18a。將切換後的OS的上下文26x從記憶體的保全區域18a載入,重寫各CPU核心的暫存器的內容。若切換後的OS為例如多功能OS42,則於步驟117,將處理器單元11移行至非安全模式3,使多功能OS42再運作(再啟動)。切換後的OS若為安全OS30,則在未進行步驟117 的模式切換下使安全OS再運作。
於步驟118,當需要OS間通信時,於步驟119,使用設定在記憶體的非保全區域18b之共有區域18c進行OS間通信處理。關於此處理,詳細說明如後。
於步驟120,多功能OS41係在非安全模式3中當經由電腦網路裝置(網路介面)19a等檢出有韌體更新時,載入更新資料。於步驟121,更新單元60進行韌體的更新處理。針對此處理,後面再詳細說明。於步驟122,若系統1為運作中,則反覆上述的處理。
圖4表示管理程序20的安全啟動單元50進行將通用且非安全的多功能第2OS41安全地啟動(安全啟動)的準備之過程。圖4(a)為表示啟動過程的流程圖,圖4(b)~(e)係管理程序20使用硬體所支援的支援機能,本例中示意地表示出使用TZ機構12來許可及限制朝向記憶體區域之存取的樣子。此外,將與圖3所示之系統1的啟動過程重複的部份之步驟編號放入括弧中。
於步驟54,當系統1啟動,在處理器單元11,首先,安全模式2被設定,管理程序20啟動。於步驟55,在安全模式2的狀態運作的管理程序20的設於OS啟動準備單元25之安全啟動單元50的驗證單元51,是使用儲存於屬保全區域的安全ROM的加密金鑰EPROM15之驗證資訊15a進行儲存於屬保全區域的安全ROM的安全啟動ROM16之第2OS41的韌體14f的驗證處理(圖4(b))。
於步驟56,安全啟動單元50的展開單元52將 在步驟55驗證過的韌體14f展開於非保全區域的DDR記憶體18的非安全區域18b的啟動區域18s並解碼,形成第2OS41的韌體之執行用的實例14i(圖4(c))。
於步驟57,管理程序20將處理器單元11的狀態從安全模式2朝非安全模式(一般模式)3移行。於此環境中,成為看不見安全ROM16,不可存取,可對一般RAM18b及網路19a存取(圖4(d))。
於步驟58,進行第2OS41的啟動處理(啟動)。形成在一般RAM18b的第2OS41的韌體之執行用的實例14i藉由處理器單元11的啟動載入器載入使第2OS41啟動(圖4(e))。第2OS41係在藉由管理程序20的第2設定單元24a設定為啟動組態的第2組態22a所定義的環境下啟動、運作。因此,從第2OS41及其上作動的客戶端應用程式45可存取被設為在第2組態22a可存取的一般RAM18b及網路19a。一方面,因為在一般模式(非安全模式)3運作,故依TZ機構12而看不見安全ROM16,亦不可存取。因此,從第2OS41所管理的環境看不見儲存有會自行啟動的韌體14f之安全ROM16,亦無法寫入。因此,在第2OS41之上運作的應用程式群45無法攻撃或改變韌體14f,可擔保第2OS41的安全性。
圖5表示在安全模式2運作的管理程序20所含有的更新單元60將通用之多功能的第2OS41安全地更新(安全更新)的樣子。此更新單元60亦能以在安全OS30之上運作的應用程式提供。圖5(a)係將圖3所示之更新處理 121更具體表示的流程圖,圖5(b)~(d)係表示於更新處理中硬體所支援之記憶體保護用的支援機能,本例中示意地顯示使用TZ機構12來許可及限制朝記憶體區域之存取的樣子。
步驟65係於一般模式(非安全模式)3進行的處理,在一般模式狀態的處理器單元11運作的第2OS(非安全OS)41從網路介面19a存取外部網路並在有第2OS41的更新用的韌體14n時,將更新用的韌體14n下載於一般RAM18b。於此執行環境中,依據TZ機構12無法從第2OS41看見安全ROM16,安全ROM16不會暴露在外部受到攻撃。
之後,於適當的時序,例如,系統1要啟動時、系統1被停止運作時、處理器單元11的執行模式因其他要因素切換成安全模式2時(步驟66),管理程序20在安全模式2運作,於步驟67,更新單元60的驗證單元61將下載到一般RAM18b之韌體14n,使用儲存於屬保全區域的加密金鑰EPROM15之驗證資訊15b驗證。
一般RAM18b的更新用的韌體14n一經驗證,於步驟68,更新單元60的儲存單元62將一般RAM18b的更新用的韌體14n儲存於屬安全ROM的安全啟動ROM16,視需要,將儲存於安全啟動ROM16之韌體14f置換成被更新的韌體14n。又,視需要,將下載到一般RAM18b之更新用的韌體14n廢棄。
因為更新單元60係在安全模式2運作,故而 在非安全的一般模式3運作的非安全的多功能OS等之第2OS41被遮斷,不會受到來自於安全性未被擔保的網路等之非安全的裝置之攻撃。又,藉由使用在非安全模式3下不能被存取之儲存於保全區域的加密金鑰EPROM15之驗證資訊15b驗證被下載的韌體14n,可排除被不法改變之內容。因此,藉由更新單元60,可防止因為具有惡意的內容等而污染安全的記憶體區域。因此,可安全地更新被儲存於保全區域的安全啟動ROM16之第2OS41的韌體,之後,依上述的安全啟動單元50可安全地啟動第2OS41。
圖6利用時序圖表示用以進行OS間通信處理119之程序。雖假設將2個OS,例如將安全OS30和非安全OS41大致同時啟動,但亦能以時間差來啟動。又,在圖6所示的處理,各個OS30及OS41的各個組態21及22a所含之共有記憶體區域的作動條件21x及22x被參照,經由被設定於非保全區域之共有記憶體18c進行OS間通信。
於複數個OS在藉管理程序20虛擬化的環境運作之系統1中,被期望在多OS環境上的即時性,被要求安裝效率佳的OS間通信。經由管理程序20執行的OS間通信的一例為,管理程序20仲介全部的處理者。本例的管理程序20亦可擔任此種處理等級的OS間通信。實現OS間通信所需之基本的機能如下。
‧資料傳輸處理
‧資料接收處理
‧資料接收通知處理
‧資料傳輸結束通知
於管理程序20是仲介全部的處理之情況,資料的傳輸係運作中的某OS,例如客戶端OSa自發地呼叫管理程序20而被執行。接取到傳輸資料的管理程序20係將傳輸資料拷貝給本身所管理之傳輸目的地的其他OS,例如客戶端OSb的接收區域。資料接收通知係在資料傳輸處理結束後在管理程序20內被執行,通知係對傳輸目的地的客戶端OSb藉由使發生特定的中斷而實現。資料接收處理為,以中斷信號的型態獲知資料接收之客戶端OSb是委託管理程序20取得接收資料。此時,管理程序20將接收資料拷貝(讀出)給委託源的客戶端OSb的記憶體區域。傳輸目的地的客戶端OSb一接收資料,管理程序20即對傳輸源的客戶端OSa通知傳輸結束的事件。與資料接收通知同樣地,此通知亦使用中斷信號向客戶端OSa通知。傳輸源的客戶端OSa持有本通知而理解可傳輸如次的資料。
關於此OS間通信處理,在管理程序20執行客戶端OS所委託的通信處理期間,委託通信的客戶端OS成為停止狀態直到管理程序20的處理結束。此乃成為客戶端OS與管理程序20在相同處理器上執行的狀況所無法避免的規格。客戶端OS成為停止狀態的時間係數10微秒,在客戶端OS是Linux(註冊商標)或Android的情況中幾乎不會發生問題。然而,預想以客戶端OS正執行即時作業系統(RTOS)之情況會發生問題。又,關於在安全模式2運作的管理程序20,當欲在非安全模式3運作的客戶端OS41及42 之間及在非安全模式3運作的客戶端OS41與在安全模式2運作的安全OS30之間的通信時,有將處理器單元11的執行模式在安全與非安全作切換之必要,因此參與通信之OS的停止時間可能變長。
一般而言RTOS係為被要求對已發生的事件要在一定時間內執行處理之系統,主要用途方面可例舉機械控制。在這樣時間限制嚴格的控制系統中即使是停止數十微秒,導致致命的缺陷之可能性高。以機械控制為例,在OS間通信之處理執行中有發生需緊急停止機械之類的事件之情況,成為若OS間通信處理未結束則RTOS無法執行緊急停止處理的狀態。
本例的系統1中,透過在管理程序20於客戶端OS間之通信上設定共有記憶體而提供客戶端OS不停止或停止的時間縮短之OS間通信機能。於此OS間通信機能中,管理程序20的介入被極力限制。OS啟動時,管理程序20介入並執行各OS間的調停或起始化處理,於OS間通信處理,僅以啟動中的OS(客戶端OS)執行大部份的處理,管理程序20並未極力介入。於OS的啟動時雖會因為管理程序20介入而發生客戶端OS的停止狀態,但因為此狀況係在系統1進入運用狀態之前或對應的OS進入運用狀態之前,所以不會有問題。
透過排除管理程序20介入於OS間通信,OS間通信處理大部分是在客戶端OS彼此的控制下被執行。藉此,在RTOS於OS間通信處理中發生緊急狀況時,可快速 中斷OS間通信處理以執行緊急處理。
此系統1中,為了進行OS間通信處理所設定之共有記憶體區域18c的資訊(含有映射資訊),係能以作動條件21x及22x分別包含在啟動OS30、41~43之際的組態21及22a~22c,管理程序20進行啟動準備,於各OS30、41~43的啟動時可進行分配(映射)。共有記憶體區域18c為,管理程序20亦可被預設,亦可設為管理程序20使任一OS所設定之資訊包含於組態21或22a~22c任一並可讓其他的OS使用。
透過使用共有記憶體區域18c作為OS間通信處理所使用的收發區域,若為在非安全模式3運作的OS彼此或在安全模式2運作的OS彼此,則除了起始設定以外,可排除有關OS間通信處理之管理程序20的介入,或抑制在最小限度。在非安全模式3運作的第2OS,例如就在非安全OS41與在安全模式2運作的安全OS30之間的通信而言,在從非安全側向安全側通知之際管理程序20會參與,但除此之外可排除管理程序20的介入,或抑制在最小限度。
圖6係表示管理程序20準備共有記憶體區域18c的情況,在啟動客戶端OS的過程進行OS間通信處理的設定之程序。客戶端OS係例如在安全模式2下作動的安全OS(RTOS)30及在非安全模式3下作動的非安全OS41。藉由在非安全的記憶體區域(非保全區域)18設定共有記憶體區域18c,由於可從在安全模式2作動的OS30和在非安全模式3作動的非安全OS41雙方OS對共有記憶體區域18c 存取,故可實現即時性高的OS間通信。
管理程序20係於步驟71進行通信路徑的起始化處理。在此起始化處理,補足使用於共有記憶體區域18c,OS間通信之中斷編號,將通信路徑狀態起始化。其次,於步驟72啟動各客戶端OS,此例中為安全OS30和非安全OS41。此等OS可同時啟動,亦可輪流地啟動。
安全OS30中,於步驟73a開始OS間通信驅動器36x的起始化處理。於步驟74a,安全OS30係於啟動時取得裝置資訊並供予管理程序20,由管理程序20接取含有共有記憶體區域資訊的組態(第1組態)21。於步驟75a,進行含有共有記憶體區域的映射、中斷處置器的登錄之裝置驅動器36的設定,開始安全OS30的運用。
在非安全OS41中亦同樣,於步驟73b開始OS間通信的驅動器46x的起始化處理。於步驟74b,取得裝置資訊並供予管理程序20,由管理程序20接取含有共有記憶體區域資訊的組態(第2組態)22a。於步驟75b,進行含有共有記憶體區域的映射、中斷處置器的登錄之裝置驅動器46的設定,開始非安全OS41的運用。但是,在本事例中,非安全OS41係有必要對在安全模式2運作的安全OS30輸出通知。因此,於步驟75b,以經由管理程序20對安全OS30輸出通知的方式作設定。
管理程序20係於步驟76,在所有客戶端OS取得有關OS間通信的資訊之時點,將通信路徑設定成可通信的狀態。因此,以下,從非安全OS41朝安全OS30進行 通知時除外,於管理程序20未參與下,在安全OS30及非安全OS41之間進行OS間通信處理(步驟77)。若係非安全OS41及42之間的OS間通信處理,則於管理程序20不參與下進行OS間通信處理。
共有記憶體區域18c為可由進行通信的安全OS30及非安全OS41作參照,在安全OS30及非安全OS41可直接參照彼此的收發資料。因此,對於管理程序20介入包含資料轉送(資料輸入/輸出)在內的OS間通信處理,在此OS間通信處理中,安全OS30及非安全OS41進行資料的輸入/輸出,可將該部分裝置於各OS中。管理程序20係在起始化處理中擔任對安全OS30及非安全OS41提供有關共有記憶體18c的資訊或確保/構築共有記憶體區域之角色。
於OS間通信處理,安全OS30及非安全OS41係於執行資料的收發處理之後,向通信目的地的OS通知結束資料接收或傳輸。從安全OS30對非安全OS41的通知係使用中斷信號36q。因此,安全OS(RTOS)30係無需等待管理程序20的處理終了,可在OS間通信處理無停止下繼續處理。
一方面,從非安全OS41朝向安全OS30之通知係成為需從非安全模式3朝安全模式2移行,故管理程序20的OS間通信單元28會參與。因此,在此期間雖非安全OS41的處理會停止,但如上述在非安全OS41中數10微秒程度的停止不會發生問題。又,若是在非安全模式3運作的OS41及42彼此的話,則透過直接控制各個OS之中斷控制 器,可排除管理程序20的介入。管理程序20係擔任使組態21及22a~22c含有共有記憶體的作動條件21x、22x並對各OS30及41~43進行要利用於OS間通信之通知的中斷之設定、將其資訊通知各OS30及41~43之角色。
圖7表示客戶端OS準備共有記憶體區域18c的情況。此例中,在非安全模式3下運作的非安全OS41是準備共有記憶體區域18c,管理程序20向安全OS30授受其資訊而實現OS間通信。
對於圖6所示的程序,管理程序20準備安全OS30及非安全OS41的啟動,到提供各個的組態21及22a的處理係共通,但是起始設定之組態21及22a未含有共有記憶體區域的資訊。非安全OS41係依據組態22a設定裝置驅動器46,亦進行中斷處置器的登錄(步驟78b)。接著,於步驟79,在補足共有記憶體區域18c後,要求管理程序20將其共有記憶體區域18c登錄為用在OS間通信。
管理程序20於步驟80,登錄共有記憶體區域18c,將通信路徑設定為可通信。又,於步驟81,將由非安全OS41通知的共有記憶體區域18c設定為可從其他的客戶端OS也就是安全OS30進行存取。亦即,將共有記憶體區域的資訊21x通知安全OS30。
於安全OS30,藉由從管理程序20所提供之組態21進行包含中斷處置器在內的裝置驅動器的設定(步驟78a)。然後,當由管理程序20提供共有記憶體區域的資訊21x時,於步驟82,映射共有記憶體區域18c,將使用了共 有記憶體區域18c的OS間設為可通信。之後,在此等OS之間可進行OS間通信(步驟77)。
如同上述,若是在非安全模式3運作的客戶端OS彼此,則直接控制中斷控制器。於在安全模式2運作的OS30與在非安全模式3運作的OS41之間的通信中,依安全性方面的考量,透過僅從非安全模式3的OS41朝安全模式2的OS30之通知處理是委託管理程序20,可在未犧牲安全性下縮短OS間通信所需的處理時間。
上述的例子係以為了支援安全的環境而組裝有TZ機構之處理器11為例所作的說明,但在組裝有VZ機構或VT機構之處理器中亦同樣可實現安全啟動、安全更新。在VZ機構或VT機構中,根模式(root mode)狀態對應於安全模式狀態,客戶端模式狀態對應於一般模式狀態(非安全模式狀態)。
RTOS30係在安全的環境作動之OS的一例,亦可使Iinux(註冊商標)等之多功能的OS在安全的環境作動,亦可為其他的嵌入型的OS,例如,事件驅使型或持有非搶先多工(non-preemptive)型的排程器之多工型的嵌入OS(rmultitasking embedded operating system)。
如以上所說明,系統1所含有的管理程序20係包含在安全的環境啟動OS30的第1作動條件(第1組態)及在非安全的環境啟動OS41~43的第2作動條件(第2組態),係可使複數個OS在相異的環境作動之裸機樣式的管理程序。此管理程序20係精簡且管理程序20讓CPU運作 的負荷非常低,可實現1%左右或以下,CPU(處理單元、處理器)的使用效率佳。因此,具備管理程序20的系統,特別是SoC等之嵌入系統,即便是使用性能沒那麼高的CPU之系統亦能在安全的環境啟動各式各樣的客戶端應用程式45。因此,客戶端應用程式45藉由含有管理程序20的嵌入系統1而控制各式各樣的裝置,例如,智慧家電、健康穿戴設備、家庭能源管理系統(HEMS)、智慧電錶、印表機等之針對用戶的週邊設備,且於車載電腦環境中能低成本提供安全的環境。
1‧‧‧系統
2‧‧‧安全模式
3‧‧‧低安全模式(非安全模式、一般模式)
10‧‧‧硬體平台
11‧‧‧處理器(處理器單元)
11x‧‧‧DMAC
11t‧‧‧計時部
12‧‧‧支援機構、TZ機構
12a、12b‧‧‧記憶體空間
14f‧‧‧韌體
14h‧‧‧韌體(程式、程式製品)
14i‧‧‧韌體〈實例〉
14n‧‧‧韌體、更新用的韌體
14x‧‧‧韌體
15‧‧‧加密金鑰EPROM、安全的記憶體
15a、15b‧‧‧驗證資訊
16‧‧‧安全啟動ROM、啟動ROM、安全啟動用的記憶體
17‧‧‧安全核心RAM
18‧‧‧通用RAM、DDR記憶體
18a‧‧‧保全區域(安全區域)
18b‧‧‧非保全區域(非安全區域)
18c‧‧‧共有區域
18s‧‧‧啟動區域
19a‧‧‧網路裝置、網路介面、網路
19b‧‧‧通用介面裝置
20‧‧‧管理程序
21‧‧‧組態(第1組態、第1作動條件)
22a~22c‧‧‧組態
21x‧‧‧資訊、作動條件
22x‧‧‧作動條件
23‧‧‧第1設定單元
24a~24c‧‧‧第2設定單元
25‧‧‧啟動準備單元
26‧‧‧OS切換單元
26a‧‧‧單元
26x‧‧‧上下文
27‧‧‧仿真單元
27a‧‧‧樣式(第1樣式)
27b‧‧‧樣式(第2樣式)
27c‧‧‧樣式(第3樣式)
28‧‧‧OS間通信單元
35‧‧‧應用程式群
36‧‧‧裝置驅動器
36q‧‧‧中斷、中斷信號
36x‧‧‧驅動器、裝置驅動器、通信驅動器
41~43‧‧‧OS
45‧‧‧客戶端應用程式群
46‧‧‧裝置驅動器
46x‧‧‧驅動器
50‧‧‧安全啟動單元
51‧‧‧驗證單元、第1驗證單元
52‧‧‧展開單元
60‧‧‧更新單元(安全更新單元)
61‧‧‧驗證單元、第2驗證單元
62‧‧‧儲存單元

Claims (15)

  1. 一種系統,具有:處理單元,其包含禁止朝含有保全區域及非保全區域之記憶體的前述保全區域存取之支援機能、且具備含有低安全模式及安全模式之執行模式,該低安全模式,依前述支援機能而被禁止朝前述保全區域存取,該安全模式被許可朝前述保全區域存取;及管理程序,在前述處理單元的前述安全模式下運作,前述管理程序包含:第1設定單元,該第1設定單元對在前述安全模式下運作的第1OS設定含有可朝前述保全區域及前述非保全區域存取之第1作動條件;第2設定單元,該第2設定單元對前述低安全模式下運作的第2OS設定第2作動條件,該第2作動條件包含設定可對前述非保全區域之存取,使用前述支援機能設定不可對前述保全區域存取,且藉由對與前述第1OS共用的第1裝置存取而移行至前述安全模式;及仿真單元,將前述第1裝置虛擬化並供予前述第2OS。
  2. 如請求項1之系統,其中前述第1作動條件係包含設定不可對含有低安全的電腦網路之非保全裝置存取,前述第2作動條件係包含設定可對前述非保全裝置存取。
  3. 如請求項1或2之系統,其中前述管理程序係包含切換含有前述第1OS及前述第2OS的複數個OS之OS切換單元,前述OS切換單元包含將前述 複數個OS的作動條件及前述複數個OS的上下文各自儲存於前述保全區域之單元。
  4. 如請求項1至3中任一項之系統,其中前述管理程序係具有OS啟動準備單元,前述OS啟動準備單元包含:第1驗證單元,將儲存於前述保全區域的前述第2OS的韌體,使用儲存於前述保全區域的驗證資訊作驗證;及展開單元,將儲存於前述保全區域之已驗證的前述第2OS的韌體,在前述非保全區域的啟動區域展開成執行用的實例。
  5. 如請求項4之系統,其中更具有在前述安全模式下運作的更新單元,前述更新單元包含:第2驗證單元,將下載到前述非保全區域的更新用的韌體,使用儲存於前述保全區域的驗證資訊作驗證;及儲存單元,將下載到前述非保全區域的已驗證的前述更新用的韌體儲存於前述保全區域。
  6. 如請求項1至5中任一項之系統,其中前述第1作動條件及前述第2作動條件係包含設定於前述非保全區域之共有的記憶體區域的作動條件。
  7. 如請求項6之系統,其中前述共有的記憶體區域的作動條件係包含當前述第2OS寫入前述共有的記憶體區域時朝前述安全模式移行,前述管理程序係包含一將已寫入前述共有的記憶體區域通 知前述第1OS的單元,前述第1OS係包含一當寫入前述共有的記憶體區域時藉中斷通知前述第2OS的單元。
  8. 如請求項1至7中任一項之系統,其中具有搭載著前述記憶體和前述處理單元之系統晶片。
  9. 如請求項1至8中任一項之系統,其中更具有:在前述第2OS上運作的應用程式;及利用前述應用程式控制的裝置。
  10. 一種於以下的系統中控制複數個OS之方法,該系統具有處理單元,該處理單元包含禁止朝含有保全區域及非保全區域之記憶體的前述保全區域存取之支援機能、且具備含有低安全模式及安全模式之執行模式,該低安全模式,依前述支援機能而被禁止朝前述保全區域存取,該安全模式被許可朝前述保全區域存取,前述系統係包含在前述處理單元的前述安全模式下運作的管理程序,該方法包含前述管理程序為:設定第1作動條件,該第1作動條件包含對在前述安全模式下運作的第1OS設定可朝前述保全區域及前述非保全區域存取;設定第2作動條件,該第2作動條件包含對前述低安全模式下運作的第2OS設定可對前述非保全區域存取,使用前述支援機能設定不可對前述保全區域存取,且藉由對與前述第1OS共用的第1裝置存取而移行至前述安全模式;及將前述第1裝置虛擬化並供予前述第2OS。
  11. 如請求項10之方法,其中進一步,前述管理程序包含切換含有前述第1OS及前述第2OS的前述複數個OS,切換前述OS係包含將前述複數個OS的作動條件及前述複數個OS的上下文各自儲存於前述保全區域。
  12. 如請求項10或11之方法,其中進一步,前述管理程序是包含準備OS的啟動,前述準備OS的啟動係包含:將儲存於前述保全區域的前述第2OS的韌體,使用儲存於前述保全區域的驗證資訊作驗證;及將儲存於前述保全區域的已驗證的前述第2OS的韌體,在前述非保全區域的啟動區域展開成執行用的實例。
  13. 如請求項12之方法,其中,前述系統更包含在前述安全模式下運作的更新單元,該方法為前述更新單元包含:將下載到前述非保全區域的更新用的韌體,使用儲存於前述保全區域的驗證資訊作驗證,將下載到前述非保全區域的已驗證的前述更新用的韌體儲存於前述保全區域。
  14. 如請求項10至13中任一項之方法,其中前述第1作動條件及前述第2作動條件係包含設定於前述非保全區域之共有的記憶體區域的作動條件,該方法包含:當前述第2OS寫入前述共有的記憶體區域時朝前述安全模 式移行,前述管理程序將已寫入前述共有的記憶體區域通知前述第1OS;及前述第1OS寫入前述共有的記憶體區域時藉由中斷而通知前述第2OS。
  15. 一種於以下的系統中可控制複數個OS之程式,該系統具有處理單元,該處理單元包含禁止朝含有保全區域及非保全區域之記憶體的前述保全區域存取之支援機能、且具備含有低安全模式及安全模式之執行模式,該低安全模式,依前述支援機能而被禁止朝前述保全區域存取,該安全模式被許可朝前述保全區域存取,該程式係包含在前述處理單元的前述安全模式下使管理程序運作的命令,前述管理程序執行:對在前述安全模式下運作的第1OS設定含有可朝前述保全區域及前述非保全區域存取之第1作動條件;對在前述低安全模式下運作的第2OS設定第2作動條件,該第2作動條件包含設定可對前述非保全區域存取,使用前述支援機能設定不可對前述保全區域存取,且藉由對與前述第1OS共用的第1裝置存取而移行至前述安全模式;及將前述第1裝置虛擬化並供予前述第2OS。
TW105127311A 2015-08-25 2016-08-25 具有管理程序的系統 TW201710947A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015165785 2015-08-25
JP2016026955 2016-02-16

Publications (1)

Publication Number Publication Date
TW201710947A true TW201710947A (zh) 2017-03-16

Family

ID=58100406

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105127311A TW201710947A (zh) 2015-08-25 2016-08-25 具有管理程序的系統

Country Status (6)

Country Link
US (1) US10902112B2 (zh)
EP (1) EP3343419A1 (zh)
JP (3) JP6130612B1 (zh)
CN (1) CN107924441A (zh)
TW (1) TW201710947A (zh)
WO (1) WO2017034008A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6723863B2 (ja) * 2016-08-01 2020-07-15 オリンパス株式会社 組み込みシステム、撮影機器及びリフレッシュ方法
JP6615726B2 (ja) * 2016-09-16 2019-12-04 株式会社東芝 情報処理装置、情報処理方法及びプログラム
US11010475B1 (en) * 2016-10-07 2021-05-18 Janus Technologies Inc. Secure computer with multiple operating systems
WO2019012956A1 (ja) * 2017-07-11 2019-01-17 株式会社Seltech センシング装置、センシングシステム、およびサーバ
WO2019012958A1 (ja) * 2017-07-11 2019-01-17 株式会社Seltech ハイパーバイザプログラム
JP7026298B2 (ja) * 2017-09-29 2022-02-28 積水ハウス株式会社 セキュアモードとノンセキュアモードとを選択的に切り替え可能なシステム
KR102436485B1 (ko) * 2017-11-20 2022-08-26 삼성전자주식회사 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
JP6776292B2 (ja) * 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP7006461B2 (ja) * 2018-04-02 2022-01-24 株式会社デンソー 電子制御装置および電子制御システム
JP6877388B2 (ja) * 2018-07-09 2021-05-26 株式会社東芝 情報処理装置、移動体、情報処理方法、およびプログラム
EP3611642B1 (en) * 2018-08-17 2020-08-12 Omron Corporation Method for operating an industrial pc device and industrial pc device
EP3617927B1 (en) * 2018-08-30 2021-06-30 OpenSynergy GmbH Control unit and method for operating a control unit
JP2020135555A (ja) * 2019-02-21 2020-08-31 Necソリューションイノベータ株式会社 処理実行方法
JP7141977B2 (ja) * 2019-03-29 2022-09-26 株式会社デンソーテン 制御装置および制御方法
US11163457B2 (en) 2019-06-24 2021-11-02 International Business Machines Corporation Authorizing modification of resources
DE112019007432B4 (de) * 2019-06-27 2024-02-08 Mitsubishi Electric Corporation Elektronische steuereinheit und programm
CN111124664B (zh) 2019-11-22 2023-12-08 华为技术有限公司 第一操作系统访问第二操作系统资源的方法和装置
US11461474B2 (en) * 2020-01-24 2022-10-04 International Business Machines Corporation Process-based virtualization system for executing a secure application process
KR20210128628A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 전자 장치와, 이를 위한 데이터 저장 장치 및 동작 방법
CN113656086A (zh) * 2020-04-28 2021-11-16 瑞昱半导体股份有限公司 安全存储及加载固件的方法及电子装置
CN113849261A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 处理数据的方法、主机及装置
KR20220017319A (ko) * 2020-08-04 2022-02-11 삼성전자주식회사 메모리 보호 방법 및 전자 장치
JP2022048019A (ja) * 2020-09-14 2022-03-25 パナソニックIpマネジメント株式会社 情報処理装置、情報処理方法、および、プログラム
US11347497B1 (en) * 2021-01-05 2022-05-31 Vmware, Inc. Uniform software and firmware management of clusters of heterogeneous server hardware
US11954206B2 (en) * 2021-03-05 2024-04-09 Infineon Technologies LLC Systems, methods, and devices for secured nonvolatile memories
US20230092808A1 (en) * 2021-09-17 2023-03-23 Mediatek Inc. Model protection system
EP4287054A1 (en) * 2022-06-03 2023-12-06 Siemens Aktiengesellschaft Computer implemented method for updating a safety software code, computer hardware device, computer program and a computer-readable medium

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19959434A1 (de) * 1999-12-09 2001-06-21 Siemens Ag Verfahren zur Änderung des Betriebssystems eines Telekommunikationsendgerätes
US20020184404A1 (en) * 2001-06-01 2002-12-05 Kenneth Lerman System and method of maintaining a timed event list
US7664903B2 (en) * 2002-02-25 2010-02-16 Solid Access Technologies LLC Control unit with PCI and SCSI buses and computing system with electronic semiconductor disk
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
GB2396712B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Handling multiple interrupts in a data processing system utilising multiple operating systems
RU2005115083A (ru) * 2002-11-18 2006-01-20 Арм Лимитед (Gb) Переключение процессора между защищенным и незащищенным режимами
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
US8467528B2 (en) * 2006-08-31 2013-06-18 Advanced Micro Devices, Inc. Multimedia content protection
EP2126694A2 (en) * 2006-12-22 2009-12-02 VirtualLogix SA System for enabling multiple execution environments to share a device
US8285987B1 (en) * 2009-12-04 2012-10-09 The United States Of America As Represented By The Secretary Of The Air Force Emulation-based software protection
US8739177B2 (en) 2010-06-21 2014-05-27 Intel Corporation Method for network interface sharing among multiple virtual machines
US8522322B2 (en) * 2010-09-22 2013-08-27 Intel Corporation Platform firmware armoring technology
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
US20120216189A1 (en) * 2011-02-22 2012-08-23 Subash Kalbarga Methods, Devices and Computer Program Products for Emulating a Physical Hard Drive as Multiple Virtual Hard Drives
CA3108026A1 (en) * 2011-06-13 2012-12-27 Lynx Software Technologies Inc. Systems and methods of secure domain isolation
GB2499287A (en) 2012-02-08 2013-08-14 Advanced Risc Mach Ltd Exception handling in data processing with different security domains
KR20130101632A (ko) * 2012-02-16 2013-09-16 삼성전자주식회사 콘텐츠 보안 장치 및 방법
KR20130101648A (ko) * 2012-02-22 2013-09-16 한국전자통신연구원 가상화를 위한 보안 제공 장치 및 방법
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US9355050B2 (en) * 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management
US10269167B1 (en) * 2018-05-21 2019-04-23 Apple Inc. Indirect command buffers for graphics processing

Also Published As

Publication number Publication date
JP2017146974A (ja) 2017-08-24
WO2017034008A1 (ja) 2017-03-02
JPWO2017034008A1 (ja) 2017-08-24
JP6130617B1 (ja) 2017-05-17
EP3343419A1 (en) 2018-07-04
US10902112B2 (en) 2021-01-26
JP6130612B1 (ja) 2017-05-17
US20180239896A1 (en) 2018-08-23
CN107924441A (zh) 2018-04-17
JP2017162483A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
TW201710947A (zh) 具有管理程序的系統
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
GB2531844B (en) Hardware-protective data processing systems and methods using an application executing in a secure domain
Lentz et al. Secloak: Arm trustzone-based mobile peripheral control
CN109918919B (zh) 认证变量的管理
JP5055380B2 (ja) 保護エージェント及び特権モード
JP4345630B2 (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
US9274823B1 (en) Thin hypervisor for native execution of unsafe code
JP4805238B2 (ja) セキュアなロケーションアウェアプラットフォームを可能にする方法、装置及びシステム
US10146940B2 (en) Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems
EP3651042A1 (en) Method for switching between virtualized and non-virtualized system operation
WO2015175942A1 (en) Method and apparatus for on-demand i/o channels for secure applications
JP5118706B2 (ja) トラステッドプラットフォームモジュールを共有するためのシステム及び方法
JP2010514028A (ja) 単一データ処理を共有するために複数の実行環境を有効化するシステム
TW200842646A (en) Protecting operating-system resources
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods
WO2022135429A1 (zh) 快速启动方法
CN110348223B (zh) 基于双体系结构可信计算平台的静态度量方法
US20220114009A1 (en) Formally Verified Trusted Computing Base with Active Security and Policy Enforcement
JP2020042341A (ja) プロセッシングデバイス及びソフトウェア実行制御方法
Liebergeld et al. Towards modular security-conscious virtual machines
Hamayun et al. Towards hard real-time control and infotainment applications in automotive platforms
WO2013189180A1 (zh) 虚拟化系统中关闭中断的方法和装置