Virtual Hardware for Operating System Development Abstract See-Mong Tan, David Raila, Willy Liao, and Roy Campbell Developing an operating system on bare hardware is difficult due to an inhospitable development environment, long edit-compile-run-debug times, and the need for extra target hardware. This paper contributes general techniques for creating virtual hardware for operating systems development. The virtual machine is realized on top of UNIX and is a close approximation of real hardware, including interrupts, time slicing, virtual memory, devices, multiple processors with separately programmable memory management units, and the ability to run application programs natively. Debugging and testing our operating system in such an environment was considerably quicker and easier compared to developing on bare hardware.