WO2021098244A1 - 第一操作系统访问第二操作系统资源的方法和装置 - Google Patents
第一操作系统访问第二操作系统资源的方法和装置 Download PDFInfo
- Publication number
- WO2021098244A1 WO2021098244A1 PCT/CN2020/102032 CN2020102032W WO2021098244A1 WO 2021098244 A1 WO2021098244 A1 WO 2021098244A1 CN 2020102032 W CN2020102032 W CN 2020102032W WO 2021098244 A1 WO2021098244 A1 WO 2021098244A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- operating system
- kernel
- page table
- address space
- information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/46—Indexing scheme relating to G06F9/46
- G06F2209/463—Naming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Definitions
- This application relates to the field of computer technology, and more specifically, to a method and device for a first operating system to access resources of a second operating system.
- TEE operating system is an operating environment that coexists with REE OS on electronic equipment. It provides reliable security services for REE OS. It has its own execution space and has a higher security level than REE OS, and TEE OS can The software and hardware resources to be accessed are separated from the REE OS, which is an isolated operating system.
- the present application provides a method and device for a first operating system to access resources of a second operating system by reserving high-order address space in the first operating system, and the first operating system multiplexes the registers of the kernel page table of the second operating system
- the configuration enables the first operating system to directly access the resources of the kernel space of the second operating system by enabling the upper address space, thereby improving the performance of the first operating system to access the resources of the second operating system.
- a method for a first operating system to access resources of a second operating system is provided, which can be executed by the first operating system, or can be executed by a chip or circuit in the first operating system.
- An operating system executes the method as an example for description.
- the method for the first operating system to access the resources of the second operating system includes: configuring the kernel space and user space of the first operating system in the first address space of the first operating system, and reserve for the second operating system A second address space, wherein the memory virtual address space of the first operating system includes the first address space and the second address space; the first operating system obtains the kernel page table of the second operating system The register configuration information; the first operating system configures the second register of the first operating system according to the register configuration information of the kernel page table of the second operating system, and the second register corresponds to the first operating system The second address space; the first operating system uses the second address space to access resources in the kernel space of the second operating system.
- the first operating system is configured by reserving the high address space in the first operating system and the register configuration information based on the kernel page table of the second operating system
- the second register corresponding to the upper address space of the first operating system enables the first operating system to directly access the resources of the kernel space of the second operating system when the reserved upper address space is enabled, thereby improving the access of the first operating system to the second operation The performance of system resources.
- the first address space is an upper address space; the second address space is a lower address space, and the upper address space of the first operating system is The kernel address space range of the second operating system is consistent.
- first address space and second address space respectively refer to the lower address space and the upper address space in the first operating system. In order to avoid the limitation of description, they are described as “first address space”. And the “second address space” do not limit the scope of protection of this application.
- the above-mentioned upper address space of the first operating system is consistent with the range of the kernel address space of the second operating system.
- the method further includes: the first operating system receives kernel symbol table information sent by the second operating system;
- the kernel symbol table information the obtained conversion relationship of the upper address space of the second operating system, the base address information of the user page table of the user process is obtained, the content of the user page table entry is read level by level using the conversion relationship, and the second operation is accessed The resources of the user space of the system.
- the above-mentioned first operating system can obtain the kernel symbol table information of the second operating system, and the conversion relationship between the high-order address space of the above-mentioned second operating system and the base address information of the user page table of the user process can be obtained after the conversion relationship is known. Under the premise of, you can read the content of the user page table entry level by level to access the resources of the user space of the second operating system.
- configuring the kernel space and the user space of the first operating system in the first address space of the first operating system includes: The kernel page table and user page table in the first operating system are stored in the page table memory of the first address space; the first operating system configures the page table memory of the first address space to the first operating system. register.
- reserving a second address space for the second operating system includes: the first operating system reserving a second address based on the upper address space of the second operating system space.
- the first operating system reserves the upper address space, it refers to the range of the upper address space in the second operating system, so that the first operating system can successfully base the register configuration information of the kernel page table of the second operating system Configure the second register corresponding to the upper address space of the first operating system.
- the method further includes: the first operating system receives a request message sent by the second operating system, and the request message carries kernel symbol table information and the second operating system. 2. Register configuration information of the kernel page table of the operating system.
- the first ashamed system can obtain the above-mentioned kernel symbol table information and the register configuration information of the kernel page table of the second operating system.
- the request message sent by the second operating system carries kernel symbol table information and register configuration information of the kernel page table of the second operating system.
- deploying a client application CA in the first operating system; and reserving a second address space for the second operating system by the first operating system includes: During the CA initialization process, the register configuration of the kernel page table of the first operating system is modified based on the register configuration information of the second operating system, so that the configuration of the second register of the first operating system is the same as the high bit of the second operating system.
- the register configuration is the same.
- a client application (CA) is deployed in the first operating system, and the CA is initialized based on the received second operating system
- the register configuration information modifies the register configuration of the first operating system, so that the configuration of the second register of the first operating system is the same as the configuration of the high-order register of the second operating system, which is how the first operating system reuses the second operating system
- the register configuration provides a feasible solution.
- the method before storing the kernel page table and the user page table in the first operating system in the page table memory of the first address space, the method further includes : The first operating system adds user inaccessibility control on the kernel page table; the first operating system adds non-executable privilege PXN protection on the user page table.
- the kernel page table and the user page table in the first operating system are stored in the same page table memory, in order to meet the requirements of the kernel page table and the user page table.
- Security requirements include adding user inaccessibility control to the kernel page table, and adding non-executable privilege PXN protection to the user page table, so that the kernel page table and the user page table are safe and independent.
- the register configuration information of the kernel page table of the second operating system includes: address translation controller configuration information, memory attribute controller configuration information, and kernel space page table base Address register configuration information.
- the register configuration information of the second operating system received by the first operating system includes multiple configuration information, and the second operation is multiplexed for the first operating system
- the register configuration of the system provides a more comprehensive choice.
- a dynamic measurement module is deployed in the first operating system, and the dynamic measurement module is configured to provide security services for the second operating system.
- the first operating system may include a dynamic measurement module to provide security protection for the second operating system.
- the first operating system when the first operating system accesses the resources of the kernel space of the second operating system abnormally, the first operating system sends the abnormal information to the second operating system. Two operating systems.
- the first operating system in the case of an abnormality in accessing resources across systems, can notify the accessed second operating system of information related to the abnormal situation , So that the second operating system can learn that an access exception occurs.
- the remote program debugging RPC service is deployed in the first operating system; the first operating system sends the abnormal information related to the second operating system includes : The RPC service sends the abnormal information to the second operating system.
- the remote program debugging RPC service can be deployed in the first operating system.
- the first operating system uses the RPC service Notify the second operating system of abnormal situation information.
- a method for a first operating system to access resources of a second operating system is provided, which can be executed by the second operating system, or can be executed by a chip or circuit in the second operating system.
- the operating system executes the method as an example for description.
- the method for the first operating system to access resources of the second operating system includes: the second operating system obtains register configuration information of the kernel page table of the second operating system; and the second operating system sends the first operating system to the first operating system. 2. Register configuration information of the kernel page table of the operating system.
- the method for the first operating system to access the resources of the second operating system can obtain the register configuration information of the kernel page table of the second operating system in the second operating system of the accessed resource in the cross-system access resource scenario,
- the register configuration information of the kernel page table of the second operating system is sent to the first operating system, so that the first operating system can reuse the register configuration of the kernel page table of the second operating system, thereby improving the performance of resource access between systems.
- the method further includes: the second operating system obtains kernel symbol table information of the second operating system; The first operating system sends the kernel symbol table information.
- the method for the first operating system to access the resources of the second operating system can obtain the kernel symbol table information of the second operating system in the second operating system of the accessed resource in the cross-system access resource scenario, and combine the The kernel symbol table information is sent to the first operating system, so that the first operating system can access the user page table of the second operating system level by level, thereby improving the performance of resource access between systems.
- a kernel driver module is deployed in the second operating system; the second operating system obtains the information of the kernel symbol table and/or the information of the kernel page table of the second operating system Register configuration information: The kernel driver module obtains the kernel symbol table information and/or the register configuration information of the kernel page table of the second operating system.
- the second operating system can obtain its own kernel symbol table information and the register configuration information of the second operating system may be in the second operating system
- the kernel driver module is deployed, and the kernel symbol table information and the register configuration information of the second operating system are obtained through the kernel driver module.
- the register configuration information of the kernel page table of the second operating system includes: address translation controller configuration information, memory attribute controller configuration information, and kernel space page table base Address register configuration information.
- the register configuration information of the second operating system includes various configuration information, which provides a more comprehensive way for the first operating system to reuse the register configuration of the second operating system s Choice.
- an apparatus for a first operating system to access resources of a second operating system includes a processor, configured to implement the method described in the first aspect above. A function of the operating system.
- the apparatus for the first operating system to access resources of the second operating system may further include a memory, the memory is coupled to the processor, and the processor is configured to implement the first operation in the method described in the first aspect.
- the memory is used to store program instructions and data.
- the memory is coupled with the processor, and the processor can call and execute program instructions stored in the memory to implement the function of the first operating system in the method described in the first aspect.
- the apparatus for the first operating system to access the resources of the second operating system may further include a communication interface, and the communication interface is used for the apparatus for accessing the resources of the second operating system by the first operating system to communicate with other devices.
- the communication interface is a transceiver, an input/output interface, or a circuit.
- the device for the first operating system to access resources of the second operating system includes a processor and a communication interface
- the processor is configured to run a computer program, and any one of the methods described in the first aspect is implemented by the device for the first operating system to access resources of the second operating system;
- the processor communicates with the outside by using the communication interface.
- the exterior may be an object other than the processor, or an object other than the device.
- the device for the first operating system to access the resources of the second operating system is a chip or a chip system.
- the communication interface may be an input/output interface, an interface circuit, an output circuit, Input circuit, pin or related circuit, etc.
- the processor may also be embodied as a processing circuit or a logic circuit.
- an apparatus for a first operating system to access resources of a second operating system includes a processor, configured to implement the method described in the second aspect above. 2. The function of the operating system.
- the apparatus for the first operating system to access resources of the second operating system may further include a memory, the memory is coupled to the processor, and the processor is configured to implement the second operation in the method described in the second aspect.
- the memory is used to store program instructions and data.
- the memory is coupled with the processor, and the processor can call and execute the program instructions stored in the memory to implement the function of the second operating system in the method described in the second aspect.
- the apparatus for the first operating system to access the resources of the second operating system may further include a communication interface, and the communication interface is used for the apparatus for accessing the resources of the second operating system by the first operating system to communicate with other devices.
- the communication interface is a transceiver, an input/output interface, or a circuit.
- the device for the first operating system to access resources of the second operating system includes a processor and a communication interface
- the processor communicates with the outside by using the communication interface
- the processor is configured to run a computer program, and any one of the methods described in the second aspect above can be implemented by the means for the first operating system to access resources of the second operating system.
- the exterior may be an object other than the processor, or an object other than the device.
- the first operating system accesses the device chip or chip system of the second operating system resource.
- the communication interface may be an input/output interface, interface circuit, output circuit, input circuit, pin or related circuit on the chip or chip system.
- the processor may also be embodied as a processing circuit or a logic circuit.
- a computer-readable storage medium on which a computer program is stored.
- the communication device When the computer program is executed by a communication device, the communication device enables the communication device to implement the first aspect and any possible implementation manner of the first aspect In the method.
- a computer-readable storage medium on which a computer program is stored.
- the communication device When the computer program is executed by a communication device, the communication device enables the communication device to implement the second aspect and any possible implementation manner of the second aspect In the method.
- a computer program product containing instructions when the instructions are executed by a computer, the communication device realizes the first aspect and the method in any possible implementation manner of the first aspect.
- a computer program product containing instructions, which when executed by a computer, cause a communication device to implement the second aspect and the method in any possible implementation manner of the second aspect.
- an electronic device including the apparatus for accessing resources of the second operating system by the first operating system shown in the third aspect and the apparatus for accessing resources of the second operating system by the first operating system shown in the fourth aspect.
- Figure 1 is a schematic block diagram of two operating systems.
- Fig. 2 is a schematic block diagram of a shared memory provided by an embodiment of the present application.
- FIG. 3 shows a schematic diagram of the structure of the electronic device 300.
- FIG. 4 is a schematic flowchart of a method for a first operating system to access resources of a second operating system according to an embodiment of the present application.
- FIG. 5 is a schematic block diagram of a first operating system accessing resources of a second operating system according to an embodiment of the present application.
- Fig. 6 is a schematic diagram of a flow of accessing a user page table provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of a processing flow for page fault exception provided by an embodiment of the present application.
- Fig. 8 is a schematic diagram of an exception handling process provided by an embodiment of the present application.
- Fig. 9 is a schematic block diagram of an operating system software provided by an embodiment of the present application.
- FIG. 10 is a schematic diagram of the device 10 for accessing resources of the second operating system by the first operating system proposed by the present application.
- FIG. 11 is a schematic structural diagram of a first operating system applicable to an embodiment of the present application.
- FIG. 12 is a schematic diagram of the apparatus 20 for accessing resources of the second operating system by the first operating system proposed in the present application.
- FIG. 13 is a schematic structural diagram of a second operating system applicable to an embodiment of the present application.
- Figure 1 is a schematic block diagram of two operating systems.
- the two operating systems include a local operating system and a peer operating system.
- the local operating system and the peer operating system have their own independent central processing unit (CPU) and a memory management unit ( Internal modules such as memory management unit (MMU), translation lookaside buffer (TLB), and page global directory (PGD) can also have their own independent external devices.
- CPU central processing unit
- MMU memory management unit
- TLB translation lookaside buffer
- PTD page global directory
- the operating system is not shown in Figure 1 External equipment, this application is not limited to this.
- a program in the local operating system is divided into multiple programs and loaded into the memory respectively.
- the multiple programs do not need to be connected to each other physically.
- the page table is logically used to string together discretely distributed multiple programs. Logically continuous program. Among them, the program is divided into small blocks of equal length. These small blocks are called pages.
- the memory is divided into frames of the same size as the pages. A page can be packed into a page frame and needs to be provided to the CPU. In the page table of the current task, the CPU searches for a certain page in a certain page frame of the memory according to the page table when executing the program, thereby completing the mapping from the logical address to the physical address.
- the local operating system finds the corresponding physical address #1 according to the virtual address #1 based on the page table in the local operating system, and the physical address #1 corresponds to the physical memory block #1, and the counterpart operation
- the system finds the corresponding physical address #2 based on the above virtual address #1 based on the page table in the opposite operating system.
- the physical address #2 corresponds to the physical memory block #2, and the physical memory block #1 is different from the physical memory block #2. Therefore, the local operating system and the peer operating system access different physical memory blocks based on different page tables.
- the page tables in the local operating system and the opposite operating system need to include virtual addresses #1 and The mapping relationship between physical memory block #2, that is to say, the page table in the local operating system needs to be updated, so that the local operating system finds the corresponding physical address according to the virtual address #1 based on the page table in the local operating system# 2.
- the specific process of the operating system accessing the physical memory block based on the page table is not limited, and the provisions of the current protocol can be referred to.
- the local operating system can be referred to as the first operating system, and the opposite operating system can be referred to as the second operating system; the local operating system can also be referred to as a secure isolation operating system, and the opposite operating system can also be referred to as It is the mainstream operating system.
- the two operating systems can also be referred to as dual systems, multi-processor systems, and so on.
- the security issues of REE OS include confidentiality, integrity, and availability.
- a possible implementation is to use dynamic measurement technology to provide integrity security services for REE OS.
- dynamic measurement technology analyzes REE OS memory data and detects whether REE OS is threatened to protect REE OS memory data from unauthorized access. modify.
- the security of the dynamic measurement module can be protected by deploying the dynamic measurement module in the TEE OS to ensure the security of the dynamic measurement module.
- the dynamic measurement module is deployed in the TEE OS and accessing REE OS resources mainly involves accessing REE OS. Measurement objects such as user process code segment, kernel code segment, dynamic shared library code segment, etc.
- the dynamic measurement module deployed in TEE OS needs to monitor the integrity of REE OS resources to ensure that the REE OS is trustworthy.
- the dynamic measurement module cannot access REE OS resources efficiently and in real time.
- the method for the first operating system to access the resources of the second operating system provided in the embodiments of the present application can improve the performance of the dynamic measurement module deployed in the TEE OS to access the resources of the REE OS in this case, which will be described below in conjunction with the embodiments.
- the REE OS involved in this application includes a Linux operating system, an Android operating system, and the like.
- the first, second, and various numerical numbers in this application are used to distinguish similar objects, and are not necessarily used to describe a specific sequence or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances. It is not used to limit the scope of the embodiments of the present application. For example, distinguish different operating systems, etc. In the same way, the labels "#1" and "#2" in this application are also used to distinguish similar objects, for example, to distinguish different addresses.
- FIG. 2 is a schematic block diagram of a shared memory provided by an embodiment of the present application.
- the local operating system accesses the application code segment running in the opposite operating system, and the physical address of the application code segment running in the opposite operating system needs to be known in advance.
- the opposite operating system actively transfers the physical address to the local operating system.
- the local operating system After the local operating system receives the physical address, it actively maps the physical page frame and adds it to the page table entry of the local operating system, so that the peer operating system and the local operating system can directly access this through a similar shared memory method. Block of memory.
- the local operating system needs to map a lot of physical memory blocks, the performance is very poor, and the local operating system maps all of the peer operating system Resources, the security of the local operating system is affected; when the local operating system cannot identify the content of the physical memory block, it will also affect the content of the memory block used by the local operating system; when the peer operating system is page swapped , The local operating system accesses the data in the peer operating system out of synchronization.
- the local operating system can also achieve the purpose of accessing the resources of the opposite operating system by copying the page table resources of the opposite operating system.
- the local operating system copies all entries of the kernel page table (or user page table) of the peer operating system to the page table memory of the local operating system through software traversal, and the local operating system completes the page table entry mapping step by step. In this way, the local operating system and the opposite operating system can use the same page table conversion relationship to access the same page frame content.
- the page global directory contains the addresses of several page upper directories (PUD), and the PUD in turn contains the addresses of several page middle directories (PMD).
- PUD contains the addresses of several page table entries (PTE), and each PTE points to a page frame.
- the local operating system knows the virtual address (VA) of the user program in the peer operating system, and the user process page table base address (usually the PGD address is directly filled in the page table base address register) .
- VA virtual address
- the user process page table base address usually the PGD address is directly filled in the page table base address register
- the PGD physical address is mapped to the kernel page table of the local operating system.
- the PGD virtual address is obtained through the page table conversion relationship in the local operating system, and the content of this virtual address is read.
- the content of the entry is obtained, and the physical address of the first-level page table (page upper-level directory, PUD) is stored; the same mechanism is used to obtain the virtual address of the PUD entry to determine whether the current PUD entry contains the VA that currently needs to be mapped, if it does not contain the current VA, then the PUD entry is shifted by one level of page table granularity, continue to determine whether the PUD entry contains this VA, and if it does not, return an empty address. If included, the middle directory entry of the Walk page uses the same method until the real PTE is found level by level, and finally the corresponding PTE is mapped to the local operating system for use.
- PUD page upper-level directory
- this application provides a method for the first operating system to access the resources of the second operating system.
- the local operating system reuses the register configuration of the opposite operating system to avoid pages. Table copy, page table synchronization, etc. realize fast access to resources.
- TEE is a concept proposed by the global platform (GP).
- TEE OS is an operating environment that coexists with REE OS on the device and provides security services for REE OS.
- TEE OS has its own execution space, which has a higher security level than REE OS. This application will take REE OS and TEE OS as examples.
- TEE OS runs in electronic equipment and provides a safety framework between REE OS and safe environment (SE). For example, for certain small payments, corporate virtual private networks (virtual private networks, VPNs), etc., the required security protection strength is not high, and a separate SE is not needed for protection, nor can it be directly placed in REE OS. , In case of being attacked due to the openness of REE OS. Therefore, for such applications, TEE OS can provide security protection.
- SE safe environment
- TEE OS provides a secure execution environment for trusted applications (TA), while also protecting the confidentiality, integrity, and access rights of TA's resources and data.
- TA trusted applications
- each TA is independent of each other and cannot access each other without authorization.
- the electronic device may also include other functions such as portable electronic devices, such as mobile phones, tablet computers, wearable electronic devices with wireless communication functions (such as smart watches), and so on.
- portable electronic devices include, but are not limited to, carrying Or portable electronic devices with other operating systems.
- the above-mentioned portable electronic device may also be other portable electronic devices, such as a laptop computer (Laptop) and the like. It should also be understood that, in some other embodiments, the above-mentioned electronic device may not be a portable electronic device, but a desktop computer.
- the electronic device may be a smart home appliance, such as a smart speaker or a smart home device.
- the electronic device may be an in-vehicle device, a vehicle, or the like.
- the vehicle-mounted device may be a device with processing capabilities such as an intelligent driving computing platform or an in-vehicle data processing platform, and the aforementioned first operating system and second operating system run on the intelligent driving computing platform or an in-vehicle data processing platform.
- the intelligent driving computing platform or the vehicle-mounted data processing platform may be a mobile data center (mobile data center, MDC).
- FIG. 3 shows a schematic structural diagram of the electronic device 300.
- the electronic device 300 may include a processor 310, an external memory interface 320, an internal memory 323, a universal serial bus (USB) interface 330, a charging management module 340, a power management module 343, a battery 342, an antenna 1, and an antenna 2.
- Mobile communication module 350 wireless communication module 360, audio module 370, speaker 370A, receiver 370B, microphone 370C, earphone jack 370D, sensor module 380, buttons 390, motor 393, indicator 392, camera 393, display 394, and Subscriber identification module (subscriber identification module, SIM) card interface 395, etc.
- SIM Subscriber identification module
- the sensor module 380 can include pressure sensor 380A, gyroscope sensor 380B, air pressure sensor 380C, magnetic sensor 380D, acceleration sensor 380E, distance sensor 380F, proximity light sensor 380G, fingerprint sensor 380H, temperature sensor 380J, touch sensor 380K, ambient light Sensor 380L, bone conduction sensor 380M, etc.
- the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the electronic device 300.
- the electronic device 300 may include more or fewer components than shown, or combine certain components, or split certain components, or arrange different components.
- the illustrated components can be implemented in the form of hardware or a combination of software and hardware.
- the electronic device 300 may not include the sensor module 380, the speaker 370A, the receiver 370B, the microphone 370C and other components, but may communicate with the sensor in a wired or wireless form.
- the module 380, the speaker 370A, the receiver 370B, and the microphone 370C perform data transmission.
- the page table is a special data structure that is placed in the page table area of the operating system space and stores the mapping from virtual addresses to physical addresses.
- the logical address refers to the address generated by the central processing unit (CPU). Specifically, the logical address generated by the CPU is divided into a page number (p) and a page offset (d).
- the page number contains each The base address of the page in the physical memory is used as the index of the page table, and the page offset is combined with the base address to determine the physical memory address of the device; the physical address refers to the address seen by the memory unit.
- the logical address space is 2 ⁇ m, and the page size is 2 ⁇ n, then the high m-n bits of the logical address represent the page number, and the low n bits represent the page offset. Realize the address mapping from page number to physical block number.
- the process of converting a logical address into a physical address is: use the page number p to retrieve the page table, get the physical block number of the page from the page table, and load it into the physical address register. At the same time, the address d in the page is directly sent to the address field in the block of the physical address register. In this way, the content of the physical address register is the actual memory access address that is spliced by the two, thus completing the conversion from the logical address to the physical address.
- fixed-size pages are used to describe the logical address space
- page frames of the same size are used to describe the physical memory space.
- the operating system implements page mapping from logical pages to physical page frames, and is responsible for the management and processing of all pages. Operational control.
- Translation lookaside buffer translation lookaside buffer, TLB.
- each row in the TLB stores a block composed of a single page table entry (PTE), and these blocks are currently the most likely page table entries to be accessed. If the page number is in the TLB, get the frame number to access the memory; otherwise, get the frame number from the page table in the memory and store it in the TLB access memory.
- PTE page table entry
- the working principle includes periodically/actively measuring the unchanging part of the memory when the operating system is running, calculating the hash value representing its integrity, comparing the hash value with the benchmark value, and judging whether it is malicious based on this
- the attack tampered with the memory image of the measurement object.
- the baseline value can be calculated from the memory image when the process is first loaded into the memory, or it can be established offline according to the ELF file corresponding to the application.
- used to indicate can include both used for direct indication and used for indirect indication.
- the indication information can directly indicate A or indirectly indicate A, but it does not mean that A must be included in the indication information.
- the information used for the indication can be called the information to be indicated.
- the information to be indicated may be directly indicated, such as the information to be indicated itself or the index of the information to be indicated.
- the information to be indicated can also be indicated indirectly by indicating other information, where there is an association relationship between the other information and the information to be indicated. It is also possible to indicate only a part of the information to be indicated, while other parts of the information to be indicated are known or agreed in advance. For example, it is also possible to realize the indication of specific information by means of the pre-arranged order (for example, stipulated in the agreement) of the various information, thereby reducing the indication overhead to a certain extent.
- the first, second, and various numbers are only for easy distinction for description, and are not used to limit the scope of the embodiments of this application. For example, distinguish different operating systems, etc.
- saving may mean saving in one or more memories.
- the one or more memories may be provided separately or integrated in an encoder, decoder, processor, or communication device.
- the one or more memories may also be partly provided separately, and partly integrated in the encoder, decoder, processor, or communication device.
- the type of the memory can be any form of storage medium, which is not limited in this application.
- FIG. 4 is a schematic flowchart of a method for a first operating system to access resources of a second operating system according to an embodiment of the present application.
- the execution body includes a first operating system and a second operating system, and the method for the first operating system to access resources of the second operating system is explained from the interaction between the first operating system and the second operating system.
- the method for the first operating system to access the resources of the second operating system can be applied to the two operating system scenarios described in FIG. 1, where the first operating system and the second operating system constitute two operating system scenarios.
- the first operating system and the second operating system belong to the same architecture, for example, the first operating system and the second operating system both belong to the x86 architecture, or the first operating system and the second operating system belong to both ARM Architecture.
- the method for the first operating system to access the resources of the second operating system includes all or part of the following steps.
- the first operating system stores the kernel page table and the user page table in the first operating system in the page table memory of the lower address space.
- the first operating system includes generating the above-mentioned kernel page table and user page table Module.
- the kernel page table involved in the embodiment of this application includes a section of memory stored in the main kernel page global directory.
- the hardware is not directly used.
- the content of the kernel page table is shared by all processes, and the kernel page table is maintained and updated by the kernel.
- the user page table involved in the embodiment of the present application includes its own page table for each process, which is placed in the page directory of the process.
- the embodiment of the present application mainly relates to the register that stores the memory configuration of the page table.
- the first operating system After the first operating system stores the kernel page table and user page table in the first operating system in the page table memory of the lower address space, it configures the page table memory of the lower address space to the first register, and the first register corresponds to the first register.
- An address space The first operating system reserves a second address space based on the upper address space of the second operating system. The first address space is used by the user and the kernel. The first address space is different from the second address space. The address space is an address space in the virtual address space in the first operating system except for the first address space that has been used.
- the current operating system adopts a virtual memory design.
- the virtual address space of a 32-bit Linux memory is usually divided into 0 ⁇ 3G as user space and 3 ⁇ 4G as kernel space.
- 0 ⁇ 3G are understood as the low address space
- 3 ⁇ 4G are understood as the high address space.
- the high address space is used by the Linux system kernel and cannot be accessed by application programs.
- the lower address space is accessible by the user program.
- the kernel space and user space of the first operating system in the embodiments of this application both use the first address space.
- the first address space is understood as the lower address space in the memory virtual address space of the first operating system.
- the first register can be understood as the register corresponding to the lower address space.
- the first operating system reserves the second address space, which is not used by the kernel of the first operating system, and the second address space is understood as the upper address space. That is to say, during the initialization process of the first operating system, the high address space of the first operating system is reserved based on the high address space in the virtual address space of the second operating system.
- the second operating system is 32 bits For Linux system
- the virtual address space of the second operating system is divided from 0 to 3G as user space, and 3 to 4G as kernel space.
- the first operating system can reserve 3 to 4G of the upper address space of the first operating system. come out.
- the address space of the first operating system is divided
- the division of the address space with the second operating system should be consistent.
- the virtual address space divisions of the first operating system and the second operation are both 0 ⁇ 3G for the low address space, and 3 ⁇ 4G for the high address space.
- the virtual address space of the first operating system and the second operating system are both divided 0 ⁇ 3G is the low address space, and 3 ⁇ 4G is the high address space are just examples, and do not constitute any limitation to the scope of protection of this application.
- Other possible system low address space and high address space division can refer to the existing division method. This application will not go into details here.
- PXN privileged execute never
- the first operating system in the embodiment of the present application can obtain the register configuration information of the kernel page table of the second operating system.
- the first operating system actively obtains the register configuration information of the kernel page table of the second operating system.
- an acquisition module is deployed in the first operating system for acquiring register configuration information of the kernel page table of the second operating system.
- the first operating system receives the register configuration information of the kernel page table of the second operating system from the second operating system.
- a receiving module is deployed in the first operating system for receiving register configuration information of the kernel page table of the second operating system.
- the first operating system can also obtain the kernel symbol table information of the second operating system, and parse the kernel symbol table information to obtain the conversion relationship of the upper address space of the second operating system, and obtain the user page table base address information of the user process, Use the conversion relationship to read the content of the user page table entry level by level, and access the resources of the user space of the second operating system.
- the kernel symbol table information includes the information of the kernel stack of the user process and the structure offset (the address space descriptor of the process (for example, code segment, data segment, stack, file system information, etc.), process descriptor). Obtain the address range of the code segment or data segment according to the information of the kernel stack and the structure offset.
- a kernel driver module may be deployed in the second operating system, and the kernel driver module is used to obtain kernel symbol table information of the second operating system and register configuration information of the kernel page table of the second operating system.
- the kernel driver module obtains the above-mentioned kernel symbol table information of the second operating system and the register configuration information of the kernel page table of the second operating system, it can be stored in the local storage module of the second operating system. , So that the first operating system can be actively obtained.
- the kernel driver module after the kernel driver module obtains the above-mentioned kernel symbol table information of the second operating system and the register configuration information of the kernel page table of the second operating system, it can initiate an active request to transfer the obtained first.
- the kernel symbol table information of the second operating system and the register configuration information of the kernel page table of the second operating system are notified to the first operating system, and the method flow shown in FIG. 4 may further include:
- S120 The second operating system sends a request message to the first operating system.
- the request message carries the aforementioned kernel symbol table information and/or register configuration information of the kernel page table of the second operating system, and the request message is used to request the first operating system to modify the register configuration of the first operating system.
- the request message includes the above-mentioned kernel symbol table information of the second operating system and/or the register configuration information of the kernel page table of the second operating system
- the first operating system may be based on the received
- the register configuration information of the kernel page table of the second operating system configures the register configuration of the first operating system, so that the register configuration corresponding to the high address space of the first operating system is the same as the register configuration corresponding to the high address space of the second operating system. It is understood that the register configuration corresponding to the high address space of the first operating system multiplexes the register configuration corresponding to the high address space of the second operating system. That is, the method flow shown in FIG. 4 further includes: S130, the first operating system configuration register.
- a client application is deployed in the first operating system before receiving the above request message, and the CA is based on the received register configuration of the kernel page table of the second operating system The information configures the register configuration corresponding to the upper address space of the first operating system;
- the above CA is deployed in the first operating system, and the CA configures the first operating system based on the received register configuration information of the kernel page table of the second operating system.
- the register configuration corresponding to the upper address space of;
- the above CA is deployed in the first operating system when the above request message is received, and the CA configures the first operating system based on the received register configuration information of the kernel page table of the second operating system The register configuration corresponding to the upper address space of the.
- the register configuration of the kernel page table of the second operating system includes the configuration of the address translation controller, the memory attribute controller, and the upper space page table base address register. After the first operating system completes the register configuration corresponding to the upper address space of the first operating system, the first operating system and the second operating system have the same upper space page table base address register configuration.
- the first operating system may obtain the kernel symbol table information of the second operating system, and the first operating system may store the aforementioned kernel symbol table information of the second operating system.
- the first operating system configures the second register corresponding to the upper address space of the first operating system according to the register configuration information of the kernel page table of the second operating system
- the first operating system After the first operating system enables the upper address space, the first operating system An operating system has the authority to directly access resources in the kernel space of the second operating system, and can access the same high address space as the second operating system.
- the first operating system After the first operating system receives the above-mentioned kernel symbol table information, it can obtain the conversion relationship of the upper address space of the second operating system, obtain the user page table base address information of the user process, and use the conversion relationship to read the user page table entries level by level. Content, access to the resources of the user space of the second operating system.
- FIG. 5 is a schematic block diagram of a first operating system accessing resources of a second operating system according to an embodiment of the present application.
- Linux OS usually uses 128T addresses of 0x0000-0000-0000 ⁇ 0x0000-7fff-fff-f000 in the 64-bit address space for user space, and 0xffff-8000 ⁇ 0000-0000 are system kernel space addresses.
- the kernel page table and user page table are stored in the same continuous memory, and the memory base address is configured in TTBR0_EL1 (lower space page table base address register), and both the kernel space and user space use low addresses space.
- the first operating system configures the kernel page table, the user mode inaccessibility control is added, the user page table is configured, and the PXN protection is added; and it is necessary to ensure the high address space range of the first operating system and the kernel address of the second operating system The space is kept consistent (for example, it is ensured that 0xffff-8000 ⁇ 0000-0000 in the 64-bit address space of the first operating system are high-order address spaces).
- the kernel driver module to Linux OS to obtain the kernel symbol table information of Linux OS and some key system register configuration (register configuration information related to the kernel page table, for example, TCR_EL1 (address translation controller configuration), TTBR1_EL1 (Low space page table base address register), MAIR_EL1 (memory attribute register) and other register configurations), and send the obtained kernel symbol table information and some key system register configurations to the first operating system, so that the first operating system is reused
- the upper address space of the second operating system is configured, so the first operating system can access data in the upper address space range of the second operating system.
- the operating system architecture of the X86 system is also similar, and the register configuration also needs to ensure that the upper address space range of the local operating system (first operating system) needs to be consistent with the kernel address space range of the opposite operating system (second operating system).
- the register name may be different from the operating system architecture of the ARM system, but the principle is the same, which will not be repeated in this application.
- the first operating system can access the user page table resources of the second operating system in the form of software (software relationship: Table_Entry[(VA>>(39-Level*9))&0x1FF], Level is the page table level), namely
- the method flow shown in FIG. 4 further includes S140: the first operating system accesses the user page table resource of the second operating system.
- FIG. 6 is a schematic diagram of a flow of accessing a user page table provided by an embodiment of the present application.
- the second operating system has a four-level paging mechanism: PGD includes addresses of several PUDs, PUD includes addresses of several PMDs, PMD includes addresses of several PTEs, and each PTE points to a page frame.
- the first operating system needs to access the content of the physical page frame corresponding to a certain VA.
- the specific visit process is as follows:
- the first operating system uses the existing high-order address translation relationship (there is no need to copy the page table resources of the second operating system as shown in the previous article) to obtain the VA corresponding to the user process PGD in the second operating system.
- PUD entry physical address determine whether the second-level page table entry is a valid entry. If it is a valid entry, use PUD[(VA>>(39-2*9))&0x1FF] to obtain the physical address of the second-level page table entry.
- the real page frame corresponding to the process code segment can be obtained.
- use the linear relationship between the high address of the second operating system to convert the virtual address of the PTE page frame, and the first operating system can access the content of the virtual address of the second operating system; the whole requires only 4 simple linear conversion steps to quickly obtain the first operating system.
- Resources on the specific physical page frame of the operating system That is, the user page table resource is accessed, and the first operating system can quickly access it through software quick indexing.
- the first operating system can access all peripherals connected to the address bus through the address bus, including physical memory, IO devices, etc., but the access address sent from the first operating system is not the physical address of these peripherals on the address bus , But a virtual address.
- the MMU converts the virtual address into a physical address and then sends it out from the address bus. The conversion relationship between the virtual address and the physical address on the MMU needs to be created. When a virtual address to a physical address is not created If an illegal address is accessed due to incorrect mapping or programming, the MMU will notify the first operating system to generate a page fault exception.
- the first operating system when the first operating system accesses the resources of the second operating system abnormally, the first operating system sends the abnormal information to the second operating system, specifically in the first operating system A remote procedure call (remote procedure call, RPC) service is deployed, and the RPC service sends the abnormality-related information to the second operating system.
- RPC remote procedure call
- FIG. 7 is a schematic diagram of a page fault processing flow provided by an embodiment of the present application.
- the RPC service is deployed in the first operating system.
- the CA program in the first operating system transparently transmits the abnormal RPC request for page faults back to the second operating system through the RPC service, and actively transmits the page fault process number and the virtual address corresponding to the page fault.
- the second operating system uses the page fault handler of the second operating system to set the relevant memory page, locks the memory page in the memory, and responds to the first operating system’s RPC request.
- the CA in the first operating system performs subsequent corresponding processing according to the result returned by the second operating system. If the result returned by the second operating system is successful, the second operating system can normally access the user process resource, otherwise the access is denied.
- FIG. 8 is a schematic diagram of an exception handling process provided by an embodiment of the present application.
- the first operating system performs exception handling. First, it needs to analyze the source of the address. If it is the first operating system address access error, enter the first operating system exception handler for processing, otherwise, use the RPC service to route back to the second operating system for processing. Handed over to the second operating system for processing.
- the method shown in Figure 4 can be used in the different operating system shown in Figure 1.
- the software operating system corresponding to the different operating system shown in Map 1 is shown in Figure 9, and Figure 9
- Figure 9 It is a schematic block diagram of operating system software provided by an embodiment of the present application.
- the block started by symbol (BSS) segment usually refers to a memory area used to store uninitialized global variables in the program.
- the BSS segment belongs to static memory allocation.
- Data segment usually refers to a memory area used to store initialized global variables in the program.
- the data segment belongs to static memory allocation.
- Code segment usually refers to a memory area used to store program execution code. The size of this area is determined before the program runs, and the memory area is usually read-only. Certain architectures also allow the code segment to be writable, that is, the program is allowed to be modified. In the code segment, there may also be some read-only constant variables, such as string constants.
- the user stores the local variables temporarily created by the program.
- the stack can be regarded as a memory area for registering and exchanging temporary data. It is allocated by the operating system and the memory application and recovery are managed by the system.
- BIN files are raw binary files, which only contain machine code.
- the ELF file also contains other additional information, such as the load address of the segment, the run address, the relocation table, the symbol table, and so on.
- the specific division of operating system software is not limited, and reference may be made to the software division of the current two operating systems.
- the above operating system software is divided into two domains: a secure domain and a non-secure domain, where the secure domain corresponds to a securely isolated operating system, and the non-secure domain corresponds to a mainstream operating system.
- a dynamic integrity measurement (DIM) module can be deployed in the security isolation operating system.
- the security isolation operating system may be referred to as the local operating system, or the first operating system, and the mainstream operating system.
- the peer operating system can also be called the second operating system. That is to say, a dynamic measurement module can be deployed in the first operating system in this application to provide security protection for the second operating system.
- the method for the first operating system to access the resources of the second operating system provided in this application can be applied in the field of autonomous driving. For example, the second operating system interacts with the user, and the software security service access is deployed in the first operating system.
- the size of the sequence numbers of the foregoing processes does not mean the order of execution, and the execution order of the processes should be determined by their functions and internal logic, and should not constitute the implementation process of the embodiments of this application. Any restrictions.
- FIG. 10 is a schematic diagram of an apparatus 10 for accessing resources of a second operating system by a first operating system proposed in the present application.
- the device 10 includes a processing unit 110 and a receiving unit 120.
- the processing unit 110 is configured to configure the kernel space and user space of the first operating system in the first address space of the first operating system, and reserve a second address space for the second operating system, where the The memory virtual address space of the first operating system includes the first address space and the second address space;
- the receiving unit 120 is configured to obtain register configuration information of the kernel page table of the second operating system
- the processing unit 110 is further configured to configure the second register of the first operating system according to the register configuration information of the kernel page table of the second operating system, and the second register corresponds to all the registers of the first operating system.
- the processing unit 110 is further configured to use the second address space to access resources of the kernel space of the second operating system.
- the device 10 completely corresponds to the first operating system in the method embodiment, and the device 10 may be the first operating system in the method embodiment, or a chip or functional module inside the first operating system in the method embodiment.
- the corresponding unit of the device 10 is used to execute the corresponding steps executed by the first operating system in the method embodiment shown in FIG. 4.
- processing unit 110 in the device 10 executes the steps implemented or processed internally by the first operating system in the method embodiment.
- executing step S110 of initialization in FIG. 4 is also used to execute step S130 of configuring registers in FIG. 4.
- the receiving unit 120 executes the steps received by the first operating system in the method embodiment. For example, step S120 of receiving a request message from the second operating system in FIG. 4 is performed.
- the apparatus 10 may further include a sending unit, configured to execute the steps sent by the first operating system, for example, sending information to other devices.
- the sending unit and the receiving unit 120 may constitute a transceiver unit, and have the functions of receiving and sending at the same time.
- the processing unit 110 may be a processor.
- the sending unit may be a transmitter, and the receiving unit 120 may be a receiver. The receiver and transmitter can be integrated to form a transceiver.
- FIG. 11 is a schematic structural diagram of a first operating system applicable to an embodiment of the present application.
- the first operating system can be applied to the two operating systems shown in FIG. 1.
- FIG. 11 only shows the main components of the first operating system.
- the first operating system includes a processor 1110 (corresponding to the processing unit 110 shown in FIG. 10), a memory 1120, and a transceiver 1130 (corresponding to the receiving unit 120 shown in FIG. 10).
- the processor is used to control the transceiver to send and receive information
- the memory is used to store a computer program
- the processor is used to call and run the computer program from the memory to execute the method for the first operating system to access the resources of the second operating system proposed in this application.
- FIG. 11 only shows a memory and a processor. In the actual first operating system, there may be multiple processors and memories.
- the memory may also be referred to as a storage medium or a storage device, etc., which is not limited in the embodiment of the present application.
- FIG. 12 is a schematic diagram of an apparatus 20 for a first operating system to access resources of a second operating system proposed in the present application.
- the device 20 includes a processing unit 210 and a sending unit 220.
- the processing unit 210 is configured to obtain register configuration information of the kernel page table of the second operating system
- the sending unit 220 is configured to send register configuration information of the kernel page table of the second operating system to the first operating system.
- the device 20 completely corresponds to the second operating system in the method embodiment, and the device 20 may be the second operating system in the method embodiment, or a chip or functional module inside the second operating system in the method embodiment.
- the corresponding unit of the device 20 is used to execute the corresponding steps executed by the second operating system in the method embodiment shown in FIG. 4.
- the sending unit 220 in the device 20 executes the steps sent by the second operating system in the method embodiment. For example, step S120 of sending a request message to the first operating system in FIG. 4 is performed.
- the processing unit 210 in the device 20 executes the steps implemented or processed internally by the second operating system in the method embodiment.
- the apparatus 20 may further include a receiving unit, configured to execute the steps received by the second operating system, for example, receiving information sent by other devices.
- the receiving unit and the sending unit 210 may constitute a transceiver unit, and have the functions of receiving and sending at the same time.
- the processing unit 110 may be a processor.
- the transmitting unit 210 may be a transmitter.
- the receiving unit may be a receiver. The receiver and transmitter can be integrated to form a transceiver.
- FIG. 13 is a schematic structural diagram of a second operating system applicable to an embodiment of the present application.
- This second operating system can be applied to the two operating systems shown in FIG. 1.
- FIG. 13 only shows the main components of the second operating system.
- the first operating system includes a processor 1310 (corresponding to the processing unit 210 shown in FIG. 12), a memory 1320, and a transceiver 1330 (corresponding to the sending unit 220 shown in FIG. 12).
- the processor is used to control the transceiver to send and receive information
- the memory is used to store a computer program
- the processor is used to call and run the computer program from the memory to execute the method for the first operating system to access the resources of the second operating system proposed in this application.
- An embodiment of the present application also provides an electronic device, which includes the aforementioned first operating system and second operating system.
- the electronic device may also include other peripherals. As shown in FIG. 3, both the first operating system and the second operating system may be provided in the processor 310.
- the present application also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium.
- the computer executes the first operating system in the method shown in FIG. 4 The various steps.
- the present application also provides a computer-readable storage medium that stores instructions in the computer-readable storage medium.
- the computer executes the second operating system in the method shown in FIG. 4 The various steps.
- This application also provides a computer program product containing instructions.
- the computer program product runs on a computer, the computer executes the steps executed by the first operating system in the method shown in FIG. 4.
- This application also provides a computer program product containing instructions.
- the computer program product runs on a computer, the computer executes the steps executed by the second operating system in the method shown in FIG. 4.
- the application also provides a chip including a processor.
- the processor is used to read and run the computer program stored in the memory to execute the corresponding operation and/or process executed by the first operating system in the method for the first operating system to access the resources of the second operating system provided in the present application.
- the chip further includes a memory, the memory and the processor are connected to the memory through a circuit or a wire, and the processor is used to read and execute the computer program in the memory.
- the chip further includes a communication interface, and the processor is connected to the communication interface.
- the communication interface is used to receive data and/or information that needs to be processed, and the processor obtains the data and/or information from the communication interface, and processes the data and/or information.
- the communication interface may be an input/output interface, interface circuit, output circuit, input circuit, pin or related circuit on the chip.
- the processor may also be embodied as a processing circuit or a logic circuit.
- the application also provides a chip including a processor.
- the processor is used to read and run a computer program stored in the memory to execute the corresponding operations and/or processes executed by the second operating system in the method for the first operating system to access resources of the second operating system provided in this application.
- the chip further includes a memory, the memory and the processor are connected to the memory through a circuit or a wire, and the processor is used to read and execute the computer program in the memory.
- the chip further includes a communication interface, and the processor is connected to the communication interface.
- the communication interface is used to receive data and/or information that needs to be processed, and the processor obtains the data and/or information from the communication interface, and processes the data and/or information.
- the communication interface may be an input/output interface, interface circuit, output circuit, input circuit, pin or related circuit on the chip.
- the processor may also be embodied as a processing circuit or a logic circuit.
- the disclosed system, device, and method may be implemented in other ways.
- the device embodiments described above are merely illustrative.
- the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
- the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
- the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
- the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
- the technical solution of the present application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disks or optical disks and other media that can store program codes. .
- the term "and/or” in this application is only an association relationship that describes associated objects, which means that there can be three types of relationships, for example, A and/or B, which can mean that A alone exists, and both A and B exist. , There are three cases of B alone.
- the character "/" in this document generally means that the associated objects before and after are in an "or” relationship; the term “at least one” in this application can mean “one” and "two or more", for example, A At least one of, B and C can mean: A alone exists, B alone exists, C alone exists, A and B exist alone, A and C exist at the same time, C and B exist at the same time, A and B and C exist at the same time, this Seven situations.
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
Description
Claims (31)
- 一种第一操作系统访问第二操作系统资源的方法,其特征在于,包括:在所述第一操作系统的第一地址空间配置所述第一操作系统的内核空间和用户空间,为所述第二操作系统预留第二地址空间,其中,所述第一操作系统的内存虚拟地址空间包括所述第一地址空间和所述第二地址空间;所述第一操作系统获取所述第二操作系统的内核页表的寄存器配置信息;所述第一操作系统根据所述第二操作系统的内核页表的寄存器配置信息配置所述第一操作系统的第二寄存器,所述第二寄存器对应所述第一操作系统的所述第二地址空间;所述第一操作系统使用所述第二地址空间访问所述第二操作系统的内核空间的资源。
- 根据权利要求1所述的方法,其特征在于,所述第一地址空间为高位地址空间;所述第二地址空间为低位地址空间,所述第一操作系统的高位地址空间与所述第二操作系统的内核地址空间范围一致。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述第一操作系统接收所述第二操作系统发送的内核符号表信息;所述第一操作系统解析所述内核符号表信息,得到的所述第二操作系统高位地址空间转换关系,获取用户进程的用户页表基地址信息,利用所述转换关系逐级读取用户页表条目内容,访问第二操作系统的用户空间的资源。
- 根据权利要求1-3中任一项所述的方法,其特征在于,在所述第一操作系统的第一地址空间配置所述第一操作系统的内核空间和用户空间包括:所述第一操作系统将所述第一操作系统中的内核页表和用户页表存储在所述第一地址空间的页表内存中;所述第一操作系统将所述第一地址空间的页表内存配置到所述第一操作系统的第一寄存器。
- 根据权利要求1-4中任一项所述的方法,其特征在于,为所述第二操作系统预留第二地址空间包括:所述第一操作系统基于所述第二操作系统的高位地址空间预留所述第二地址空间。
- 根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:所述第一操作系统接收所述第二操作系统发送的请求消息,所述请求消息中携带内核符号表信息和所述第二操作系统的内核页表的寄存器配置信息。
- 根据权利要求1-6中任一项所述的方法,其特征在于,所述第一操作系统中部署客户端应用程序CA;所述第一操作为所述第二操作系统预留第二地址空间包括:所述CA初始化过程中,基于所述第二操作系统的内核页表的寄存器配置信息修改所述第一操作系统的寄存器的配置。
- 根据权利要求4所述的方法,其特征在于,所述第一操作系统将所述第一操作系统中的内核页表和用户页表存储在所述第一地址空间的页表内存中之前,所述方法还包括:所述第一操作系统在所述内核页表上增加用户不可访问权限控制;所述第一操作系统在所述用户页表上增加不可执行特权PXN防护。
- 根据权利要求1-8中任一项所述的方法,其特征在于,所述第二操作系统的内核页表的寄存器配置信息包括:地址翻译控制器配置信息、内存属性控制器配置信息和内核空间页表基地址寄存器配置信息。
- 根据权利要求1-9中任一项所述的方法,其特征在于,所述第一操作系统中部署有动态度量模块,所述动态度量模块用于为所述第二操作系统提供安全服务。
- 根据权利要求1-10中任一项所述的方法,其特征在于,当所述第一操作系统访问所述第二操作系统的内核空间的资源异常时,所述第一操作系统将所述异常相关信息发送给所述第二操作系统。
- 根据权利要求11所述的方法,其特征在于,所述第一操作系统中部署有远端程序调录RPC服务;所述第一操作系统将所述异常相关信息发送给所述第二操作系统包括:所述RPC服务将所述异常相关信息发送给所述第二操作系统。
- 一种第一操作系统访问第二操作系统资源的方法,其特征在于,包括:所述第二操作系统获取所述第二操作系统的内核页表的寄存器配置信息;所述第二操作系统向所述第一操作系统发送所述第二操作系统的内核页表的寄存器配置信息。
- 根据权利要求13所述的方法,其特征在于,所述方法还包括:所述第二操作系统获取所述第二操作系统的内核符号表信息;所述第二操作系统向所述第一操作系统发送所述内核符号表信息。
- 根据权利要求13或14所述的方法,其特征在于,所述第二操作系统中部署内核驱动模块;所述第二操作系统获取所述内核符号表信息和/或所述第二操作系统的内核页表的寄存器配置信息包括:所述内核驱动模块获取所述内核符号表信息和/或所述第二操作系统的内核页表的寄存器配置信息。
- 一种第一操作系统访问第二操作系统资源的装置,其特征在于,包括:处理单元,用于在所述第一操作系统的第一地址空间配置所述第一操作系统的内核空间和用户空间,为所述第二操作系统预留第二地址空间,其中,所述第一操作系统的内存虚拟地址空间包括所述第一地址空间和所述第二地址空间;接收单元,用于获取所述第二操作系统的内核页表的寄存器配置信息;所述处理单元,还用于根据所述第二操作系统的内核页表的寄存器配置信息配置所述第一操作系统的第二寄存器,所述第二寄存器对应所述第一操作系统的所述第二地址空间;所述处理单元,还用于使用所述第二地址空间访问所述第二操作系统的内核空间的资源。
- 根据权利要求16所述的装置,其特征在于,所述接收单元,还用于接收所述第 二操作系统发送的内核符号表信息;所述处理单元,还用于解析所述内核符号表信息,得到的所述第二操作系统高位地址空间转换关系,获取用户进程的用户页表基地址信息,利用所述转换关系逐级读取用户页表条目内容,访问第二操作系统的用户空间的资源。
- 根据权利要求16或17所述的装置,其特征在于,所述处理单元在所述第一操作系统的第一地址空间配置所述第一操作系统的内核空间和用户空间包括:所述处理单元,用于将所述第一操作系统中的内核页表和用户页表存储在所述第一地址空间的页表内存中。
- 根据权利要求16-18中任一项所述的装置,其特征在于,所述处理单元为所述第二操作系统预留第二地址空间包括:所述处理单元基于所述第二操作系统的高位地址空间预留所述第二地址空间。
- 根据权利要求16-19中任一项所述的装置,其特征在于,所述装置还包括:接收单元,用于接收所述第二操作系统发送的请求消息,所述请求消息中携带内核符号表信息和所述第二操作系统的内核页表的寄存器配置信息。
- 根据权利要求16-20中任一项所述的装置,其特征在于,所述装置中部署客户端应用程序CA;所述处理单元为所述第二操作系统预留第二地址空间包括:所述CA初始化过程中,所述处理单元基于所述第二操作系统的内核页表的寄存器配置信息修改所述第一操作系统的寄存器的配置。
- 根据权利要求21所述的装置,其特征在于,所述处理单元将所述第一操作系统中的内核页表和用户页表存储在所述第一地址空间的页表内存中之前,所述处理单元,还用于在所述内核页表上增加用户不可访问权限控制以及在所述用户页表上增加不可执行特权PXN防护。
- 根据权利要求16-22中任一项所述的装置,其特征在于,所述装置中部署有动态度量模块,所述动态度量模块用于为所述第二操作系统提供安全服务。
- 根据权利要求16-23中任一项所述的装置,其特征在于,当所述处理单元访问所述第二操作系统的资源异常时,所述装置还包括:发送单元,用于将所述异常相关信息发送给所述第二操作系统。
- 根据权利要求24所述的装置,其特征在于,所述装置中部署有远端程序调录RPC服务;所述发送单元将所述异常相关信息发送给所述第二操作系统包括:所述RPC服务将所述异常相关信息发送给所述第二操作系统。
- 一种第一操作系统访问第二操作系统资源的装置,其特征在于,包括:处理单元,用于获取所述第二操作系统的内核页表的寄存器配置信息;发送单元,用于向所述第一操作系统发送所述第二操作系统的内核页表的寄存器配置信息。
- 根据权利要求26所述的装置,其特征在于,所述处理单元,还用于获取所述第二操作系统的内核符号表信息;所述发送单元,还用于向所述第一操作系统发送所述内核符号表信息。
- 根据权利要求26或27所述的装置,其特征在于,所述装置中部署内核驱动模块;所述处理单元获取所述内核符号表信息和/或所述第二操作系统的内核页表的寄存器配置信息:所述内核驱动模块获取所述内核符号表信息和/或所述第二操作系统的内核页表的寄存器配置信息。
- 一种电子设备,其特征在于,包括如16-25中任一项所述的装置以及如26-28中任一项所述的装置。
- 一种计算机可读存储介质,其特征在于,包括:所述计算机可读介质存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行权利要求1-15中任一项所述的方法。
- 一种芯片,其特征在于,包括通信接口、存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于读取并执行所述存储器中存储器的所述计算机程序,使得所述芯片实现如权利要求1-15中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022529685A JP7443519B2 (ja) | 2019-11-22 | 2020-07-15 | 第1のオペレーティングシステムが第2のオペレーティングシステムのリソースにアクセスするための方法及び装置 |
EP20890467.2A EP4053700A4 (en) | 2019-11-22 | 2020-07-15 | METHOD AND DEVICE FOR ENABLING A FIRST OPERATING SYSTEM TO ACCESS RESOURCES OF A SECOND OPERATING SYSTEM |
KR1020227020341A KR20220093379A (ko) | 2019-11-22 | 2020-07-15 | 제1 운영 체제가 제2 운영 체제의 리소스에 액세스하기 위한 방법 및 장치 |
US17/749,627 US12007906B2 (en) | 2019-11-22 | 2022-05-20 | Method and apparatus for first operating system to access resource of second operating system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156149.8A CN111124664B (zh) | 2019-11-22 | 2019-11-22 | 第一操作系统访问第二操作系统资源的方法和装置 |
CN201911156149.8 | 2019-11-22 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/749,627 Continuation US12007906B2 (en) | 2019-11-22 | 2022-05-20 | Method and apparatus for first operating system to access resource of second operating system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021098244A1 true WO2021098244A1 (zh) | 2021-05-27 |
Family
ID=70498040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/102032 WO2021098244A1 (zh) | 2019-11-22 | 2020-07-15 | 第一操作系统访问第二操作系统资源的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US12007906B2 (zh) |
EP (1) | EP4053700A4 (zh) |
JP (1) | JP7443519B2 (zh) |
KR (1) | KR20220093379A (zh) |
CN (1) | CN111124664B (zh) |
WO (1) | WO2021098244A1 (zh) |
Families Citing this family (10)
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 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的应用间通信方法及装置 |
CN114691532A (zh) * | 2020-12-30 | 2022-07-01 | 华为技术有限公司 | 内存访问方法、内存地址分配方法及装置 |
CN115437717A (zh) * | 2021-06-01 | 2022-12-06 | 北京小米移动软件有限公司 | 跨操作系统的调用方法、装置及电子设备 |
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065856A1 (en) * | 2004-03-23 | 2008-03-13 | Nec Corporation | Multi-processor system and memory accessing method |
CN102968342A (zh) * | 2012-11-12 | 2013-03-13 | 华中科技大学 | 嵌入式平台下半虚拟化的快速切换客户操作系统的方法 |
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN110245001A (zh) * | 2019-05-05 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 数据隔离方法及装置、电子设备 |
CN111124664A (zh) * | 2019-11-22 | 2020-05-08 | 华为技术有限公司 | 第一操作系统访问第二操作系统资源的方法和装置 |
Family Cites Families (17)
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 |
JP2007507779A (ja) * | 2003-10-01 | 2007-03-29 | ジャルナ エスアー | オペレーティングシステム |
WO2006103687A1 (en) * | 2005-03-31 | 2006-10-05 | Hewlett-Packard Development Company L.P. | Partitioned resource reallocation system and method |
JP2014089644A (ja) | 2012-10-31 | 2014-05-15 | Toshiba Corp | プロセッサ、プロセッサ制御方法及び情報処理装置 |
JP6129702B2 (ja) * | 2013-09-24 | 2017-05-17 | 株式会社東芝 | 情報処理装置、情報処理システム、プログラム |
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 |
JP6181004B2 (ja) | 2014-06-20 | 2017-08-16 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
JP6130612B1 (ja) | 2015-08-25 | 2017-05-17 | 株式会社Seltech | ハイパーバイザーを有するシステム |
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 | 阿里巴巴集团控股有限公司 | 密钥处理方法及装置、存储介质和处理器 |
-
2019
- 2019-11-22 CN CN201911156149.8A patent/CN111124664B/zh active Active
-
2020
- 2020-07-15 WO PCT/CN2020/102032 patent/WO2021098244A1/zh unknown
- 2020-07-15 EP EP20890467.2A patent/EP4053700A4/en active Pending
- 2020-07-15 KR KR1020227020341A patent/KR20220093379A/ko not_active Application Discontinuation
- 2020-07-15 JP JP2022529685A patent/JP7443519B2/ja active Active
-
2022
- 2022-05-20 US US17/749,627 patent/US12007906B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065856A1 (en) * | 2004-03-23 | 2008-03-13 | Nec Corporation | Multi-processor system and memory accessing method |
CN102968342A (zh) * | 2012-11-12 | 2013-03-13 | 华中科技大学 | 嵌入式平台下半虚拟化的快速切换客户操作系统的方法 |
CN105068859A (zh) * | 2015-07-29 | 2015-11-18 | 上海谐桐信息技术有限公司 | 一种跨虚拟机的多服务调用方法及系统 |
CN110245001A (zh) * | 2019-05-05 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 数据隔离方法及装置、电子设备 |
CN111124664A (zh) * | 2019-11-22 | 2020-05-08 | 华为技术有限公司 | 第一操作系统访问第二操作系统资源的方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4053700A4 |
Also Published As
Publication number | Publication date |
---|---|
CN111124664A (zh) | 2020-05-08 |
US20220276968A1 (en) | 2022-09-01 |
CN111124664B (zh) | 2023-12-08 |
KR20220093379A (ko) | 2022-07-05 |
US12007906B2 (en) | 2024-06-11 |
JP7443519B2 (ja) | 2024-03-05 |
EP4053700A1 (en) | 2022-09-07 |
EP4053700A4 (en) | 2022-11-23 |
JP2023503110A (ja) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021098244A1 (zh) | 第一操作系统访问第二操作系统资源的方法和装置 | |
EP3629540B1 (en) | Apparatus and method for secure memory access using trust domains | |
US12019562B2 (en) | Cryptographic computing including enhanced cryptographic addresses | |
US11748146B2 (en) | Scalable virtual machine operation inside trust domains within the trust domain architecture | |
JP2019522298A (ja) | コンピューティングデバイスのメモリ内のページに対するアクセス制御 | |
US10705976B2 (en) | Scalable processor-assisted guest physical address translation | |
US10140139B1 (en) | Ensuring the privacy and integrity of a hypervisor | |
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 | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
US11494523B2 (en) | Direct memory access mechanism | |
EP4202702A1 (en) | Method and apparatus to set guest physical address mapping attributes for trusted domain | |
US20230098288A1 (en) | Apparatus and method for role-based register protection for tdx-io | |
US10705983B1 (en) | Transparent conversion of common virtual storage | |
US20240202315A1 (en) | Maintaining data confidentiality in shared computing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20890467 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022529685 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2020890467 Country of ref document: EP Effective date: 20220601 |
|
ENP | Entry into the national phase |
Ref document number: 20227020341 Country of ref document: KR Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |