~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/virt/ne_overview.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/zh_CN/virt/ne_overview.rst (Architecture i386) and /Documentation/translations/zh_CN/virt/ne_overview.rst (Architecture sparc64)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2 .. include:: ../disclaimer-zh_CN.rst                2 .. include:: ../disclaimer-zh_CN.rst
  3                                                     3 
  4 :Original: Documentation/virt/ne_overview.rst       4 :Original: Documentation/virt/ne_overview.rst
  5                                                     5 
  6 :翻译:                                            6 :翻译:
  7                                                     7 
  8  司延腾 Yanteng Si <siyanteng@loongson.cn>        8  司延腾 Yanteng Si <siyanteng@loongson.cn>
  9                                                     9 
 10 :校译:                                           10 :校译:
 11                                                    11 
 12  时奎亮 Alex Shi <alexs@kernel.org>              12  时奎亮 Alex Shi <alexs@kernel.org>
 13                                                    13 
 14 .. _cn_virt_ne_overview:                           14 .. _cn_virt_ne_overview:
 15                                                    15 
 16 ==============                                     16 ==============
 17 Nitro Enclaves                                     17 Nitro Enclaves
 18 ==============                                     18 ==============
 19                                                    19 
 20 概述                                             20 概述
 21 ====                                               21 ====
 22                                                    22 
 23 Nitro Enclaves(NE)是亚马逊弹性计算     23 Nitro Enclaves(NE)是亚马逊弹性计算云(EC2)的一项新功能,允许客户在EC2实
 24 例中划分出孤立的计算环境[1]。         24 例中划分出孤立的计算环境[1]。
 25                                                    25 
 26 例如,一个处理敏感数据并在虚拟     26 例如,一个处理敏感数据并在虚拟机中运行的应用程序,可以与在同一虚拟机中运行的
 27 其他应用程序分开。然后,这个应     27 其他应用程序分开。然后,这个应用程序在一个独立于主虚拟机的虚拟机中运行,即
 28 enclave。                                         28 enclave。
 29                                                    29 
 30 一个enclave与催生它的虚拟机一起运     30 一个enclave与催生它的虚拟机一起运行。这种设置符合低延迟应用的需要。为enclave
 31 分配的资源,如内存和CPU,是从主     31 分配的资源,如内存和CPU,是从主虚拟机中分割出来的。每个enclave都被映射到一
 32 个运行在主虚拟机中的进程,该进     32 个运行在主虚拟机中的进程,该进程通过一个ioctl接口与NE驱动进行通信。
 33                                                    33 
 34 在这个意义上,有两个组成部分。      34 在这个意义上,有两个组成部分。
 35                                                    35 
 36 1. 一个enclave抽象进程——一个运行     36 1. 一个enclave抽象进程——一个运行在主虚拟机客体中的用户空间进程,它使用NE驱动
 37 提供的ioctl接口来生成一个enclave虚     37 提供的ioctl接口来生成一个enclave虚拟机(这就是下面的2)。
 38                                                    38 
 39 有一个NE模拟的PCI设备暴露给主虚     39 有一个NE模拟的PCI设备暴露给主虚拟机。这个新的PCI设备的驱动被包含在NE驱动中。
 40                                                    40 
 41 ioctl逻辑被映射到PCI设备命令,例     41 ioctl逻辑被映射到PCI设备命令,例如,NE_START_ENCLAVE ioctl映射到一个enclave
 42 启动PCI命令。然后,PCI设备命令被     42 启动PCI命令。然后,PCI设备命令被翻译成在管理程序方面采取的行动;也就是在运
 43 行主虚拟机的主机上运行的Nitro管     43 行主虚拟机的主机上运行的Nitro管理程序。Nitro管理程序是基于KVM核心技术的。
 44                                                    44 
 45 2. enclave本身——一个运行在与催生     45 2. enclave本身——一个运行在与催生它的主虚拟机相同的主机上的虚拟机。内存和CPU
 46 从主虚拟机中分割出来,专门用于e     46 从主虚拟机中分割出来,专门用于enclave虚拟机。enclave没有连接持久性存储。
 47                                                    47 
 48 从主虚拟机中分割出来并给enclave的     48 从主虚拟机中分割出来并给enclave的内存区域需要对齐2 MiB/1 GiB物理连续的内存
 49 区域(或这个大小的倍数,如8 MiB     49 区域(或这个大小的倍数,如8 MiB)。该内存可以通过使用hugetlbfs从用户空间分
 50 配[2][3]。一个enclave的内存大小需要     50 配[2][3]。一个enclave的内存大小需要至少64 MiB。enclave内存和CPU需要来自同
 51 一个NUMA节点。                                51 一个NUMA节点。
 52                                                    52 
 53 一个enclave在专用的核心上运行。CPU     53 一个enclave在专用的核心上运行。CPU 0及其同级别的CPU需要保持对主虚拟机的可用
 54 性。CPU池必须由具有管理能力的用     54 性。CPU池必须由具有管理能力的用户为NE目的进行设置。关于CPU池的格式,请看内核
 55 文档[4]中的cpu list部分。                   55 文档[4]中的cpu list部分。
 56                                                    56 
 57 enclave通过本地通信通道与主虚拟机     57 enclave通过本地通信通道与主虚拟机进行通信,使用virtio-vsock[5]。主虚拟机有
 58 virtio-pci vsock模拟设备,而飞地虚拟     58 virtio-pci vsock模拟设备,而飞地虚拟机有virtio-mmio vsock模拟设备。vsock
 59 设备使用eventfd作为信令。enclave虚     59 设备使用eventfd作为信令。enclave虚拟机看到通常的接口——本地APIC和IOAPIC——从
 60 virtio-vsock设备获得中断。virtio-mmio     60 virtio-vsock设备获得中断。virtio-mmio设备被放置在典型的4 GiB以下的内存中。
 61                                                    61 
 62 在enclave中运行的应用程序需要和将     62 在enclave中运行的应用程序需要和将在enclave虚拟机中运行的操作系统(如内核、
 63 ramdisk、init)一起被打包到enclave镜     63 ramdisk、init)一起被打包到enclave镜像中。enclave虚拟机有自己的内核并遵循标
 64 准的Linux启动协议[6]。                      64 准的Linux启动协议[6]。
 65                                                    65 
 66 内核bzImage、内核命令行、ramdisk(s     66 内核bzImage、内核命令行、ramdisk(s)是enclave镜像格式(EIF)的一部分;另外
 67 还有一个EIF头,包括元数据,如magi     67 还有一个EIF头,包括元数据,如magic number、eif版本、镜像大小和CRC。
 68                                                    68 
 69 哈希值是为整个enclave镜像(EIF)、     69 哈希值是为整个enclave镜像(EIF)、内核和ramdisk(s)计算的。例如,这被用来检
 70 查在enclave虚拟机中加载的enclave镜     70 查在enclave虚拟机中加载的enclave镜像是否是打算运行的那个。
 71                                                    71 
 72 这些加密测量包括在由Nitro超级管     72 这些加密测量包括在由Nitro超级管理器成的签名证明文件中,并进一步用来证明enclave
 73 的身份;KMS是NE集成的服务的一个     73 的身份;KMS是NE集成的服务的一个例子,它检查证明文件。
 74                                                    74 
 75 enclave镜像(EIF)被加载到enclave内     75 enclave镜像(EIF)被加载到enclave内存中,偏移量为8 MiB。enclave中的初始进程
 76 连接到主虚拟机的vsock CID和一个预     76 连接到主虚拟机的vsock CID和一个预定义的端口--9000,以发送一个心跳值--0xb7。这
 77 个机制用于在主虚拟机中检查enclave     77 个机制用于在主虚拟机中检查enclave是否已经启动。主虚拟机的CID是3。
 78                                                    78 
 79 如果enclave虚拟机崩溃或优雅地退出     79 如果enclave虚拟机崩溃或优雅地退出,NE驱动会收到一个中断事件。这个事件会通过轮询
 80 通知机制进一步发送到运行在主虚     80 通知机制进一步发送到运行在主虚拟机中的用户空间enclave进程。然后,用户空间enclave
 81 进程就可以退出了。                        81 进程就可以退出了。
 82                                                    82 
 83 [1] https://aws.amazon.com/ec2/nitro/nitro-enc     83 [1] https://aws.amazon.com/ec2/nitro/nitro-enclaves/
 84 [2] https://www.kernel.org/doc/html/latest/adm     84 [2] https://www.kernel.org/doc/html/latest/admin-guide/mm/hugetlbpage.html
 85 [3] https://lwn.net/Articles/807108/               85 [3] https://lwn.net/Articles/807108/
 86 [4] https://www.kernel.org/doc/html/latest/adm     86 [4] https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
 87 [5] https://man7.org/linux/man-pages/man7/vsoc     87 [5] https://man7.org/linux/man-pages/man7/vsock.7.html
 88 [6] https://www.kernel.org/doc/html/latest/x86     88 [6] https://www.kernel.org/doc/html/latest/x86/boot.html
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php