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

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

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/virt/ne_overview.rst (Version linux-6.11.5) and /Documentation/virt/ne_overview.rst (Version linux-4.18.20)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 ==============                                    
  4 Nitro Enclaves                                    
  5 ==============                                    
  6                                                   
  7 Overview                                          
  8 ========                                          
  9                                                   
 10 Nitro Enclaves (NE) is a new Amazon Elastic Co    
 11 that allows customers to carve out isolated co    
 12 instances [1].                                    
 13                                                   
 14 For example, an application that processes sen    
 15 can be separated from other applications runni    
 16 application then runs in a separate VM than th    
 17 It runs alongside the VM that spawned it. This    
 18 applications needs.                               
 19                                                   
 20 The current supported architectures for the NE    
 21 upstream Linux kernel, are x86 and ARM64.         
 22                                                   
 23 The resources that are allocated for the encla    
 24 carved out of the primary VM. Each enclave is     
 25 primary VM, that communicates with the NE kern    
 26                                                   
 27 In this sense, there are two components:          
 28                                                   
 29 1. An enclave abstraction process - a user spa    
 30 VM guest that uses the provided ioctl interfac    
 31 enclave VM (that's 2 below).                      
 32                                                   
 33 There is a NE emulated PCI device exposed to t    
 34 new PCI device is included in the NE driver.      
 35                                                   
 36 The ioctl logic is mapped to PCI device comman    
 37 maps to an enclave start PCI command. The PCI     
 38 translated into  actions taken on the hypervis    
 39 hypervisor running on the host where the prima    
 40 hypervisor is based on core KVM technology.       
 41                                                   
 42 2. The enclave itself - a VM running on the sa    
 43 spawned it. Memory and CPUs are carved out of     
 44 for the enclave VM. An enclave does not have p    
 45                                                   
 46 The memory regions carved out of the primary V    
 47 be aligned 2 MiB / 1 GiB physically contiguous    
 48 this size e.g. 8 MiB). The memory can be alloc    
 49 user space [2][3][7]. The memory size for an e    
 50 64 MiB. The enclave memory and CPUs need to be    
 51                                                   
 52 An enclave runs on dedicated cores. CPU 0 and     
 53 available for the primary VM. A CPU pool has t    
 54 user with admin capability. See the cpu list s    
 55 documentation [4] for how a CPU pool format lo    
 56                                                   
 57 An enclave communicates with the primary VM vi    
 58 using virtio-vsock [5]. The primary VM has vir    
 59 while the enclave VM has a virtio-mmio vsock e    
 60 uses eventfd for signaling. The enclave VM see    
 61 APIC and IOAPIC - to get interrupts from virti    
 62 device is placed in memory below the typical 4    
 63                                                   
 64 The application that runs in the enclave needs    
 65 image together with the OS ( e.g. kernel, ramd    
 66 enclave VM. The enclave VM has its own kernel     
 67 boot protocol [6][8].                             
 68                                                   
 69 The kernel bzImage, the kernel command line, t    
 70 Enclave Image Format (EIF); plus an EIF header    
 71 number, eif version, image size and CRC.          
 72                                                   
 73 Hash values are computed for the entire enclav    
 74 ramdisk(s). That's used, for example, to check    
 75 loaded in the enclave VM is the one that was i    
 76                                                   
 77 These crypto measurements are included in a si    
 78 generated by the Nitro Hypervisor and further     
 79 enclave; KMS is an example of service that NE     
 80 the attestation doc.                              
 81                                                   
 82 The enclave image (EIF) is loaded in the encla    
 83 init process in the enclave connects to the vs    
 84 predefined port - 9000 - to send a heartbeat v    
 85 used to check in the primary VM that the encla    
 86 primary VM is 3.                                  
 87                                                   
 88 If the enclave VM crashes or gracefully exits,    
 89 the NE driver. This event is sent further to t    
 90 running in the primary VM via a poll notificat    
 91 enclave process can exit.                         
 92                                                   
 93 [1] https://aws.amazon.com/ec2/nitro/nitro-enc    
 94 [2] https://www.kernel.org/doc/html/latest/adm    
 95 [3] https://lwn.net/Articles/807108/              
 96 [4] https://www.kernel.org/doc/html/latest/adm    
 97 [5] https://man7.org/linux/man-pages/man7/vsoc    
 98 [6] https://www.kernel.org/doc/html/latest/x86    
 99 [7] https://www.kernel.org/doc/html/latest/arm    
100 [8] https://www.kernel.org/doc/html/latest/arm    
                                                      

~ [ 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