Progress after Boston PI meeting Virtualization – Virtual devices: PCI, Virtual Disk ( virtio,virtio block) – Support Multiple VM guests – Move virtua
{"Image DocumentName": "CertiKOS Architecture", "Image ImageDescription": "APP. (uncertified) APP. (certified) Mgmt Shell. Mgmt OS. (Linux) Commodity OS. Application. Master. Master Syscall. Slave. Slave Syscall. Process Management. Virtual Machine Management. Memory. V-Interrupt. V-Devices. Hypercall. Context. IPC. CertiKOS. Bottom is the commodity hardware. Maybe we need to mention CertiKOS requires CPU provides hardware virtualization support, i.e. AMD SVM in latest CertiKOS. The medium layer is CertiKOS kernel. Hardware abstraction layer (HAL) provides some device drivers, e.g. PCI adaptor, hard disk drive, ethernet adaptor, etc. It\u2019s almost empty in latest CertiKOS. The layer upon HAL provides basic kernel primitives. SMP management, memory management, virtual memory management, interrupt handling and spinlock are similar to those in other operating systems. The extension is the virtualization part, which is composed of SVM primitives, virtual devices and virtualization abstraction. SVM primitives provide functions to control the underlying AMD SVM CPU. Virtual Devices provide necessary device emulation and passthrough, e.g. CertiKOS emulates interrupt controller, programmable timer, keyboard controller, etc, blocks PCI adaptor and devices, and passes through other devices. Virtualization abstraction provides an abstract interface to other parts of CertiKOS kernel, so that they don\u2019t need to take care which the underlying hardware virtualization is and if the access to devices from the guest should be emulated or just passed through. CertiKOS provides two kinds of runnable objects: process and virtual machine. Process is similar to those in other operating systems except that CertiKOS uses a much simple process model: each physical process core runs at most one process. Context contains the information used in process schedule, trap handling, etc. IPC provides message-passing style communication mechanism between processes. Virtual machine management is to. Create a virtualization environment for the guest, which contains virtualizing CPU, memory, interrupt mechanism and a minimal set of devices. Control the execution of the virtual machine, e.g. start, stop, resume, shutdown. (functions in bold have not been done yet) Handle the hypercals. The details will be shown in the following slides. CertiKOS provides two kinds of system calls: Master system calls are for the management shell. Slave system calls are for the certikos-based applications. We can run four kinds of applications upon CertiKOS. Management shell, which launches and controls other applications. We plan to move it to the guest and implement it as a userspace application of the guest OS. In this way the management shell can leverage the libraries in the guest OS to provide a better user interface, and use hypercalls provided by CertiKOS to complete the management work. Virtual machine, or guest, in which runs a commodity operating system and its applications. No modifications are required for both the commodity operating system and the applications, except when they want to use hypercalls provided by CertiKOS. Except the hypercall, CertiKOS is transparent for them. Uncertified CertiKOS-based applications. Certified CertiKOS-based applications, which are formally certified and doing security-concerned jobs. Only objects below the red line are in the trusted computing base. SMP Management. Virtual Memory. Interrupt Handling. Vconsole. Virtualization Abstraction. SVM Primitives. Virtual Devices. Memory Management. Hardware Abstraction Layer. Hardware. CPU Cores. Memory. Hard Disk. Network", "Image XResolution": "37", "Image YResolution": "37", "Image ResolutionUnit": "Pixels/Centimeter", "Image Software": "SlidePlayer", "Image YCbCrPositioning": "Centered"}