Provided herein are systems and methods for providing reliable control of an unmanned aerial vehicle (UAV). A system for providing reliable control of the UAV can include a computing device that can execute reliable and unreliable programs. The unreliable programs can be isolated from the reliable programs by virtue of executing one or more of the programs in a virtual machine client. The UAV can initiate a recovery action when one or more of the unreliable programs fail. The recovery action can be performed without input from one or more of the unreliable programs.
展开▼