JP2023503110A - 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置 - Google Patents

第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置 Download PDF

Info

Publication number
JP2023503110A
JP2023503110A JP2022529685A JP2022529685A JP2023503110A JP 2023503110 A JP2023503110 A JP 2023503110A JP 2022529685 A JP2022529685 A JP 2022529685A JP 2022529685 A JP2022529685 A JP 2022529685A JP 2023503110 A JP2023503110 A JP 2023503110A
Authority
JP
Japan
Prior art keywords
operating system
kernel
address space
page table
information
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2022529685A
Other languages
English (en)
Other versions
JP7443519B2 (ja
Inventor
▲鵬▼ 左
小▲強▼ 杜
勇 ▲陳▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2023503110A publication Critical patent/JP2023503110A/ja
Application granted granted Critical
Publication of JP7443519B2 publication Critical patent/JP7443519B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • 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
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/463Naming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

この出願は、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置を提供する。第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、第1のオペレーティングシステムが初期化されるときに、カーネルページテーブル及びユーザページテーブルを記憶するためのメモリを下位アドレス空間に構成するとともに、上位アドレス空間を確保するステップと、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を第2のオペレーティングシステムから取得するステップと、上位アドレス空間が第2のオペレーティングシステムのカーネルリソースに直接アクセスできるようにされるように、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて第1のオペレーティングシステムの上位アドレス空間のレジスタを構成するステップとを含む。この出願で提供される技術的解決策によれば、第2のオペレーティングシステムのリソースに直接アクセスする際の第1のオペレーティングシステムの性能を向上させることができる。

Description

この出願は、その全体が参照により本願に組み入れられる、2019年11月22日に出願された「第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置」と題される中国特許出願第201911156149.8号の優先権を主張する。
この出願は、コンピュータ技術の分野に関し、より具体的には、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置に関する。
コンピュータ技術の継続的な発展に伴い、電子デバイスのセキュリティが益々注目されている。電子デバイス上のリッチ実行環境(rich execution environment,REE)技術は、セキュリティ要件を満たすことができない。セキュリティを向上させるために、他の悪意のある第三者ソフトウェアアプリケーションによって改ざんされることなく機密データが安全で信頼できるアイソレーションオペレーティングシステムで処理されるようにするために、信頼できる実行環境(trusted execution environment,TEE)の概念が提供される。TEEオペレーティングシステム(operating system,OS)は、電子デバイス上でREE OSと共存し、REE OSに信頼できるセキュリティサービスを提供するとともに、独自の実行空間を有し、REE OSよりも高いセキュリティレベルを有する実行環境である。また、TEE OSがアクセス可能なソフトウェア及びハードウェアリリソースは、REE OSから分離される。TEE OSは、アイソレーションオペレーティングシステムである。TEE OSがピアREE OSリソースにアクセスする必要があるとき、TEE OSは、2つのオペレーティングシステム内の異なるページテーブル(page tables)に起因してREE OSリソースに直接アクセスすることができない。その結果、TEE OSに配置された動的完全性測定モジュールは、REE OSに完全性保護を与える際の性能が低い。したがって、第2のオペレーティングシステムのリソースにアクセスする際の第1のオペレーティングシステムの性能をどのように向上させるかが解決されるべき緊急の課題となる。
この出願は、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置を提供する。第1のオペレーティングシステム内の上位アドレス空間が確保され、また、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成を再使用し、それにより、第1のオペレーティングシステムは、上位アドレス空間が第2のオペレーティングシステムのカーネル空間内のリソースに直接にアクセスできるようにし得る。これにより、第2のオペレーティングシステムのリソースにアクセスする際の第1のオペレーティングシステムの性能が向上する。
第1の態様によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法が提供され、この方法は、第1のオペレーティングシステムによって実行されてもよく、又は、第1のオペレーティングシステム内のチップ又は回路によって実行されてもよい。説明を容易にするために、以下では、説明のために第1のオペレーティングシステムが方法を実行する一例を使用する。
第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、第1のオペレーティングシステムのカーネル空間及びユーザ空間が第1のオペレーティングシステムの第1のアドレス空間に構成され、第2のアドレス空間が第2のオペレーティングシステムのために確保されることを含む。第1のオペレーティングシステムの仮想メモリアドレス空間は、第1のアドレス空間及び第2のアドレス空間を含む。第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得する。第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて第1のオペレーティングシステムの第2のレジスタを構成する。第2のレジスタは、第1のオペレーティングシステムの第2のアドレス空間に対応する。第1のオペレーティングシステムは、第2のアドレス空間を使用することによって第2のオペレーティングシステムのカーネル空間内のリソースにアクセスする。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第1のオペレーティングシステムは、第1のオペレーティングシステム内の上位アドレス空間を確保することによって、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づき、第1のオペレーティングシステムの上位アドレス空間に対応する第2のレジスタを構成し、それにより、第1のオペレーティングシステムは、確保された上位アドレス空間を有効にするときに第2のオペレーティングシステムのカーネル空間内のリソースに直接にアクセスすることができ、これにより、第2のオペレーティングシステムのリソースにアクセスする際の第1のオペレーティングシステムの性能が向上する。
第1の態様に関連して、第1の態様の幾つかの実施では、第1のアドレス空間が上位アドレス空間であり、第2のアドレス空間が下位アドレス空間であり、また、第1のオペレーティングシステムの上位アドレス空間の範囲は第2のオペレーティングシステムのカーネルアドレス空間の範囲と一致する。
前述の「第1のアドレス空間」及び「第2のアドレス空間」はそれぞれ、第1のオペレーティングシステムにおける下位アドレス空間及び上位アドレス空間を指し、説明の制限を回避するために「第1のアドレス空間」及び「第2のアドレス空間」として説明されることが理解されるべきである。この出願の保護範囲は限定されない。
加えて、確保された上位アドレス空間を有効にするときに第1のオペレーティングシステムが第2のオペレーティングシステムのカーネル空間内のリソースに直接にアクセスできることを達成するために、第1のオペレーティングシステムの上位アドレス空間の範囲は、第2のオペレーティングシステムのカーネルアドレス空間の範囲と一致する。
第1の態様に関連して、第1の態様の幾つかの実施において、方法は、第1のオペレーティングシステムが第2のオペレーティングシステムによって送信されるカーネルシンボルテーブル情報を受信することを更に含む。第1のオペレーティングシステムは、カーネルシンボルテーブル情報を解析して第2のオペレーティングシステムの上位アドレス空間の変換関係を取得し、ユーザプロセスのユーザページテーブルベースアドレス情報を取得するとともに、変換関係を使用することによってレベルごとにユーザページテーブルエントリのコンテンツを読み出して、第2のオペレーティングシステムのユーザ空間内のリソースにアクセスする。
更に、第1のオペレーティングシステムは、第2のオペレーティングシステムの上位アドレス空間とユーザプロセスのユーザページテーブルベースアドレス情報との変換関係を取得するために、第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得することができる。変換関係が既知であることを前提として、第1のオペレーティングシステムは、レベルごとにユーザページテーブルエントリのコンテンツを読み出し、第2のオペレーティングシステムのユーザ空間内のリソースにアクセスすることができる。
第1の態様に関連して、第1の態様の幾つかの実施において、第1のオペレーティングシステムのカーネル空間及びユーザ空間が第1のオペレーティングシステムの第1のアドレス空間に構成されることは、第1のオペレーティングシステムが、第1のオペレーティングシステム内のカーネルページテーブル及びユーザページテーブルを第1のアドレス空間のページテーブルメモリ内に記憶することを含む。第1のオペレーティングシステムは、第1のアドレス空間のページテーブルメモリを第1のオペレーティングシステムの第1のレジスタに構成する。
上位アドレス空間を確保する態様が提供され。すなわち、カーネルページテーブル及びユーザページテーブルの両方が下位アドレス空間のページテーブルメモリに記憶される。
第1の態様に関連して、第1の態様の幾つかの実施において、第2のアドレス空間が第2のオペレーティングシステムのために確保されることは、第1のオペレーティングシステムが第2のオペレーティングシステムの上位アドレス空間に基づいて第2のアドレス空間を確保することを含む。
具体的には、上位アドレス空間を確保する際、第1のオペレーティングシステムは、第2のオペレーティングシステムの上位アドレス空間の範囲を参照し、それにより、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて、第1のオペレーティングシステムの上位アドレス空間に対応する第2のレジスタをうまく構成することができる。
第1の態様に関連して、第1の態様の幾つかの実施において、方法は、第1のオペレーティングシステムが第2のオペレーティングシステムによって送信される要求メッセージを受信することを更に含む。要求メッセージは、第2のオペレーティングシステムのカーネルシンボルテーブル情報及びカーネルページテーブルのレジスタ構成情報を伝送する。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのカーネルシンボルテーブル情報及びカーネルページテーブルのレジスタ構成情報を取得することは、第2のオペレーティングシステムによって送信される受信された要求メッセージが第2のオペレーティングシステムのカーネルシンボルテーブル情報及びカーネルページテーブルのレジスタ構成情報を伝送することであってもよい。
第1の態様に関連して、第1の態様の幾つかの実施において、クライアントアプリケーション(CA)は第1のオペレーティングシステムに配置される。第1のオペレーティングシステムが第2のオペレーティングシステムのために第2のアドレス空間を確保することは、CA初期化プロセスにおいて、第1のオペレーティングシステムの第2のレジスタの構成が第2のオペレーティングシステムの上位レジスタの構成と同じであるように、第1のオペレーティングシステムのカーネルページテーブルのレジスタの構成が第2のオペレーティングシステムのレジスタ構成情報に基づいて修正されることを含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、クライアントアプリケーション(client application,CA)は第1のオペレーティングシステムに配置される。CAは、第1のオペレーティングシステムの第2のレジスタの構成が第2のオペレーティングシステムの上位レジスタの構成と同じであるように、第2のオペレーティングシステムの受信されたレジスタ構成情報に基づいて第1のオペレーティングシステムのレジスタの構成を修正するように初期化される。これは、第1のオペレーティングシステムが第2のオペレーティングシステムのレジスタの構成をどのように再使用するかについての実現可能な解決策を提供する。
第1の態様に関連して、第1の態様の幾つかの実施において、第1のオペレーティングシステム内のカーネルページテーブル及びユーザページテーブルを第1のアドレス空間のページテーブルメモリ内に記憶する前に、方法は、第1のオペレーティングシステムがユーザアクセス不可能な許可制御をカーネルページテーブルに付加すること、及び、第1のオペレーティングシステムが特権非実行(PXN)保護をユーザページテーブルに付加することを更に含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第1のオペレーティングシステム内のカーネルページテーブル及びユーザページテーブルは、同じページテーブルメモリに記憶される。カーネルページテーブル及びユーザページテーブルのセキュリティ要件を満たすために、ユーザアクセス不可能な許可制御がカーネルページテーブルに付加され、また、特権非実行(PXN)保護がユーザページテーブルに付加され、それにより、カーネルページテーブルとユーザページテーブルとが確実に独立するようになる。
第1の態様に関連して、第1の態様の幾つかの実施において、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報は、アドレス変換コントローラの構成情報、メモリ属性コントローラの構成情報、及びカーネル空間ページテーブルベースアドレスレジスタの構成情報を含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第1のオペレーティングシステムによって受信される第2のオペレーティングシステムのレジスタ構成情報は、第1のオペレーティングシステムが第2のオペレーティングシステムのレジスタ構成を再使用するためのより包括的な選択を与えるように、複数のタイプの構成情報を含む。
第1の態様に関連して、第1の態様の幾つかの実施において、動的完全性測定モジュールが第1のオペレーティングシステムに配置され、動的完全性測定モジュールは、第2のオペレーティングシステムにセキュリティサービスを提供するように構成される。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第1のオペレーティングシステムは、第2のオペレーティングシステムにセキュリティ保護を提供するために動的完全性測定モジュールを含み得る。
第1の態様に関連して、第1の態様の幾つかの実施において、第1のオペレーティングシステムが第2のオペレーティングシステムのカーネル空間内のリソースにアクセスする間に例外が生じる場合、第1のオペレーティングシステムは、例外関連情報を第2のオペレーティングシステムに送信する。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、システム間共通のリソースアクセスで例外が生じる場合、第1のオペレーティングシステムは、アクセスされた第2のオペレーティングシステムに例外に関する関連情報を通知することができ、それにより、第2のオペレーティングシステムはアクセス例外が生じることを知ることができる。
第1の態様に関連して、第1の態様の幾つかの実施において、リモートプロシージャコール(RPC)サービスが第1のオペレーティングシステムに配置される。第1のオペレーティングシステムが例外関連情報を第2のオペレーティングシステムに送信することは、RPCサービスが例外関連情報を第2のオペレーティングシステムに送信することを含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、リモートプロシージャコール(RPC)サービスが第1のオペレーティングシステムに配置され得る。アクセス例外が生じると、第1のオペレーティングシステムは、RPCサービスを使用することによって例外情報を第2のオペレーティングシステムに通知する。
第2の態様によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法が提供され、該方法は、第2のオペレーティングシステムによって実行されてもよく、或いは、第2のオペレーティングシステム内のチップ又は回路によって実行されてもよい。説明を容易にするために、以下では、説明のために第2のオペレーティングシステムが方法を実行する例を使用する。
第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、第2のオペレーティングシステムが第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得することを含む。第2のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を第1のオペレーティングシステムに送信する。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報は、システム間共通のリソースアクセスシナリオでアクセスされたリソースの第2のオペレーティングシステムから取得することができ、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報は、第1のオペレーティングシステムに送信される。このようにすると、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成を再使用することができ、それにより、システム間リソースアクセス性能が向上する。
第2の態様に関連して、第2の態様の幾つかの実施において、方法は、第2のオペレーティングシステムが第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得することを更に含む。第2のオペレーティングシステムは、カーネルシンボルテーブル情報を第1のオペレーティングシステムに送信する。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第2のオペレーティングシステムのカーネルシンボルテーブル情報は、システム間共通のリソースアクセスシナリオでアクセスされたリソースの第2のオペレーティングシステムから取得することができ、カーネルシンボルテーブル情報は、第1のオペレーティングシステムに送信される。このようにすると、第1のオペレーティングシステムは、レベルごとに第2のオペレーティングシステムのユーザページテーブルにアクセスすることができ、それにより、システム間リソースアクセス性能が向上する。
第2の態様に関連して、第2の態様の幾つかの実施では、カーネルドライバモジュールが第2のオペレーティングシステムに配置される。第2のオペレーティングシステムが第2のオペレーティングシステムのカーネルページテーブルのカーネルシンボルテーブル情報及び/又はレジスタ構成情報を取得することは、カーネルドライバモジュールが第2のオペレーティングシステムのカーネルページテーブルのカーネルシンボルテーブル情報及び/又はレジスタ構成情報を取得することを含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第2のオペレーティングシステムのカーネルシンボルテーブル情報及び第2のオペレーティングシステムのレジスタ構成情報を第2のオペレーティングシステムから取得することができることは、カーネルドライバモジュールが第2のオペレーティングシステムに配置され、カーネルドライバモジュールが第2のオペレーティングシステムのカーネルシンボルテーブル情報及びレジスタ構成情報を取得するように構成されることであってもよい。
第2の態様に関連して、第2の態様の幾つかの実施において、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報は、アドレス変換コントローラの構成情報、メモリ属性コントローラの構成情報、及びカーネル空間ページテーブルベースアドレスレジスタの構成情報を含む。
この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法によれば、第2のオペレーティングシステムのレジスタ構成情報は、第1のオペレーティングシステムが第2のオペレーティングシステムのレジスタ構成を再使用するためのより包括的な選択を与えるように、複数のタイプの構成情報を含む。
第3の態様によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が提供される。第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、第1の態様に記載された方法における第1のオペレーティングシステムの機能を実装するように構成されるプロセッサを含む。
任意選択で、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、メモリを更に含んでもよく、メモリはプロセッサに接続され、プロセッサは、第1の態様に記載された方法における第1のオペレーティングシステムの機能を実装するように構成される。想定し得る実施において、メモリは、プログラム命令及びデータを記憶するように構成される。メモリはプロセッサに接続される。プロセッサは、メモリに記憶されたプログラム命令を呼び出して実行することができ、第1の態様に記載された方法における第1のオペレーティングシステムの機能を実装するように構成される。
任意選択で、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、通信インタフェースを更に含んでもよく、通信インタフェースは、第1のオペレーティングシステムが他のデバイスと通信するために第2のオペレーティングシステムのリソースにアクセスするための装置によって使用される。第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が第1のオペレーティングシステムである場合、通信インタフェースは、トランシーバ、入出力インタフェース、回路などである。
想定し得る形態において、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、プロセッサ及び通信インタフェースを含む。
プロセッサは、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が第1の態様に記載された任意の方法を実施するように、コンピュータプログラムを実行するべく構成される。
プロセッサは、通信インタフェースを介して外部と通信する。
外部は、プロセッサ以外の対象であってもよく、装置以外の対象であってもよいことが理解され得る。
他の想定し得る形態において、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、チップ又はチップシステムである。通信インタフェースは、チップ又はチップシステム上の入力/出力インタフェース、インタフェース回路、出力回路、入力回路、ピン、関連回路などであってもよい。或いは、プロセッサは、処理回路又は論理回路であってもよい。
第4の態様によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が提供される。第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、第2の態様に記載された方法における第2のオペレーティングシステムの機能を実装するように構成されるプロセッサを含む。
任意選択で、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、メモリを更に含んでもよく、メモリはプロセッサに接続され、プロセッサは、第2の態様に記載された方法における第2のオペレーティングシステムの機能を実装するように構成される。想定し得る実施において、メモリは、プログラム命令及びデータを記憶するように構成される。メモリはプロセッサに接続される。プロセッサは、メモリに記憶されたプログラム命令を呼び出して実行することができ、第2の態様に記載された方法における第2のオペレーティングシステムの機能を実装するように構成される。任意選択で、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、通信インタフェースを更に含んでもよく、通信インタフェースは、第1のオペレーティングシステムが他のデバイスと通信するために第2のオペレーティングシステムのリソースにアクセスするための装置によって使用される。第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が第2のオペレーティングシステムである場合、通信インタフェースは、トランシーバ、入出力インタフェース、回路などである。
想定し得る形態において、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、プロセッサ及び通信インタフェースを含む。
プロセッサは、通信インタフェースを介して外部と通信する。
プロセッサは、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置が第2の態様に記載された任意の方法を実施するように、コンピュータプログラムを実行するべく構成される。
外部は、プロセッサ以外の対象であってもよく、装置以外の対象であってもよいことが理解され得る。
他の想定し得る形態において、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置は、チップ又はチップシステムである。通信インタフェースは、チップ又はチップシステム上の入力/出力インタフェース、インタフェース回路、出力回路、入力回路、ピン、関連回路などであってもよい。或いは、プロセッサは、処理回路又は論理回路であってもよい。
第5の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体は、コンピュータプログラムを記憶する。コンピュータプログラムが通信装置によって実行されると、通信装置は、第1の態様及び第1の態様の想定し得る実施のいずれか1つに係る方法を実施可能となる。
第6の態様によれば、コンピュータ可読記憶媒体が提供される。コンピュータ可読記憶媒体は、コンピュータプログラムを記憶する。コンピュータプログラムが通信装置によって実行されると、通信装置は、第2の態様及び第2の態様の想定し得る実施のいずれか1つに係る方法を実施可能となる。
第7の態様によれば、命令を含むコンピュータプログラムプロダクトが提供される。命令がコンピュータによって実行されると、通信装置は、第1の態様及び第1の態様の想定し得る実施のいずれか1つに係る方法を実施可能となる。
第8の態様によれば、命令を含むコンピュータプログラムプロダクトが提供される。命令がコンピュータによって実行されると、通信装置は、第2の態様及び第2の態様の想定し得る実施のいずれか1つに係る方法を実施可能となる。
第9の態様によれば、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための第3の態様に示される装置と、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための第4の態様に示される装置とを含む電子デバイスが提供される。
2つのオペレーティングシステムの概略ブロック図である。 この出願の一実施形態に係る共有メモリの概略ブロック図である。 電子デバイス300の構造の概略図である。 この出願の一実施形態に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法の概略フローチャートである。 この出願の一実施形態に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスする概略ブロック図である。 この出願の一実施形態に係るユーザページテーブルアクセスの概略フローチャートである。 この出願の一実施形態に係るページフォルト例外処理の概略フローチャートである。 この出願の一実施形態に係る例外処理の概略フローチャートである。 この出願の一実施形態に係るオペレーティングシステムソフトウェアの概略ブロック図である。 この出願に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置10の概略図である。 この出願の一実施形態に適用可能な第1のオペレーティングシステムの構造の概略図である。 この出願に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置20の概略図である。 この出願の一実施形態に適用可能な第2のオペレーティングシステムの構造の概略図である。
以下、添付図面を参照してこの出願の技術的解決策について説明する。
この出願の実施形態における技術的解決策は、2つのオペレーティングシステムに適用することができる。図1は、2つのオペレーティングシステムの概略ブロック図である。図1に示されるように、2つのオペレーティングシステムは、ローカルオペレーティングシステム及びピアオペレーティングシステムを含む。ローカルオペレーティングシステム及びピアオペレーティングシステムは、中央処理ユニット(central processing units,CPUs)、メモリ管理ユニット(memory management units,MMUs)、変換ルックアサイドバッファ(translation lookaside buffers,TLBs)、及びページグローバルディレクトリ(page global directories,PGDs)などの独立した内部モジュールを有し、独立した外部デバイスを更に有してもよい。オペレーティングシステムの外部デバイスは図1には示されておらず、これはこの出願では限定されない。
具体的には、ローカルオペレーティングシステム内のプログラムは複数のプログラムに分割され、複数のプログラムは別々にメモリにロードされる。物理的には、複数のプログラムが互いに接続されている必要はない。論理的には、ページテーブルは、離散的に分散される複数のプログラムを並べて論理的に連続したプログラムを形成するために使用される。プログラムは同じ長さの小ブロックに分割され、これらの小ブロックはページ(pages)と呼ばれる。同様に、メモリもページと同じサイズのページフレーム(frames)に分割される。1つのページを1つのページフレームにロードすることができ、また、現在のタスクのページテーブルをCPUに提供する必要がある。CPUは、プログラムを実行すると、ページテーブルに基づいてメモリのページフレーム内のページを検索した後、論理アドレスを物理アドレスにマッピングする。図1に示される2つのオペレーティングシステムでは、ローカルオペレーティングシステムがローカルオペレーティングシステム及びピアオペレーティングシステムの異なるページテーブルによって制限されたピアオペレーティングシステムのリソースにアクセスする必要があるとき、ローカルオペレーティングシステムは、ピアオペレーティングシステムのリソースに直接にアクセスすることができない。異なるオペレーティングシステムが同じ物理メモリ内のデータリソースにアクセスする必要がある場合、異なるオペレーティングシステムは全て新たなページテーブル関係を確立する必要がある。
例えば、図1に示されるように、ローカルオペレーティングシステムは、ローカルオペレーティングシステム内のページテーブルに基づいて及び仮想アドレス#1に従って対応する物理アドレス#1を見つける。物理アドレス#1は、物理メモリブロック#1に対応する。ピアオペレーティングシステムは、ピアオペレーティングシステム内のページテーブルに基づいて及び仮想アドレス#1に従って対応する物理アドレス#2を見つける。物理アドレス#2は、物理メモリブロック#2に対応する。物理メモリブロック#1は物理メモリブロック#2とは異なる。したがって、ローカルオペレーティングシステム及びピアオペレーティングシステムは、異なるページテーブルに基づいて異なる物理メモリブロックにアクセスする。ローカルオペレーティングシステム及びピアオペレーティングシステムの両方が仮想アドレス#1に基づいて物理メモリブロック#2を見つけることができるようにされる必要がある場合、ローカルオペレーティングシステム及びピアオペレーティングシステムのページテーブルは、仮想アドレス#1と物理メモリブロック#2との間のマッピング関係を含む必要がある。すなわち、ローカルオペレーティングシステムがローカルオペレーティングシステム内のページテーブルに基づいて及び仮想アドレス#1に従って対応する物理アドレス#2を見つけるように、ローカルオペレーティングシステム内のページテーブルを更新する必要がある。
オペレーティングシステムがページテーブルに基づいて物理メモリブロックにアクセスする特定のプロセスは、この出願のこの実施形態では限定されないことを理解すべきである。詳細については、現在のプロトコルの仕様を参照されたい。この出願では、2つのオペレーティングシステムにおける2つの異なるオペレーティングシステムがローカルオペレーティングシステムと称され、また、ピアオペレーティングシステムは、単なる例であって、この出願の保護範囲に対するいかなる制限も構成しないことが更に理解されるべきである。例えば、ローカルオペレーティングシステムが第1のオペレーティングシステムと称されてもよく、また、ピアオペレーティングシステムが第2のオペレーティングシステムと称されてもよい。ローカルオペレーティングシステムがセキュリティアイソレーションオペレーティングシステムとも称されてもよく、また、ピアオペレーティングシステムがメインストリームオペレーティングシステムと称されてもよい。2つのオペレーティングシステムがデュアルシステム、マルチプロセッサシステムなどと称される場合もあることが更に理解されるべきである。
第1のオペレーティングシステムがTEE OSであり、第2のオペレーティングシステムがREE OSである場合、REE OSのセキュリティ問題は、機密性、完全性、可用性などを含む。想定し得る実施では、REE OSに完全性セキュリティサービスを提供するために動的完全性測定技術が使用される。具体的には、動的完全性測定技術は、REE OSメモリデータを不正な修正から保護するために、REE OSメモリデータを分析することによって、REE OSが脅威を受けているかどうかを検出する。動的完全性測定モジュールのセキュリティ保護のために、動的完全性測定モジュールをTEE OSに配置することによって、動的完全性測定モジュールのセキュリティを確保することができる。動的完全性測定モジュールは、TEE OSに配置されるとともに、主にREE OSユーザプロセスコードセグメント、カーネルコードセグメント、及び動的共有ライブラリコードセグメントなどの測定対象にアクセスすることを含めて、REE OSリソースにアクセスする。
しかしながら、TEE OSに配置された動的完全性測定モジュールは、REE OSが信頼されるようにするためにREE OSリソースの完全性を監視する必要がある。この場合、TEE OSはREE OSから分離されるため、動的完全性測定モジュールはリアルタイムでREE OSリソースに効率的にアクセスすることができない。この出願のこの実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、REE OSリソースにアクセスするためにTEE OSに配置された動的完全性測定モジュールの性能を向上させることができる。以下、実施形態を参照して説明する。
任意選択で、この出願におけるREE OSは、Linux(登録商標)オペレーティングシステム、Android(登録商標)オペレーティングシステムなどを含む。具体的には、この出願における「第1」、「第2」、及び様々な数値は、類似の対象を区別することを意図しているが、必ずしも特定の順序又は順番を示すものではない。そのようにして使用されるデータは、適切な状況では交換可能であることが理解されるべきである。これは、この出願の実施形態の範囲を限定しようとするものではない。例えば、異なるオペレーティングシステムを区別する。同様に、この出願では、「#1」及び「#2」などのラベルもまた、同様の対象を区別するため、例えば異なるアドレス間を区別するために使用される。
更に、異なるオペレーティングシステムがメモリを共有することができる。共有メモリ機構が使用される場合、ローカルオペレーティングシステム及びピアオペレーティングシステムは、同じ物理メモリブロックにアクセスすることができる。具体的な実装手順が図2に示される。図2は、この出願の一実施形態に係る共有メモリの概略ブロック図である。
図2から分かるように、ローカルオペレーティングシステムがピアオペレーティングシステムで起動しているアプリケーションコードセグメントにアクセスするとき、ローカルオペレーティングシステムは、ピアオペレーティングシステムで起動しているアプリケーションコードセグメントの物理アドレスを事前に知る必要がある。オペレーティングシステム間の物理アドレス交換を通じて、ピアオペレーティングシステムは物理アドレスをローカルオペレーティングシステムに能動的に転送する。物理アドレスを受信した後、ローカルオペレーティングシステムは、物理ページフレームを能動的にマッピングし、物理ページフレームをローカルオペレーティングシステムのページテーブルエントリに付加する。このようにして、ピアオペレーティングシステム及びローカルオペレーティングシステムは、共有メモリと同様の態様でメモリブロックに直接にアクセスすることができる。
ピアオペレーティングシステム内のプロセスコードセグメントの物理アドレスが不連続であって離散分布を成す場合、ローカルオペレーティングシステムは大量の物理メモリブロックをマッピングする必要があることが理解されるべきである。その結果、性能は非常に低い。加えて、ローカルオペレーティングシステムはピアオペレーティングシステムの全てのリソースをマッピングし、ローカルオペレーティングシステムのセキュリティは影響を受ける。ローカルオペレーティングシステムが物理メモリブロックの内容を識別できない場合、ローカルオペレーティングシステムによるメモリブロックの内容の使用が影響を受ける。ピアオペレーティングシステム上でページスワッピングが生じると、ローカルオペレーティングシステムがピアオペレーティングシステム内のデータにアクセスするときに非同期問題が発生する。
更に、ローカルオペレーティングシステムは、ピアオペレーティングシステムのリソースにアクセスする目的を実施するために、ピアオペレーティングシステムのページテーブルリソースを更にコピーすることができる。例えば、ローカルオペレーティングシステムは、ピアオペレーティングシステムのカーネルページテーブル(又はユーザページテーブル)の全てのエントリをローカルオペレーティングシステムのページテーブルメモリにソフトウェアトラバース方式でコピーし、ローカルオペレーティングシステムは、レベルごとにページテーブルエントリマッピングを順次完了する。このようにして、ローカルオペレーティングシステム及びピアオペレーティングシステムは、同じページテーブル変換関係を使用して同じページフレームコンテンツにアクセスすることができる。
Linuxにおけるページングメカニズムでは、ページグローバルディレクトリ(page global directory,PGD)は、幾つかのページ上位ディレクトリ(page upper directories,PUDs)のアドレスを含み、PUDは、幾つかのページ中間ディレクトリ(page middle directories,PMDs)のアドレスを順次含み、PUDは、幾つかのページテーブルエントリ(page table entries,PTEs)のアドレスを更に含み、各PTEはページフレームを指し示す。
一例として、Linuxユーザページテーブルが使用される。ローカルオペレーティングシステムは、ピアオペレーティングシステム内のユーザプログラム仮想アドレス(virtual address,VA)及びユーザプロセスページテーブルベースアドレス(通常、PGDアドレスはページテーブルベースアドレスレジスタに直接記入される)を知っていると仮定する。ローカルオペレーティングシステムは、ユーザページテーブルベースアドレスからトラバースし、PGD物理アドレスをローカルオペレーティングシステムのカーネルページテーブルにマッピングし、また、マッピングが完了した後、ローカルオペレーティングシステム内のページテーブル変換関係を使用することによってPGD仮想アドレスを取得し、仮想アドレスのコンテンツを読み出し、エントリコンテンツを取得する。レベル-1ページテーブル(ページ上位ディレクトリ、PUD)の物理アドレスが記憶される。ローカルオペレーティングシステムは、同じメカニズムを使用することによってPUDエントリ仮想アドレスを取得し、現在のPUDエントリが現在マッピングされる必要があるVAを含むかどうかを判定する。現在のVAが含まれない場合、PUDエントリは1レベル-1ページテーブル粒度をオフセットする。ローカルオペレーティングシステムは、PUDエントリがVAを含むかどうかを判定し続け、PUDエントリがVAを含まない場合、空のアドレスを返し、或いは、PUDエントリがVAを含む場合、ページミドルディレクトリエントリをウォークする。同じ方法を使用して、実際のPTEをレベルごとに特定し、最後に、対応するPTEを使用のためにローカルオペレーティングシステムにマッピングする。
ピアオペレーティングシステムに大量のページテーブルエントリがある場合、ページテーブルをコピーするためにローカルオペレーティングシステムにより消費される時間が非常に長いことが理解されるべきである。第2のオペレーティングシステムのリソースにアクセスする際の第1のオペレーティングシステムの性能を向上させるために、この出願は、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法を提供する。ローカルオペレーティングシステムは、ピアオペレーティングシステムのレジスタ構成を再使用し、それにより、ページテーブルコピー又はページテーブル同期などを実行することなく迅速なリソースアクセスが実施される。
まず最初に、第1のオペレーティングシステムがこの出願のこの実施形態で提供される第2のオペレーティングシステムのリソースにアクセスするための方法の理解を容易にするために、この出願に関連する幾つかの基本概念を以下に簡単に説明する。
1.TEE
TEEは、グローバルプラットフォーム(global platform,GP)によって提供される概念である。TEE OSは、REE OSとデバイス上で共存する実行環境であり、REE OSにセキュリティサービスを提供する。TEE OSは、独自の実行空間を有し、REE OSよりも高いセキュリティレベルを有する。この出願では、説明のための例としてREE OS及びTEE OSが使用される。
TEE OSは、電子デバイス内で起動し、REE OSと安全な環境(safe environment,SE)との間のセキュリティのためのフレームワークを提供する。例えば、幾らかの小額決済又は企業仮想プライベートネットワーク(virtual private network,VPN)などのデータの場合、必要なセキュリティ保護の強度は高くなく、保護に別個のSEは必要とされず、REE OSのオープン性に起因する攻撃を防ぐために、データをREE OSに直接配置することはできない。したがって、TEE OSは、そのようなアプリケーションにセキュリティ保護を提供するために使用され得る。
更に、TEE OSは、信頼できるアプリケーション(trusted application,TA)に安全な実行環境を提供するとともに、TAリソース及びデータの機密性、完全性、及びアクセス許可も保護する。TEEでは、全てのTAが相互に独立しており、認可なしに互いにアクセスすることはできない。
以下では、この出願の実施形態で提供及び設計される電子デバイス、そのような電子デバイスのためのユーザインタフェース、及びそのような電子デバイスを使用するための実施形態について説明する。幾つかの実施形態において、電子デバイスは、携帯電話、タブレットコンピュータ、又は、無線通信機能を有するウェアラブル電子デバイス(スマートウォッチなど)などの他の機能を更に含むポータブル電子デバイスであってもよい。ポータブル電子デバイスの実施形態の例としては、iOS(登録商標)、Android(登録商標)、Microsoft(登録商標)、又は、他のオペレーティングシステムを使用するポータブル電子デバイスが挙げられるが、これに限定されない。或いは、ポータブル電子デバイスは、ラップトップ(laptop)などの他のポータブル電子デバイスであってもよい。幾つかの他の実施形態において、前述の電子デバイスは、携帯用電子デバイスではなく、デスクトップコンピュータであってもよいことが更に理解されるべきである。幾つかの実施形態において、電子デバイスは、スマートスピーカ又はスマートホームデバイスなどのスマート家電機器であってもよい。幾つかの実施形態において、電子デバイスは、車載デバイス、車両などであってもよい。車載デバイスは、インテリジェント運転コンピューティングプラットフォーム又は車載データ処理プラットフォームなどの処理能力を有するデバイスであってもよく、また、前述の第1のオペレーティングシステム及び第2のオペレーティングシステムは、インテリジェント運転コンピューティングプラットフォーム又は車載データ処理プラットフォーム上で起動する。インテリジェント運転コンピューティングプラットフォーム又は車載データ処理プラットフォームは、モバイルデータセンタ(mobile data center,MDC)であってもよい。
例えば、図3は、電子デバイス300の構造の概略図である。電子デバイス300としては、プロセッサ310、外部メモリインタフェース320、内部メモリ323、ユニバーサルシリアルバス(universal serial bus、USB)ポート330、充電管理モジュール340、電力管理モジュール343、バッテリ342、アンテナ1、アンテナ2、移動通信モジュール350、ワイヤレス通信モジュール360、オーディオモジュール370、スピーカ370A、受信機370B、マイクロフォン370C、ヘッドセットジャック370D、センサモジュール380、ボタン390、モータ393、インジケータ392、カメラ393、ディスプレイ394、及び加入者識別モジュール(subscriber identification module、SIM)カードインタフェース395などを挙げることができる。センサモジュール380としては、圧力センサ380A、ジャイロセンサ380B、気圧センサ380C、磁気センサ380D、加速度センサ380E、距離センサ380F、光学式近接センサ380G、指紋センサ380H、温度センサ380J、タッチセンサ380K、周囲光センサ380L、骨伝導センサ380Mなどを挙げることができる。
この出願のこの実施形態で示される構造は、電子デバイス300に対する特定の限定を構成しないことが理解され得る。この出願の一部の他の実施形態において、電子デバイス300は、図に示されているものよりも多いもしくは少ない構成要素を含んでもよく、或いは、一部の構成要素が組み合わされてもよく、或いは、一部の構成要素が分割されてもよく、或いは、異なる構成要素の配置が使用されてもよい。図示された構成要素は、ハードウェア又はソフトウェアとハードウェアの組み合わせで実装されてもよい。例えば、電子デバイス300がインテリジェント運転コンピューティングプラットフォームである場合、電子デバイス300は、センサモジュール380、スピーカ370A、受信機370B、及びマイクロフォン370Cなどの構成要素を含まなくてもよい。代わりに、センサモジュール380、スピーカ370A、受信機370B、及びマイクロフォン370Cに有線又は無線でデータが送信される。
2.ページテーブル
ページテーブルは、特別なデータ構造であり、オペレーティングシステム空間のページテーブル領域に配置され、仮想アドレスから物理アドレスへのマッピングを記憶する。論理アドレスは、中央処理ユニット(central processing unit,CPU)によって生成されたアドレスを指す。具体的には、CPUによって生成された論理アドレスは、ページ番号(p)とページオフセット(d)とに分割される。ページ番号は、物理メモリ内の各ページのベースアドレスを含み、ページテーブルのインデックスとして使用される。ページオフセット及びベースアドレスは、デバイスの物理メモリアドレスを決定するために組み合わされる。物理アドレスは、メモリユニットによって見られるアドレスを指す。論理アドレス空間が2^mであり、ページサイズが2^nである場合、論理アドレスの最上位(m-n)ビットはページ番号を示し、最下位nビットはページオフセットを示す。これにより、ページ番号から物理ブロック番号へのアドレスマッピングが実現される。
論理アドレスを物理アドレスに変換するプロセスは以下の通りである。すなわち、ページ番号pを使用することによってページテーブルが検索され、ページテーブルからページの物理ブロック番号が取得され、ページの物理ブロック番号が物理アドレスレジスタにロードされる。加えて、ページ内アドレスdは、物理アドレスレジスタのブロック内アドレスフィールドに直接送信される。このように、物理アドレスレジスタの内容は、物理アドレスと論理アドレスとを連結することによって得られる実際のアクセスメモリのアドレスであり、論理アドレスから物理アドレスへの変換が完了される。
具体的には、論理アドレス空間を記述するために固定サイズのページが使用され、物理メモリ空間を記述するために同じサイズのページフレームが使用される。オペレーティングシステムは、論理ページから物理ページフレームへのページマッピングを実施し、全てのページを管理して実行中のプロセスを制御する役割を担う。
3.変換ルックアサイドバッファ(translation lookaside buffer,TLB)
ページテーブルキャッシュ。TLB内の各行は、単一のページテーブルエントリ(page table entry,PTE)を含むブロックを記憶し、これらのブロックは、現在アクセスされる可能性が最も高いページテーブルエントリである。ページ番号がTLB内にある場合、メモリにアクセスするためにフレーム番号が取得される。そうでない場合、フレーム番号は、メモリ内のページテーブルから取得され、メモリにアクセスするためにフレーム番号をTLBに記憶する。
4.動的完全性測定技術
時間内にメモリ実行プロセスに対する悪意のある攻撃を検出するために、メモリ内のプロセス及びカーネルモジュールの完全性が測定される。動作原理は、悪意のある攻撃が測定対象のメモリマッピングを修正するかどうかを判定するために、オペレーティングシステムが起動しているときにメモリ内の不変部分を定期的/予防的に測定すること、メモリの完全性を表すハッシュ(hash)値を計算すること、及びハッシュ値を基準値と比較することを含む。ベースライン値は、プロセスが最初にメモリにロードされたときのメモリマッピングに基づいて計算されてもよく、又は、対応するベースライン値は、アプリケーションに対応するELFファイルに基づいてオフラインで確立されてもよい。
以上は、図1に関連して、この出願の実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法が適用され得るシナリオを説明するとともに、図3に関連して、この出願の実施形態で提供されるTEE OS及びREE OSが実行され得る電子デバイスを詳細に説明する。以下は、添付の図面に関連して、この出願の実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法を詳細に説明する。
更に、この出願の実施形態の理解を容易にするために、以下の幾つかの説明が提供される。
まず最初に、この出願において、「指示するために使用される」は、「直接的に指示するために使用される」及び「間接的に指示するために使用される」を含み得る。指示情報がAを指示するために使用されるものとして説明される場合、指示情報は、Aを直接的に指示するために使用されてもよく、Aを間接的に指示するために使用されてもよいが、指示情報がAを含むことを必ずしも示すものではない。
指示のために使用される情報は、指示対象情報と呼ばれる場合がある。特定の実施プロセスでは、指示対象情報が複数の態様で指示されてもよい。例えば、指示対象情報が直接的に指示されてもよく、例えば、指示対象情報又は指示対象情報のインデックスが指示される。或いは、指示対象情報は、他の情報を示すことによって間接的に指示されてもよく、他の情報と指示対象情報との間には関連関係がある。或いは、指示対象情報の一部のみが指示されてもよく、指示対象情報の他の部分は既に知られているか又は予め合意されている。例えば、特定の情報は、指示オーバーヘッドをある程度低減するために、様々な情報の予め合意された(例えば、プロトコルで指定される)配置シーケンスを使用することによって指示されてもよい。
第2に、この出願における「第1」、「第2」、及び様々な数値(例えば、「#1」、「#2」)は、単に説明を容易にするために対象を区別するべく使用されているにすぎず、この出願の実施形態の範囲を限定しようとするものではない。例えば、異なるオペレーティングシステムを区別する。
第3に、この出願における「記憶」は、1つ以上のメモリに記憶されることを意味し得る。1つ以上のメモリは、別々に配置されてもよく、或いは、エンコーダ、デコーダ、プロセッサ、又は、通信装置に組み込まれてもよい。或いは、1つ以上のメモリの一部が別々に配置されてもよく、1つ以上のメモリの一部は、エンコーダ、デコーダ、プロセッサ、又は、通信装置に組み込まれる。メモリのタイプは、任意の形態の記憶媒体であってもよい。これはこの出願では限定されない。
図4は、この出願の一実施形態に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法の概略フローチャートである。実行本体は、第1のオペレーティングシステム及び第2のオペレーティングシステムを含み、第1のオペレーティングシステムと第2のオペレーティングシステムとの間の相互作用は、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法を記述するために使用される。
この出願で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、図1に記載された2オペレーティングシステムシナリオに適用され得る。第1のオペレーティングシステム及び第2のオペレーティングシステムは、2オペレーティングシステムシナリオを形成する。任意選択で、第1のオペレーティングシステム及び第2のオペレーティングシステムは同じアーキテクチャに属する。例えば、第1のオペレーティングシステム及び第2のオペレーティングシステムの両方がx86アーキテクチャに属する、或いは、第1のオペレーティングシステム及び第2のオペレーティングシステムの両方がARMアーキテクチャに属する。
第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、以下のステップの全部又は一部を含む。
S110:第1のオペレーティングシステムを初期化する。
この出願の本実施形態では、第1のオペレーティングシステムを初期化するステップは以下を含む。
第1のオペレーティングシステムは、第1のオペレーティングシステム内のカーネルページテーブル及びユーザページテーブルを下位アドレス空間のページテーブルメモリに記憶する。
第1のオペレーティングシステムがカーネルページテーブル及びユーザページテーブルをどのように取得するかは、この出願のこの実施形態では限定されないことが理解されるべきである。現在のプロトコルの仕様を参照されたい。第1のオペレーティングシステムは、カーネルページテーブル及びユーザページテーブルを生成するためのモジュールを含む。
この出願のこの実施形態におけるカーネルページテーブルは、一次カーネルページのグローバルディレクトリに記憶されたメモリのセグメントを含み、ハードウェアによって直接使用されない。カーネルページテーブル内のコンテンツは、全てのプロセスによって共有される。カーネルページテーブルは、カーネルによって維持及び更新される。この出願のこの実施形態におけるユーザページテーブルは、各プロセスのページテーブルを含み、プロセスのページディレクトリに配置される。
カーネルページテーブル及びユーザページテーブルの特定の形態は、この出願のこの実施形態では限定されないことを更に理解すべきである。詳細については、現在のプロトコルの説明を参照されたい。この出願のこの実施形態は、主に、ページテーブルのメモリ構成を記憶するレジスタに関する。
第1のオペレーティングシステム内のカーネルページテーブル及びユーザページテーブルを下位アドレス空間のページテーブルメモリに記憶した後、第1のオペレーティングシステムは、下位アドレス空間のページテーブルメモリを第1のレジスタに構成する。第1のレジスタは、第1のアドレス空間に対応する。第1のオペレーティングシステムは、第2のオペレーティングシステムの上位アドレス空間に基づいて第2のアドレス空間を確保する。第1のアドレス空間はユーザ及びカーネルによって使用され、第1のアドレス空間は第2のアドレス空間とは異なり、第2のアドレス空間は、使用される第1のアドレス空間以外の第1のオペレーティングシステムにおける仮想アドレス空間内のアドレス空間である。
現在のオペレーティングシステムでは仮想メモリ設計が使用されることを理解されるべきである。Linuxシステムが一例として使用される。一般に、32ビットLinux仮想メモリアドレス空間は、0~3 Gのユーザ空間と3~4 Gのカーネル空間とに分割される。0~3 Gは下位アドレス空間として理解され、3~4 Gは上位アドレス空間として理解される。上位アドレス空間は、Linuxシステムカーネルによって使用され、アプリケーションによってアクセスされ得ない。下位アドレス空間は、ユーザプログラムによってアクセスされる。
第1のオペレーティングシステムと現在のオペレーティングシステムとの間の違いは、この出願のこの実施形態における第1のオペレーティングシステムのカーネル空間及びユーザ空間の両方が第1のアドレス空間を使用することである。第1のアドレス空間は、第1のオペレーティングシステムの仮想メモリアドレス空間内の下位アドレス空間として理解され、第1のレジスタは、下位アドレス空間に対応するレジスタとして理解され得る。第2のアドレス空間は、第1のオペレーティングシステムによって確保され、第1のオペレーティングシステムのカーネルによって使用されない。第2のアドレス空間は、上位アドレス空間として理解される。具体的には、第1のオペレーティングシステムの初期化プロセスにおいて、第1のオペレーティングシステムの上位アドレス空間は、第2のオペレーティングシステムの仮想アドレス空間内の上位アドレス空間に基づいて確保される。例えば、第2のオペレーティングシステムが32ビットLinuxシステムである場合、第2のオペレーティングシステムの仮想アドレス空間は、0~3 Gのユーザ空間と3~4 Gのカーネル空間とに分割される。この場合、第1のオペレーティングシステムは、第1のオペレーティングシステムの3~4 Gの上位アドレス空間を確保することができる。
第1のオペレーティングシステムが第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成を再使用して第1のオペレーティングシステムの上位アドレス空間に対応する第2のレジスタを構成できるようにするために、第1のオペレーティングシステムのアドレス空間分割が、第2のオペレーティングシステムのアドレス空間分割と一致する必要があることを理解すべきである。例えば、第1のオペレーティングシステム及び第2のオペレーティングシステムの仮想アドレス空間分割は、0~3 Gが下位アドレス空間であり、3~4 Gが上位アドレス空間であることである。第1のオペレーティングシステム及び第2のオペレーティングシステムの仮想アドレス空間分割は、0~3 Gが下位アドレス空間であり、3~4 Gが上位アドレス空間であることであるということは、単ある一例にすぎず、この出願の保護範囲を限定するものではない。システムの下位アドレス空間及び上位アドレス空間の他の想定し得る分割については、既存の分割方式を参照されたい。この出願では詳細は説明しない。
更に、セキュリティ性能を向上させるために、カーネル空間及び第1のオペレーティングシステムのユーザ空間の両方が下位アドレス空間を使用するとき、及び、第1のオペレーティングシステムがカーネルページテーブルを構成するとき、ユーザアクセス不可能な許可制御がカーネルページテーブルエントリに付加される。第1のオペレーティングシステムがユーザページテーブルを構成するとき、特権非実行(privileged execute never,PXN)保護がユーザページテーブルエントリに付加される。PXN保護は、カーネルがユーザコードを実行するのを防ぐためのものである。
第1のオペレーティングシステムが第2のオペレーティングシステムのカーネル空間内のリソースにアクセスできるようにするために、この出願のこの実施形態では、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得することができる。
想定し得る実施において、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を能動的に取得する。例えば、取得モジュールが、第1のオペレーティングシステムに配置され、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される。
他の想定し得る実施において、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルページテーブルのものであって第2のオペレーティングシステムからのものであるレジスタ構成情報を受信する。例えば、受信モジュールが、第1のオペレーティングシステムに配置され、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を受信するように構成される。
更に、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルシンボルテーブル情報を更に取得し、カーネルシンボルテーブル情報を解析し、第2のオペレーティングシステムの上位アドレス空間の変換関係を取得し、ユーザプロセスのユーザページテーブルベースアドレス情報を取得し、変換関係を使用することによってレベルごとにユーザページテーブルエントリコンテンツを読み出し、第2のオペレーティングシステムのユーザ空間内のリソースにアクセスすることができる。カーネルシンボルテーブル情報は、ユーザプロセスカーネルスタック及び構造オフセット(プロセスのアドレス空間記述子(例えば、コードセグメント、データセグメント、スタック、又は、ファイルシステム情報)又はプロセス記述子)に関する情報を含む。コードセグメント又はデータセグメントが使用されるアドレス範囲が、カーネルスタック情報及び構造オフセットに基づいて取得される。
任意選択で、第1のオペレーティングシステムが第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報及び/又は第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得できるようにするために、カーネルドライバモジュールが第2のオペレーティングシステムに配置されてもよく、カーネルドライバモジュールは、第2のオペレーティングシステムのカーネルシンボルテーブル情報及び第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される。
想定し得る実施において、第2のオペレーティングシステムのカーネルシンボルテーブル情報及び第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得した後、カーネルドライバモジュールは、第1のオペレーティングシステムが情報を能動的に取得できるように、第2のオペレーティングシステムのローカル記憶モジュールに情報を記憶することができる。
他の想定し得る実施において、第2のオペレーティングシステムのカーネルシンボルテーブル情報及び第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得した後、カーネルドライバモジュールは、取得した第2のオペレーティングシステムのカーネルシンボルテーブル情報及び第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を第1のオペレーティングシステムに通知するためにアクティブ要求を開始することができ、また、図4に示される方法手順は以下を更に含むことができる。
S120:第2のオペレーティングシステムは、要求メッセージを第1のオペレーティングシステムに送信する。
要求メッセージは、第2のオペレーティングシステムのカーネルシンボルテーブル情報及び/又はカーネルページテーブルのレジスタ構成情報を伝送し、要求メッセージは、第1のオペレーティングシステムのレジスタ構成を修正するように第1のオペレーティングシステムに要求するために使用される。
具体的には、要求メッセージは第2のオペレーティングシステムのカーネルシンボルテーブル情報及び/又は第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を含むため、第1のオペレーティングシステムが要求メッセージを受信した後、第1のオペレーティングシステムは、第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成が第2のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成と同じであるように、受信した第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて第1のオペレーティングシステムのレジスタ構成を構成することができる。第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成は、第2のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成を再使用することが理解され得る。すなわち、図4に示される方法手順は、S130:第1のオペレーティングシステムがレジスタを構成することを更に含む。
想定し得る実施において、要求メッセージが受信される前に、クライアントアプリケーション(client application,CA)が第1のオペレーティングシステムに配置され、CAは、受信した第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて、第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成を構成する。
他の想定し得る実施において、要求メッセージが受信された後、CAは第1のオペレーティングシステムに配置され、CAは、第2のオペレーティングシステムのカーネルページテーブルの受信したレジスタ構成情報に基づいて、第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成を構成する。
更に他の想定し得る実施において、要求メッセージが受信されると、CAは第1のオペレーティングシステムに配置され、CAは、第2のオペレーティングシステムのカーネルページテーブルの受信したレジスタ構成情報に基づいて、第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成を構成する。
第1のオペレーティングシステムがCAを配置する時間は、この出願のこの実施形態では限定されないことを理解すべきである。
第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成は、アドレス変換コントローラ、メモリ属性コントローラ、及び上位空間ページテーブルベースアドレスレジスタなどの構成を含む。第1のオペレーティングシステムが第1のオペレーティングシステムの上位アドレス空間に対応するレジスタ構成を完了した後、第1のオペレーティングシステム及び第2のオペレーティングシステムは、同じ上位空間ページテーブルベースアドレスレジスタ構成を有する。
任意選択で、要求メッセージを受信した後、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得することができ、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネルシンボルテーブル情報を記憶することができる。
具体的には、第1のオペレーティングシステムが、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて、第1のオペレーティングシステムの上位アドレス空間に対応する第2のレジスタを構成するときに、第1のオペレーティングシステムが上位アドレス空間を有効にした後、第1のオペレーティングシステムは、第2のオペレーティングシステムのカーネル空間のリソースに直接アクセスする許可を有し、第2のオペレーティングシステムのものと同じ上位アドレス空間にアクセスすることができる。
カーネルシンボルテーブル情報を受信した後、第1のオペレーティングシステムは、第2のオペレーティングシステムの上位アドレス空間の変換関係を取得し、ユーザプロセスのユーザページテーブルベースアドレス情報を取得し、変換関係を使用することによってレベルごとにユーザページテーブルエントリコンテンツを読み出し、第2のオペレーティングシステムのユーザ空間内のリソースにアクセスすることができる。
直感的な理解を容易にするために、S110~S130に示される手順を図5を参照して詳細に説明する。図5は、この出願のこの実施形態に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスする概略ブロック図である。
任意選択で、第1のオペレーティングシステムが64ビットARMオペレーティングシステムであり、第2のオペレーティングシステムがLinux OSである例を使用して、第1のオペレーティングシステムが第2のオペレーティングシステムのレジスタ構成をどのように再使用するかを更に説明する。Linux OSは、通常、ユーザ空間用の64ビットのアドレス空間に0x0000-0000-0000-0000~0x0000-7fff-ffff-f000の128 T個のアドレスを使用し、0xffff-8000~0000-0000はシステムカーネル空間アドレスである。
第1のオペレーティングシステムが初期化されると、カーネルページテーブル及びユーザページテーブルは同じ連続メモリに記憶され、メモリベースアドレスはTTBR 0_EL1(下位空間ページテーブルベースアドレスレジスタ)に構成される。カーネル空間及びユーザ空間はいずれも下位アドレス空間を使用する。具体的には、カーネルページテーブルを構成するときに、第1のオペレーティングシステムは、ユーザモードアクセス不可能な許可制御を付加し、ユーザページテーブルを構成し、PXN保護を付加する。加えて、第1のオペレーティングシステムの上位アドレス空間の範囲が第2のオペレーティングシステムのカーネルアドレス空間の範囲と一致することが確保される必要がある(例えば、第1のオペレーティングシステムの64ビットアドレス空間内の0xffff-8000~0000-0000が上位アドレス空間であることが確保される)。
更に、カーネルドライバモジュールは、Linux OSのカーネルシンボルテーブル情報及び幾つかのキーシステムレジスタ構成(カーネルページテーブルに関連するレジスタ構成情報、例えば、TCR_EL1(アドレス変換コントローラ構成)、TTBR 1_EL1(下位スペースページテーブルベースアドレスレジスタ)、又はMAIR_EL1(メモリ属性レジスタ)などのレジスタ構成)を取得するとともに、第1のオペレーティングシステムが第2のオペレーティングシステムの上位アドレス空間構成を再使用するように取得されたカーネルシンボルテーブル情報及び幾つかのキーシステムレジスタ構成を第1のオペレーティングシステムへ送信するために、Linux OSに配置されている。したがって、第1のオペレーティングシステムは、第2のオペレーティングシステムの上位アドレス空間範囲データにアクセスすることができる。
x86オペレーティングシステムは同様のアーキテクチャを有する。また、x86オペレーティングシステムのレジスタ構成は、ローカルオペレーティングシステム(第1のオペレーティングシステム)の上位アドレス空間の範囲がピアオペレーティングシステム(第2のオペレーティングシステム)のカーネルアドレス空間の範囲と一致すべきであるようにする必要もある。x86オペレーティングシステムのレジスタ及びARMオペレーティングシステムのレジスタは、異なる名前を有することができるが、同じ原理を共有する。この出願では詳細は説明しない。
更に、第1のオペレーティングシステムは、ソフトウェア(ソフトウェア関係:Table_Entry[(VA>>(39-Level×9))&0x1FF]、式中、Levelはページテーブルレベルである)を使用することによって第2のオペレーティングシステムのユーザページテーブルリソースにアクセスすることができる。すなわち、図4に示される方法手順は、S140:第1のオペレーティングシステムが第2のオペレーティングシステムのユーザページテーブルリソースにアクセスすることを更に含む。
具体的には、第1のオペレーティングシステムは、トラバース方式で第2のオペレーティングシステムのユーザページテーブルリソースにアクセスする。以下は、特定の例を使用して、第1のオペレーティングシステムが第2のオペレーティングシステムのユーザページテーブルリソースにアクセスする特定の手順を説明する。図6は、この出願のこの実施形態に係るユーザページテーブルアクセスの概略フローチャートである。第2のオペレーティングシステムは4レベルのページングメカニズムであると仮定する。すなわち、PGDは幾つかのPUDのアドレスを含み、PUDは幾つかのPMDのアドレスを含み、PMDは幾つかのPTEのアドレスを含み、各PTEは1つのページフレームを指し示す。第1のオペレーティングシステムは、VAに対応する物理ページフレームコンテンツにアクセスする必要がある。具体的なアクセス手順は以下の通りである。
第1に、第1のオペレーティングシステムは、既存の上位アドレス変換関係(上記のように第2のオペレーティングシステムのページテーブルリソースをコピーする必要はない)を利用して、第2のオペレーティングシステム内のユーザプロセスPGDに対応するVAを取得し、VAへのオフセットに基づいて且つPGD[(VA>>(39-3×9))&0x1FF]を使用することによってレベル1ページテーブルエントリのエントリコンテンツを読み出し、VAを含み且つエントリコンテンツに対応するレベル2ページテーブルエントリ(PUDエントリの物理アドレス)を決定する。第2に、レベル2ページテーブルエントリが有効なエントリであるかどうかが判定される。レベル-2ページテーブルエントリが有効なエントリである場合、PUD[(VA>>(39-2×9))&0x1FF]を使用してレベル-2ページテーブルエントリの物理アドレスを取得し、プロセスコードセグメントに対応する実ページフレームを最終的にレベルごとに取得することができる。最後に、第1のオペレーティングシステムが第2のオペレーティングシステムの仮想アドレスのコンテンツにアクセスできるように、第2のオペレーティングシステムの上位アドレス線形関係を使用することによってPTEページフレームに対して仮想実変換が実行される。4つの単純な線形変換ステップのみをとると、第2のオペレーティングシステムの特定の物理ページフレーム上のリソースを迅速に取得することができる。すなわち、第1のオペレーティングシステムは、ソフトウェアベースのクイックインデックスを使用してユーザページテーブルリソースに迅速にアクセスすることができる。
第1のオペレーティングシステムは、アドレスバスを介して、アドレスバスに接続された物理メモリ、I/Oデバイスなどを含む全ての周辺機器にアクセスすることができる。しかしながら、第1のオペレーティングシステムから送信されるアクセスアドレスは、アドレスバス上のこれらの周辺機器の物理アドレスの中ではなく、仮想アドレスである。MMUは、仮想アドレスを物理アドレスに変換し、アドレスバスから物理アドレスを送信する。仮想アドレスとMMU上の物理アドレスとの間の変換関係が作成される必要がある。仮想アドレスから物理アドレスへのマッピングが作成されない場合、又は不適切に設計されたプログラムのために無効なアドレスがアクセスされる場合、MMUは、ページフォルト例外を生成することを第1のオペレーティングシステムに通知する。
この出願のこの実施形態では、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするときに例外が生じる場合、第1のオペレーティングシステムは、例外関連情報を第2のオペレーティングシステムに送信する。具体的には、リモートプロシージャコール(remote procedure call,RPC)サービスが第1のオペレーティングシステムに配置され、RPCサービスは例外関連情報を第2のオペレーティングシステムに送信する。
例えば、第1のオペレーティングシステムが第2のオペレーティングシステムのユーザプロセスにアクセスし、ソフトウェアがユーザページフレームに迅速にインデックスを付けると、空のエントリがアクセスされ、第1のオペレーティングシステムは第2のオペレーティングシステムのアプリケーションコンテンツを正常に読み出すことができない。この場合、第1のオペレーティングシステムは、ページフォルト処理メカニズムを更に設計する必要がある。図7は、この出願のこの実施形態に係るページフォルト例外処理の概略フローチャートである。
RPCサービスは第1のオペレーティングシステムに配置され、第1のオペレーティングシステムのCAプログラムは、RPCサービスを使用してページフォルトRPC要求を第2のオペレーティングシステムに透過的に戻し、ページフォルトプロセス番号及びページフォルトに対応する仮想アドレスを能動的に転送する。第2のオペレーティングシステムは、第1のオペレーティングシステムからRPC要求を受信した後、第2のオペレーティングシステムのページフォルト処理プログラムを使用して関連するメモリページを設定し、メモリ内のメモリページをロックし、第1のオペレーティングシステムのRPC要求に応答する。第1のオペレーティングシステムのCAは、第2のオペレーティングシステムによって返された結果に基づいて後続の対応する処理を実行する。第2のオペレーティングシステムが結果を正常に返す場合、第2のオペレーティングシステムは、ユーザプロセスリソースに正常にアクセスすることができ、そうでない場合、アクセスは拒否される。
他の例では、第1のオペレーティングシステムがアドレスにアクセスするときにデータアボート例外(data abort exception)が生じると、第1のオペレーティングシステムは例外処理メカニズムを設計する必要がある。図8は、この出願のこの実施形態に係る例外処理の概略フローチャートである。第1のオペレーティングシステムが例外処理を実行するとき、第1のオペレーティングシステムは最初にアドレスソースを分析する必要がある。第1のオペレーティングシステムでアドレスアクセスエラーが生じる場合、アドレスアクセスエラーは、第1のオペレーティングシステムの例外処理プログラムで処理され、そうでない場合、第1のオペレーティングシステムは、RPCサービスを使用することにより、アドレスアクセスエラーを処理のために元の第2のオペレーティングシステムにルーティングし、第2のオペレーティングシステムは処理を実行する。
想定し得る実施において、図4に示される方法は、図1に示される異種オペレーティングシステムに適用され得る。具体的には、図1に示される異種オペレーティングシステムに対応するソフトウェアオペレーティングシステムが図9に示される。図9は、この出願の一実施形態に係るオペレーティングシステムソフトウェアの概略ブロック図である。シンボルによって開始されるブロック(block started by symbol,BSS)セグメントは、通常、プログラム内の初期化されないグローバル変数を記憶するために使用されるメモリ領域である。BSSセグメントは、静的メモリ割り当てである。
データセグメント(data segment)は、通常、プログラム内の初期化されたグローバル変数を記憶するために使用されるメモリ領域である。データセグメントは、静的メモリ割り当てである。
コードセグメント(コードセグメント/テキストセグメント)は、通常、プログラム実行コードを記憶するために使用されるメモリ領域である。この領域のサイズはプログラムが実行される前に決定され、メモリ領域は通常読み出し専用である。また、幾つかのアーキテクチャは、コードセグメントを書き込むことができるようにし、すなわち。プログラムを修正することができる。また、コードセグメントは、文字列定数などの幾つかの読み出し専用定数変数を含んでもよい。
スタックが、プログラムを記憶するためにユーザによって一時的に作成されるローカル変数である。スタックは、一時的なデータを記憶及び交換するためのメモリ領域と考えることができる。スタックはオペレーティングシステムによって割り当てられる。メモリの適用及び再生は、システムによって管理される。
BINファイルは、マシンコードのみを含む生バイナリ(raw binary)ファイルである。マシンコードに加えて、ELFファイルは、セグメントのロードアドレス、実行アドレス、リロケーションテーブル、及びシンボルテーブルなどの更なる情報も含む。オペレーティングシステムソフトウェアの具体的な分割は、この出願では限定されない。詳細については、2つの現在のオペレーティングシステムのソフトウェア分割を参照されたい。
オペレーティングシステムソフトウェアは、セキュアドメインと非セキュアドメインの2つのドメインに分割される。セキュアドメインはセキュリティアイソレーションオペレーティングシステムに相当し、非セキュアドメインは主流のオペレーティングシステムに相当する。動的完全性測定(dynamic integrity measurement,DIM)モジュールは、セキュリティ分離オペレーティングシステムに配置することができる。この出願のこの実施形態では、セキュリティ分離オペレーティングシステムは、ローカルオペレーティングシステムと呼ばれてもよく、又は第1のオペレーティングシステムと呼ばれてもよく、主流のオペレーティングシステムは、ピアオペレーティングシステムと呼ばれてもよく、又は第2のオペレーティングシステムと呼ばれてもよい。言い換えれば、動的完全性測定モジュールは、第2のオペレーティングシステムにセキュリティ保護を提供するために、この出願の第1のオペレーティングシステムに配置することができる。この出願で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法は、自動運転分野に適用され得る。例えば、第2のオペレーティングシステムはユーザと対話し、ソフトウェアセキュリティサービスアクセスは第1のオペレーティングシステムに配置される。
前述したプロセスの順序番号が、前述した方法の実施形態における実行順序を意味しないことを理解すべきである。プロセスの実行順序はプロセスの機能と内部ロジックとに基づいて決定されるべきであり、この出願の実施形態の実施プロセスを制限するものとして解釈されるべきではない。
以上は、図4~図9に関連して、この出願の実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法を詳細に説明する。以下は、図10~図13に関連して、この出願の実施形態で提供される第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置を詳細に説明する。
図10は、この出願に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置10の概略図である。図10に示されるように、装置10は処理ユニット110及び受信ユニット120を含む。
処理ユニット110は、第1のオペレーティングシステムの第1のアドレス空間内に第1のオペレーティングシステムのカーネル空間及びユーザ空間を構成し、第2のオペレーティングシステムのための第2のアドレス空間を確保するように構成される。第1のオペレーティングシステムの仮想メモリアドレス空間は、第1のアドレス空間及び第2のアドレス空間を含む。
受信ユニット120は、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される。
処理ユニット110は、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報に基づいて第1のオペレーティングシステムの第2のレジスタを構成するように更に構成される。第2のレジスタは、第1のオペレーティングシステムの第2のアドレス空間に対応する。
処理ユニット110は、第2のアドレス空間を使用することによって第2のオペレーティングシステムのカーネル空間内のリソースにアクセスするように更に構成される。
装置10は、方法実施形態における第1のオペレーティングシステムに完全に対応し、装置10は、方法実施形態における第1のオペレーティングシステム、又は、方法実施形態における第1のオペレーティングシステム内部のチップ又は機能モジュールであってもよい。装置10の対応するユニットは、図4に示す方法実施形態において第1のオペレーティングシステムによって実行される対応するステップを実行するように構成される。
装置10の処理ユニット110は、方法実施形態において第1のオペレーティングシステムによって内部的に実施又は処理されるステップを実行し、例えば、図4の初期化のステップS110を実行し、図4のレジスタを構成するステップS130を実行するように更に構成される。
受信ユニット120は、方法実施形態において第1のオペレーティングシステムによって受信するステップを実行し、例えば、図4の第2のオペレーティングシステムから要求メッセージを受信するステップS120を実行する。
装置10は、第1のオペレーティングシステムによって送信するステップを実行するように、例えば、別のデバイスへ情報を送信するように構成された、送信ユニットを更に含んでもよい。送信ユニット及び受信ユニット120は、トランシーバユニットを形成してもよく、受信機能及び送信機能の両方を有してもよい。処理ユニット110はプロセッサであってよい。送信ユニットは送信機であってもよく、受信ユニット120は受信機であってもよい。受信機及び送信機は、トランシーバを形成するように一体化されてもよい。
図11は、この出願の一実施形態に適用可能な第1のオペレーティングシステムの構造の概略図である。第1のオペレーティングシステムは、図1に示される2つのオペレーティングシステムに適用することができる。説明を容易にするために、図11は、第1のオペレーティングシステムの主要構成要素のみを示す。図11に示されるように、第1のオペレーティングシステムは、プロセッサ1110(図10に示される処理ユニット110に対応する)と、メモリ1120と、トランシーバ1130(図10に示される受信ユニット120に対応する)とを含む。プロセッサは、情報を送受信するべくトランシーバを制御するように構成され、メモリは、コンピュータプログラムを記憶するように構成され、プロセッサは、メモリからコンピュータプログラムを呼び出して実行し、第1のオペレーティングシステムがこの出願で提供される第2のオペレーティングシステムのリソースにアクセスするための方法において第1のオペレーティングシステムによって実行される対応する手順及び/又は動作を実行するように構成される。ここでは詳細は再び説明されない。
当業者であれば分かるように、説明を容易にするため、図11がただ1つのメモリとただ1つのプロセッサとを示す。実際の第1のオペレーティングシステムでは、複数のプロセッサ及びメモリが存在し得る。メモリは、記憶媒体又は記憶デバイスなどとも呼ばれ得る。これは、この出願のこの実施形態では限定されない。
図12は、この出願に係る第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置20の概略図である。図12に示されるように、装置20は、処理ユニット210及び送信ユニット220を含む。
処理ユニット210は、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される。
送信ユニット220は、第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を第1のオペレーティングシステムに送信するように構成される。
装置20は、方法実施形態における第2のオペレーティングシステムに完全に対応し、装置20は、方法実施形態における第2のオペレーティングシステム、又は、方法実施形態における第2のオペレーティングシステム内部のチップ又は機能モジュールであってもよい。装置20の対応するユニットは、図4に示される方法実施形態において第2のオペレーティングシステムによって実行される対応するステップを実行するように構成される。
装置20内の送信ユニット220は、方法実施形態における第2のオペレーティングシステムによって送信するステップを実行し、例えば、図4の第1のオペレーティングシステムに要求メッセージを送信するステップS120を実行する。
装置20の処理ユニット210は、方法の実施形態において第2のオペレーティングシステムによって内部的に実施又は処理されるステップを実行する。
装置20は、第2のオペレーティングシステムによって受信するステップを実行するように、例えば、他のデバイスによって送信された情報を受信するように構成された、受信ユニットを更に含んでもよい。受信ユニット及び送信ユニット210は、トランシーバユニットを形成してもよく、受信機能及び送信機能の両方を有してもよい。処理ユニット110はプロセッサであってよい。送信ユニット210は送信機であってよい。受信ユニットは受信機であってよい。受信機及び送信機は、トランシーバを形成するように一体化されてもよい。
図13は、この出願の一実施形態に適用可能な第2のオペレーティングシステムの構造の概略図である。第2のオペレーティングシステムは、図1に示される2つのオペレーティングシステムに適用することができる。説明を容易にするために、図13は、第2のオペレーティングシステムの主要構成要素のみを示す。図13に示されるように、第1のオペレーティングシステムは、プロセッサ1310(図12に示される処理ユニット210に対応する)と、メモリ1320と、トランシーバ1330(図12に示される送信ユニット220に対応する)とを含む。プロセッサは、情報を送受信するべくトランシーバを制御するように構成され、メモリは、コンピュータプログラムを記憶するように構成され、プロセッサは、メモリからコンピュータプログラムを呼び出して実行し、第1のオペレーティングシステムがこの出願で提供される第2のオペレーティングシステムのリソースにアクセスするための方法において第1のオペレーティングシステムによって実行される対応する手順及び/又は動作を実行するように構成される。ここでは詳細は再び説明されない。
この出願の一実施形態は、第1のオペレーティングシステム及び第2のオペレーティングシステムを含む電子デバイスを更に提供する。電子デバイスは、図3に示される他の周辺機器を更に含んでもよい。第1のオペレーティングシステム及び第2のオペレーティングシステムの両方がプロセッサ310に配置されてもよい。
この出願は、コンピュータ可読記憶媒体を更に提供する。コンピュータ可読記憶媒体は命令を記憶する。命令がコンピュータで実行されると、コンピュータは、図4に示される方法で第1のオペレーティングシステムによって実行されるステップを実行可能となる。
この出願は、コンピュータ可読記憶媒体を更に提供する。コンピュータ可読記憶媒体は命令を記憶する。命令がコンピュータで実行されると、コンピュータは、図4に示される方法で第2のオペレーティングシステムによって実行されるステップを実行可能となる。
この出願は、命令を含むコンピュータプログラムプロダクトを更に提供する。コンピュータプログラムプロダクトがコンピュータで実行すると、コンピュータは、図4に示される方法で第1のオペレーティングシステムによって遂行されるステップを実行可能となる。
この出願は、命令を含むコンピュータプログラムプロダクトを更に提供する。コンピュータプログラムプロダクトがコンピュータで実行されると、コンピュータは、図4に示される方法で第2のオペレーティングシステムによって実行されるステップを実行可能となる。
この出願は、プロセッサを含むチップを更に提供する。プロセッサは、メモリに記憶されたコンピュータプログラムを読み出して実行し、第1のオペレーティングシステムがこの出願で提供される第2のオペレーティングシステムのリソースにアクセスするための方法において第1のオペレーティングシステムにより実行される対応する動作及び/又は手順を実行するように構成される。任意選択で、チップはメモリを更に含み、メモリは回路又は配線を介してプロセッサに接続され、プロセッサはメモリ内のコンピュータプログラムを読み出して実行するように構成される。更に、任意選択で、チップは通信インタフェースを更に含み、プロセッサは通信インタフェースに接続される。通信インタフェースは、処理される必要があるデータ及び/又は情報を受信するように構成され、また、プロセッサは、通信インタフェースからデータ及び/又は情報を取得してデータ及び/又は情報を処理する。通信インタフェースは、チップ上の入力/出力インタフェース、インタフェース回路、出力回路、入力回路、ピン、関連回路などであってもよい。或いは、プロセッサは、処理回路又は論理回路であってもよい。
この出願は、プロセッサを含むチップを更に提供する。プロセッサは、メモリに記憶されたコンピュータプログラムを読み出して実行し、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするためのこの出願で提供される方法において第2のオペレーティングシステムによって実行される対応する動作及び/又は手順を実行するように構成される。任意選択で、チップはメモリを更に含み、メモリは回路又は配線を介してプロセッサに接続され、プロセッサはメモリ内のコンピュータプログラムを読み出して実行するように構成される。更に、任意選択で、チップは通信インタフェースを更に含み、プロセッサは通信インタフェースに接続される。通信インタフェースは、処理される必要があるデータ及び/又は情報を受信するように構成され、また、プロセッサは、通信インタフェースからデータ及び/又は情報を取得してデータ及び/又は情報を処理する。通信インタフェースは、チップ上の入力/出力インタフェース、インタフェース回路、出力回路、入力回路、ピン、関連回路などであってもよい。或いは、プロセッサは、処理回路又は論理回路であってもよい。
前述のチップがチップシステムに置き換えられてもよいことが理解されるべきであり、詳細については本明細書中で説明されない。
この出願において、「含む」、「有する」という用語及び任意の他の変形は、非排他的な包含を網羅することを意味し、例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品、又は、デバイスは、明確に列挙されるそれらのステップ又はユニットに必ずしも限定されず、明示的に列挙されない或いはそのようなプロセス、方法、製品又はデバイスに固有の他のステップ又はユニットを含み得る。
当業者であれば認識し得るように、この明細書に開示される実施形態で説明される例との組み合わせでは、ユニット及びアルゴリズムステップを電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせによって実装できる。機能がハードウェア又はソフトウェアのどちらによって果たされるかは、技術的解決策の特定の用途及び設計制約条件に依存する。当業者であれば、それぞれの特定の用途ごとに異なる方法を用いて説明された機能を実装できるが、その実装がこの出願の範囲を超えるものと考えられるべきでない。
便宜上及び簡便な説明のために、前述のシステム、装置、及びユニットの詳細な動作プロセスに関しては、前述の方法の実施形態における対応するプロセスを参照することが当業者によって明確に理解され得る。ここでは詳細は再び説明されない。
この出願において提供される幾つかの実施形態では、開示されたシステム、装置、及び方法を他の態様で実装できることが理解されるべきである。例えば、説明された装置の実施形態は単なる一例にすぎない。例えば、ユニットへの分割は、論理的な機能分割にすぎず、実際の実装では他の分割であってもよい。例えば、複数のユニット又は構成要素が他のシステムに組み合わされ又は他のシステムに組み込まれてもよく、或いは、一部の機能が無視され又は実行されなくてもよい。加えて、提示された又は述べられた相互接続或いは直接的な接続もしくは通信接続は、幾つかのインタフェースを介して実施されてもよい。装置又はユニットの間の間接的接続又は通信接続は、電子的な、機械的な、又は、他の形態で実施されてもよい。
別個の部分として記載されたユニットは、物理的に分離されていてもいなくてもよく、また、ユニットとして表示された部分は、物理ユニットであってもなくてもよく、1つの場所に位置されてもよく、或いは、複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、実施形態において解決策の目的を達成するように実際の要件に応じて選択されてもよい。
加えて、この出願の実施形態における機能ユニットが1つの処理ユニットに組み込まれてもよく、或いは、これらのユニットのそれぞれが物理的に単独で存在していてもよく、或いは、2つ以上のユニットが1つのユニットに組み込まれてもよい。
機能がソフトウェア機能ユニットの形で実装されて独立した製品として販売又は使用される場合には、機能がコンピュータ可読記憶媒体に記憶されてもよい。そのような理解に基づき、この出願の技術的解決策は本質的に、或いは、従来技術に寄与する部分又は技術的解決策の一部は、ソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に記憶されるとともに、この出願の実施形態に係る方法のステップの全部又は一部を実行するようにコンピュータデバイス(パーソナルコンピュータ、サーバ、又は、ネットワークデバイスであってもよい)に指示するための幾つかの命令を含む。前述の記憶媒体としては、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(read-only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、磁気ディスク、又は、光ディスクなどのプログラムコードを記憶することができる任意の媒体が挙げられる。
加えて、この出願における「及び/又は」という用語は、関連する対象間の関連関係のみを記述し、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、以下の3つのケース、すなわち、Aのみが存在するケース、A及びBの両方が存在するケース、及びBのみが存在するケースを表し得る。加えて、この明細書における文字「/」は、一般に、関連する対象間の「又は」の関係を示す。この出願における「少なくとも1つ」という用語は、「1つ」及び「2つ以上」を表し得る。例えば、A、B、及びCのうちの少なくとも1つは、以下の7つのケース、すなわち、Aのみが存在する、Bのみが存在する、Cのみが存在する、AとBの両方が存在する、AとCの両方が存在する、CとBの両方が存在する、並びにA、B、及びCが存在する、を示すことができる。
前述の説明は、この出願の特定の実施形態にすぎず、この出願の保護範囲を限定しようとするものではない。この出願に開示される技術的範囲内で当業者により容易に考え出されるいかなる変形又は置換も、この出願の保護範囲内にあるものとする。したがって、この出願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
10 装置
20 装置
110 処理ユニット
120 受信ユニット
210 処理ユニット
220 送信ユニット
300 電子デバイス
310 プロセッサ
320 外部メモリインタフェース
323 内部メモリ
330 ポート
340 充電管理モジュール
342 バッテリ
343 電力管理モジュール
350 移動通信モジュール
360 ワイヤレス通信モジュール
370 オーディオモジュール
370A スピーカ
370B 受信機
370C マイクロフォン
370D ヘッドセットジャック
380 センサモジュール
380A 圧力センサ
380B ジャイロセンサ
380C 気圧センサ
380D 磁気センサ
380E 加速度センサ
380F 距離センサ
380G 光学式近接センサ
380H 指紋センサ
380J 温度センサ
380K タッチセンサ
380L 周囲光センサ
380M 骨伝導センサ
390 ボタン
392 インジケータ
393 カメラ、モータ
394 ディスプレイ
395 カードインタフェース
1110 プロセッサ
1120 メモリ
1130 トランシーバ
1310 プロセッサ
1320 メモリ
1330 トランシーバ
この出願は、コンピュータ技術の分野に関し、より具体的には、第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置に関する。

Claims (31)

  1. 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法であって、
    前記第1のオペレーティングシステムのカーネル空間及びユーザ空間を前記第1のオペレーティングシステムの第1のアドレス空間に構成するとともに、前記第1のオペレーティングシステムの第2のアドレス空間を前記第2のオペレーティングシステムのために確保するステップであって、前記第1のオペレーティングシステムの仮想メモリアドレス空間が前記第1のアドレス空間及び前記第2のアドレス空間を含む、ステップと、
    前記第1のオペレーティングシステムにより、前記第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するステップと、
    前記第1のオペレーティングシステムにより、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報に基づいて前記第1のオペレーティングシステムの第2のレジスタを構成するステップであって、前記第2のレジスタが前記第1のオペレーティングシステムの前記第2のアドレス空間に対応する、ステップと、
    前記第1のオペレーティングシステムにより、前記第2のアドレス空間を使用することによって前記第2のオペレーティングシステムのカーネル空間内のリソースにアクセスするステップと
    を含む方法。
  2. 前記第1のアドレス空間が上位アドレス空間であり、前記第2のアドレス空間が下位アドレス空間であり、前記第1のオペレーティングシステムの前記上位アドレス空間の範囲は、前記第2のオペレーティングシステムのカーネルアドレス空間の範囲と一致する、請求項1に記載の方法。
  3. 前記第1のオペレーティングシステムにより、前記第2のオペレーティングシステムによって送信されるカーネルシンボルテーブル情報を受信するステップと、
    前記第1のオペレーティングシステムにより、前記カーネルシンボルテーブル情報を解析して前記第2のオペレーティングシステムの上位アドレス空間の変換関係を取得し、ユーザプロセスのユーザページテーブルベースアドレス情報を取得し、前記変換関係を使用することによってレベルごとにユーザページテーブルエントリコンテンツを読み出し、前記第2のオペレーティングシステムのユーザ空間内のリソースにアクセスするステップと
    を更に含む、請求項1又は2に記載の方法。
  4. 前記第1のオペレーティングシステムのカーネル空間及びユーザ空間を前記第1のオペレーティングシステムの第1のアドレス空間に構成する前記ステップは、
    前記第1のオペレーティングシステムにより、前記第1のオペレーティングシステムのカーネルページテーブル及びユーザページテーブルを前記第1のアドレス空間のページテーブルメモリに記憶するステップと、
    前記第1のオペレーティングシステムにより、前記第1のアドレス空間の前記ページテーブルメモリを前記第1のオペレーティングシステムの第1のレジスタに構成するステップと
    を含む、請求項1から3のいずれか一項に記載の方法。
  5. 第2のアドレス空間を前記第2のオペレーティングシステムのために確保する前記ステップは、
    前記第1のオペレーティングシステムにより、前記第2のオペレーティングシステムの上位アドレス空間に基づいて前記第2のアドレス空間を確保するステップ
    を含む、請求項1から4のいずれか一項に記載の方法。
  6. 前記第1のオペレーティングシステムにより、前記第2のオペレーティングシステムによって送信される要求メッセージを受信するステップであって、前記要求メッセージが、前記第2のオペレーティングシステムの前記カーネルページテーブルのカーネルシンボルテーブル情報及び前記レジスタ構成情報を伝送する、ステップ
    を更に含む、請求項1から5のいずれか一項に記載の方法。
  7. クライアントアプリケーション(CA)が前記第1のオペレーティングシステムに配置され、
    第2のアドレス空間を前記第2のオペレーティングシステムのために確保する前記ステップは、
    CA初期化プロセスにおいて、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報に基づいて前記第1のオペレーティングシステムのレジスタの構成を修正するステップ
    を含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記第1のオペレーティングシステムにより、前記第1のオペレーティングシステムのカーネルページテーブル及びユーザページテーブルを前記第1のアドレス空間のページテーブルメモリに記憶する前記ステップの前に、前記方法は、
    前記第1のオペレーティングシステムにより、ユーザアクセス不可能な許可制御を前記カーネルページテーブルに付加するステップと、
    前記第1のオペレーティングシステムにより、特権非実行(PXN)保護を前記ユーザページテーブルに付加するステップと
    を更に含む、請求項4に記載の方法。
  9. 前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報は、
    アドレス変換コントローラの構成情報、メモリ属性コントローラの構成情報、及びカーネル空間ページテーブルベースアドレスレジスタの構成情報
    を含む、請求項1から8のいずれか一項に記載の方法。
  10. 動的完全性測定モジュールが前記第1のオペレーティングシステムに配置され、前記動的完全性測定モジュールが前記第2のオペレーティングシステムにセキュリティサービスを提供するように構成される、請求項1から9のいずれか一項に記載の方法。
  11. 前記第1のオペレーティングシステムが前記第2のオペレーティングシステムの前記カーネル空間内の前記リソースにアクセスする間に例外が生じる場合、前記第1のオペレーティングシステムにより、例外関連情報を前記第2のオペレーティングシステムに送信するステップ
    を更に含む、請求項1から10のいずれか一項に記載の方法。
  12. リモートプロシージャコール(RPC)サービスが前記第1のオペレーティングシステムに配置され、
    前記第1のオペレーティングシステムにより、例外関連情報を前記第2のオペレーティングシステムに送信する前記ステップは、
    前記RPCサービスにより、前記例外関連情報を前記第2のオペレーティングシステムに送信するステップ
    を含む、請求項11に記載の方法。
  13. 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法であって、
    前記第2のオペレーティングシステムにより、前記第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するステップと、
    前記第2のオペレーティングシステムにより、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報を前記第1のオペレーティングシステムに送信するステップと
    を含む方法。
  14. 前記第2のオペレーティングシステムにより、前記第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得するステップと、
    前記第2のオペレーティングシステムにより、前記カーネルシンボルテーブル情報を前記第1のオペレーティングシステムに送信するステップと
    を更に含む、請求項13に記載の方法。
  15. カーネルドライバモジュールが前記第2のオペレーティングシステムに配置され、
    前記第2のオペレーティングシステムにより、前記第2のオペレーティングシステムのカーネルページテーブルのカーネルシンボルテーブル情報及び/又はレジスタ構成情報を取得する前記ステップは、
    前記カーネルドライバモジュールにより、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記カーネルシンボルテーブル情報及び/又は前記レジスタ構成情報を取得するステップ
    を含む、請求項13又は14に記載の方法。
  16. 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置であって、
    前記第1のオペレーティングシステムのカーネル空間及びユーザ空間を前記第1のオペレーティングシステムの第1のアドレス空間に構成するとともに、前記第1のオペレーティングシステムの第2のアドレス空間を前記第2のオペレーティングシステムのために確保するように構成される処理ユニットであって、前記第1のオペレーティングシステムの仮想メモリアドレス空間が前記第1のアドレス空間及び前記第2のアドレス空間を含む、処理ユニットと、
    前記第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される受信ユニットと
    を備え、
    前記処理ユニットは、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報に基づいて前記第1のオペレーティングシステムの第2のレジスタを構成するように更に構成され、前記第2のレジスタが前記第1のオペレーティングシステムの前記第2のアドレス空間に対応し、
    前記処理ユニットは、前記第2のアドレス空間を使用することによって前記第2のオペレーティングシステムのカーネル空間内のリソースにアクセスするように更に構成される、装置。
  17. 前記受信ユニットは、前記第2のオペレーティングシステムによって送信されるカーネルシンボルテーブル情報を受信するように更に構成され、
    前記処理ユニットは、前記カーネルシンボルテーブル情報を解析して前記第2のオペレーティングシステムの上位アドレス空間の変換関係を取得し、ユーザプロセスのユーザページテーブルベースアドレス情報を取得し、前記変換関係を使用することによってレベルごとにユーザページテーブルエントリコンテンツを読み出し、前記第2のオペレーティングシステムのユーザ空間内のリソースにアクセスするように更に構成される、請求項16に記載の装置。
  18. 前記処理ユニットが、前記第1のオペレーティングシステムのカーネル空間及びユーザ空間を前記第1のオペレーティングシステムの第1のアドレス空間に構成することは、
    前記処理ユニットが、前記第1のオペレーティングシステムのカーネルページテーブル及びユーザページテーブルを前記第1のアドレス空間のページテーブルメモリに記憶すること
    を含む、請求項16又は17に記載の装置。
  19. 前記処理ユニットが、第2のアドレス空間を前記第2のオペレーティングシステムのために確保することは、
    前記処理ユニットが、前記第2のオペレーティングシステムの上位アドレス空間に基づいて前記第2のアドレス空間を確保すること
    を含む、請求項16から18のいずれか一項に記載の装置。
  20. 前記第2のオペレーティングシステムによって送信される要求メッセージを受信するように構成される前記受信ユニットであって、前記要求メッセージが、前記第2のオペレーティングシステムの前記カーネルページテーブルのカーネルシンボルテーブル情報及び前記レジスタ構成情報を伝送する、前記受信ユニット
    を更に備える、請求項16から19のいずれか一項に記載の装置。
  21. クライアントアプリケーション(CA)が前記装置に配置され、
    前記処理ユニットが、第2のアドレス空間を前記第2のオペレーティングシステムのために確保することは、
    CA初期化プロセスにおいて、前記処理ユニットが、前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報に基づいて前記第1のオペレーティングシステムのレジスタの構成を修正すること
    を含む、請求項16から20のいずれか一項に記載の装置。
  22. 前記処理ユニットが、前記第1のオペレーティングシステムのカーネルページテーブル及びユーザページテーブルを前記第1のアドレス空間のページテーブルメモリに記憶する前に、前記処理ユニットは、ユーザアクセス不可能な許可制御を前記カーネルページテーブルに付加するとともに、特権非実行(PXN)保護を前記ユーザページテーブルに付加するように更に構成される、請求項21に記載の装置。
  23. 動的完全性測定モジュールが前記装置に配置され、前記動的完全性測定モジュールが前記第2のオペレーティングシステムにセキュリティサービスを提供するように構成される、請求項16から22のいずれか一項に記載の装置。
  24. 前記処理ユニットが前記第2のオペレーティングシステムの前記リソースにアクセスする間に例外が生じる場合、前記装置は、
    例外関連情報を前記第2のオペレーティングシステムに送信するように構成される送信ユニット
    を更に備える、請求項16から23のいずれか一項に記載の装置。
  25. リモートプロシージャコール(RPC)サービスが前記装置に配置され、
    前記送信ユニットが例外関連情報を前記第2のオペレーティングシステムに送信することは、
    前記RPCサービスが前記例外関連情報を前記第2のオペレーティングシステムに送信すること
    を含む、請求項24に記載の装置。
  26. 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための装置であって、
    前記第2のオペレーティングシステムのカーネルページテーブルのレジスタ構成情報を取得するように構成される処理ユニットと、
    前記第2のオペレーティングシステムの前記カーネルページテーブルの前記レジスタ構成情報を前記第1のオペレーティングシステムに送信するように構成される送信ユニットと
    を備える装置。
  27. 前記処理ユニットは、前記第2のオペレーティングシステムのカーネルシンボルテーブル情報を取得するように更に構成され、
    前記送信ユニットは、前記カーネルシンボルテーブル情報を前記第1のオペレーティングシステムに送信するように更に構成される、請求項26に記載の装置。
  28. カーネルドライバモジュールが前記装置に配置され、
    前記処理ユニットが、前記第2のオペレーティングシステムのカーネルページテーブルのカーネルシンボルテーブル情報及び/又はレジスタ構成情報を取得することは、
    前記カーネルドライバモジュールが前記第2のオペレーティングシステムの前記カーネルページテーブルの前記カーネルシンボルテーブル情報及び/又は前記レジスタ構成情報を取得すること
    を含む、請求項26又は27に記載の装置。
  29. 請求項16から25のいずれか一項に記載の装置と、請求項26から28のいずれか一項に記載の装置とを備える、電子デバイス。
  30. コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体がコンピュータプログラムを記憶し、前記コンピュータプログラムがコンピュータで実行されると、前記コンピュータは、請求項1から15のいずれか一項に記載の方法を実行可能となる、コンピュータ可読記憶媒体。
  31. チップであって、通信インタフェース、メモリ、及びプロセッサを備え、前記メモリは、コンピュータプログラムを記憶するように構成され、前記プロセッサは、前記チップが請求項1から15のいずれか一項に記載の方法を実施するように、前記メモリに記憶される前記コンピュータプログラムを読み出して実行するように構成される、チップ。
JP2022529685A 2019-11-22 2020-07-15 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置 Active JP7443519B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201911156149.8A CN111124664B (zh) 2019-11-22 2019-11-22 第一操作系统访问第二操作系统资源的方法和装置
CN201911156149.8 2019-11-22
PCT/CN2020/102032 WO2021098244A1 (zh) 2019-11-22 2020-07-15 第一操作系统访问第二操作系统资源的方法和装置

Publications (2)

Publication Number Publication Date
JP2023503110A true JP2023503110A (ja) 2023-01-26
JP7443519B2 JP7443519B2 (ja) 2024-03-05

Family

ID=70498040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022529685A Active JP7443519B2 (ja) 2019-11-22 2020-07-15 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置

Country Status (6)

Country Link
US (1) US12007906B2 (ja)
EP (1) EP4053700A4 (ja)
JP (1) JP7443519B2 (ja)
KR (1) KR20220093379A (ja)
CN (1) CN111124664B (ja)
WO (1) WO2021098244A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124664B (zh) 2019-11-22 2023-12-08 华为技术有限公司 第一操作系统访问第二操作系统资源的方法和装置
CN114091110A (zh) * 2020-08-04 2022-02-25 华为技术有限公司 一种完整性度量方法和完整性度量装置
CN112231124B (zh) * 2020-12-14 2021-03-19 支付宝(杭州)信息技术有限公司 基于隐私保护的应用间通信方法及装置
CN113538207B (zh) * 2021-09-17 2022-03-01 北京鲸鲮信息系统技术有限公司 跨进程调用的图形渲染方法、装置、电子设备与存储介质
CN114090096B (zh) * 2022-01-21 2022-04-15 成都云祺科技有限公司 一种网络虚拟文件系统实现方法、系统及存储介质
CN115658560B (zh) * 2022-12-28 2023-03-14 北京紫光芯能科技有限公司 一种数据共享管理方法、装置、系统、电子设备及存储介质
CN115858251B (zh) * 2023-01-18 2023-05-16 苏州浪潮智能科技有限公司 一种基板控制单元控制方法、装置及电子设备和存储介质
CN116185902B (zh) * 2023-04-13 2023-08-01 阿里云计算有限公司 一种表切分方法、系统、电子设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
JP2015064677A (ja) * 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、情報処理システム、プログラム
JP2016009884A (ja) * 2014-06-20 2016-01-18 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP2017162483A (ja) * 2015-08-25 2017-09-14 株式会社Seltech ハイパーバイザーを有するシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697070B1 (en) * 1985-09-13 2004-02-24 Renesas Technology Corporation Graphic processing system
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
CN1942859A (zh) * 2003-10-01 2007-04-04 扎鲁纳股份有限公司 操作系统
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
US20080307425A1 (en) * 2005-03-31 2008-12-11 Shailendra Tripathi Data Processing System and Method
CN102968342B (zh) * 2012-11-12 2015-03-11 华中科技大学 嵌入式平台下半虚拟化的快速切换客户操作系统的方法
WO2015176046A1 (en) * 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, apis of interest, and/or other features
CN105068859B (zh) * 2015-07-29 2017-12-15 上海谐桐信息技术有限公司 一种跨虚拟机的多服务调用方法及系统
US10387681B2 (en) * 2017-03-20 2019-08-20 Huawei Technologies Co., Ltd. Methods and apparatus for controlling access to secure computing resources
US10438019B2 (en) * 2017-05-04 2019-10-08 Microsoft Technology Licensing, Llc Cross container user model
US11074114B1 (en) * 2017-12-29 2021-07-27 Virtuozzo International Gmbh System and method for executing applications in a non-native environment
US10599835B2 (en) * 2018-02-06 2020-03-24 Vmware, Inc. 32-bit address space containment to secure processes from speculative rogue cache loads
CN110348252B (zh) * 2018-04-02 2021-09-03 华为技术有限公司 基于信任区的操作系统和方法
CN110874478B (zh) * 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
CN116680037A (zh) * 2019-05-05 2023-09-01 创新先进技术有限公司 数据隔离方法及装置、电子设备
CN111124664B (zh) 2019-11-22 2023-12-08 华为技术有限公司 第一操作系统访问第二操作系统资源的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
JP2015064677A (ja) * 2013-09-24 2015-04-09 株式会社東芝 情報処理装置、情報処理システム、プログラム
JP2016009884A (ja) * 2014-06-20 2016-01-18 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP2017162483A (ja) * 2015-08-25 2017-09-14 株式会社Seltech ハイパーバイザーを有するシステム

Also Published As

Publication number Publication date
US12007906B2 (en) 2024-06-11
US20220276968A1 (en) 2022-09-01
EP4053700A4 (en) 2022-11-23
CN111124664A (zh) 2020-05-08
JP7443519B2 (ja) 2024-03-05
EP4053700A1 (en) 2022-09-07
WO2021098244A1 (zh) 2021-05-27
CN111124664B (zh) 2023-12-08
KR20220093379A (ko) 2022-07-05

Similar Documents

Publication Publication Date Title
JP7443519B2 (ja) 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置
EP3629540B1 (en) Apparatus and method for secure memory access using trust domains
CN109783188B (zh) 用于安全公共云的密码存储器所有权表
JP4237190B2 (ja) 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム
US8954697B2 (en) Access to shared memory segments by multiple application processes
US10726120B2 (en) System, apparatus and method for providing locality assertion between a security processor and an enclave
US8495750B2 (en) Filesystem management and security system
TW202226782A (zh) 包括增強型密碼位址之密碼運算技術
US20150046924A1 (en) Transparent memory-mapped emulation of i/o calls
US20220277108A1 (en) Trusted Application Running Method, Information Processing Method, Memory Allocation Method, and Apparatus
US11803636B2 (en) Security system and method
US20210026543A1 (en) Secure address translation services permission table for trust domain extensions
US9158690B2 (en) Performing zero-copy sends in a networked file system with cryptographic signing
US20220012086A1 (en) Multiple secure virtual processors for a trust domain
US20060143411A1 (en) Techniques to manage partition physical memory
US20230018412A1 (en) Reverse shadow page tables for nested virtual machines
CN111666579A (zh) 计算机设备及其访问控制方法和计算机可读介质
CN109937407B (zh) 用于smm传输监控器的扩展存储器
CN116561824A (zh) 在机密计算架构中管理内存的方法和装置
CN115934382A (zh) 数据处理方法、装置、设备及存储介质
CN117851069A (zh) 内存虚拟化的性能优化方法、装置、电子设备及存储介质
CN116249972A (zh) 一种内存保护方法及保护代理控制装置
CN116628772A (zh) 使用物理地址访问权限表防止未经授权的存储器访问

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240221

R150 Certificate of patent or registration of utility model

Ref document number: 7443519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150