A computing system (100, 200) including a processor package (102, 208) comprising: an operating system; a physical I/O device (108, 214); and a partial virtual machine (218, 400) that virtualizes less than all of the hardware components of the computing system to instantiate a virtual I/O device corresponding to the physical I/O device (108, 214), the virtual I/O. device having a virtual I/O controller, the partial virtual machine comprising: an I/O port trap component to (i) capture an I/O request to the virtual I/O device by the operating system and (ii) start a secure enclave session within the processor package (102, 208) after capture of the I/O request, characterised in that the secure enclave session is adapted to, while the secure enclave session is active: (a) encrypt and integrity check data and code of the partial virtual machine (218, 400) while outside of the processor package (102, 208), and (b) protect data and code of the partial virtual machine (218, 400) from access by the operating system while inside the processor package (102, 208); an I/O controller emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O control request to the virtual I/O controller, when the I/O request comprises an I/O control request; an I/O device emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O access request to communicate with the virtual I/O device, when the I/O request comprises an I/O access request; and a device driver component coupled to the I/O controller emulator component and the I/O device emulator component to communicate, within the secure enclave session, with the physical I/O device (108, 214) based at least in part on the I/O control request and the I/O access request; wherein the partial virtual machine (218, 400) is further to stop the secure enclave session before return of control to the operating system after handling the I/O request. an operating system; a physical I/O device (108, 214); and a partial virtual machine (218, 400) that virtualizes less than all of the hardware components of the computing system to instantiate a virtual I/O device corresponding to the physical I/O device (108, 214), the virtual I/O. device having a virtual I/O controller, the partial virtual machine comprising: an I/O port trap component to (i) capture an I/O request to the virtual I/O device by the operating system and (ii) start a secure enclave session within the processor package (102, 208) after capture of the I/O request, characterised in that the secure enclave session is adapted to, while the secure enclave session is active: (a) encrypt and integrity check data and code of the partial virtual machine (218, 400) while outside of the processor package (102, 208), and (b) protect data and code of the partial virtual machine (218, 400) from access by the operating system while inside the processor package (102, 208); an I/O controller emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O control request to the virtual I/O controller, when the I/O request comprises an I/O control request; an I/O device emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O access request to communicate with the virtual I/O device, when the I/O request comprises an I/O access request; and a device driver component coupled to the I/O controller emulator component and the I/O device emulator component to communicate, within the secure enclave session, with the physical I/O device (108, 214) based at least in part on the I/O control request and the I/O access request; an I/O port trap component to (i) capture an I/O request to the virtual I/O device by the operating system and (ii) start a secure enclave session within the processor package (102, 208) after capture of the I/O request, characterised in that the secure enclave session is adapted to, while the secure enclave session is active: (a) encrypt and integrity check data and code of the partial virtual machine (218, 400) while outside of the processor package (102, 208), and (b) protect data and code of the partial virtual machine (218, 400) from access by the operating system while inside the processor package (102, 208); (a) encrypt and integrity check data and code of the partial virtual machine (218, 400) while outside of the processor package (102, 208), and (b) protect data and code of the partial virtual machine (218, 400) from access by the operating system while inside the processor package (102, 208); an I/O controller emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O control request to the virtual I/O controller, when the I/O request comprises an I/O control request; an I/O device emulator component coupled to the I/O port trap component to handle, within the secure enclave session, an I/O access request to communicate with the virtual I/O device, when the I/O request comprises an I/O access request; and a device driver component coupled to the I/O controller emulator component and the I/O device emulator component to communicate, within the secure enclave session, with the physical I/O device (108, 214) based at least in part on the I/O control request and the I/O access request;