1. A mobile computing device comprising a processor, storage connected to the processor, and connections for receiving input data from input devices and for providing output data to output devices, the storage storing computer program instructions that, when executed by the processor, provide an operating system for the mobile computing device for managing access to resources of the mobile computing device by applications executed by the processor, the operating system, when executed, defining at least one user session wherein the at least one user session includes a plurality of contexts, including a first context and a second context, wherein the first context specifies a first binding of the input devices and the output devices for applications executed in the first context, and the second context specifies a second binding, different from the first binding, of the input devices and the output devices for applications executed in the second context, the operating system being configured to: maintain information in the storage about applications executed in the first context; maintain information in the storage about applications executed in the second context; access information in the storage about environmental conditions of the mobile computing device; and selectively limit operation of applications executed in the first context according to both the information about environmental conditions and the information about the applications executed in both the first context and the second context.