A mobile device, comprising: a virtual machine having a guest operating system including a set of guest device drivers; a virtualization software layer that supports the virtual machine, the virtualization software layer including: device emulators (320a-320m) that communicate with the guest device drivers in the virtual machine to provide emulated physical devices; actual device drivers (310a-310b) that communicate with one or more physical devices in a hardware layer of the computing device, including one or more actual device drivers (310a-310b) that enable the computing device to perform network communication functions using one or more of the physical devices (230, 240); a transformer stack comprising one or more software transformers (350A-350N) that transform data and control information flowing between the device emulators (320a-320m) and the actual device drivers, the software transformers (350A-350N) having function pointers which define paths through the transformer stack, each path comprising one or more of the software transformers (350A-350N) in a chain between the device emulators (320a-320m) and the actual device drivers (310a-310b); and a management client configured to interact with a remote management server and, responsive thereto, communicate control information to the software transformers (350A-350N) of the transformer stack to configure the functionality of each of the software transformers (350A-350N) and to define the paths though the transformer stack according to the function pointers in each of the software transformers (350A-350N); wherein, when the guest device driver requests a network communication function to be performed over a first network such as a cellular mobile telephony network, the one or more software transformers (350A-350N) of the transformer stack transform the data and control information between the device emulator and the actual device driver to action the network communication function instead over a second network such as a wireless local area network, or vice versa. a virtual machine having a guest operating system including a set of guest device drivers; a virtualization software layer that supports the virtual machine, the virtualization software layer including: device emulators (320a-320m) that communicate with the guest device drivers in the virtual machine to provide emulated physical devices; actual device drivers (310a-310b) that communicate with one or more physical devices in a hardware layer of the computing device, including one or more actual device drivers (310a-310b) that enable the computing device to perform network communication functions using one or more of the physical devices (230, 240); a transformer stack comprising one or more software transformers (350A-350N) that transform data and control information flowing between the device emulators (320a-320m) and the actual device drivers, the software transformers (350A-350N) having function pointers which define paths through the transformer stack, each path comprising one or more of the software transformers (350A-350N) in a chain between the device emulators (320a-320m) and the actual device drivers (310a-310b); and a management client configured to interact with a remote management server and, responsive thereto, communicate control information to the software transformers (350A-350N) of the transformer stack to configure the functionality of each of the software transformers (350A-350N) and to define the paths though the transformer stack according to the function pointers in each of the software transformers (350A-350N); device emulators (320a-320m) that communicate with the guest device drivers in the virtual machine to provide emulated physical devices; actual device drivers (310a-310b) that communicate with one or more physical devices in a hardware layer of the computing device, including one or more actual device drivers (310a-310b) that enable the computing device to perform network communication functions using one or more of the physical devices (230, 240); a transformer stack comprising one or more software transformers (350A-350N) that transform data and control information flowing between the device emulators (320a-320m) and the actual device drivers, the software transformers (350A-350N) having function pointers which define paths through the transformer stack, each path comprising one or more of the software transformers (350A-350N) in a chain between the device emulators (320a-320m) and the actual device drivers (310a-310b); and a management client configured to interact with a remote management server and, wherein, when the guest device driver requests a network communication function to be performed over a first network such as a cellular mobile telephony network, the one or more software transformers (350A-350N) of the transformer stack transform the data and control information between the device emulator and the actual device driver to action the network communication function instead over a second network such as a wireless local area network, or vice versa.