A computing system (102; 202) which supports a kernel soft reset for updating a kernel without losing user context, the system comprising: a kernel image A; a user context generated during operation of the system under control of kernel image A, wherein the user context has been created by virtual machines or user applications; a kernel image B which differs from kemel image A in at least one of efficiency, correctness, usability, size, or connectivity; at least one processor; an operating memory in operable communication with the processor, the operating memory including volatile random access memory, RAM, and containing the user context and at least a portion of the kemel image A; a kernel reset memory, the kernel reset memory including non-volatile storage containing the kernel image B, wherein a copy of the user context generated during operation of the system under control of kernel image A is stored in the kernel reset memory; a kernel soft reset indicator; and boot software including code which upon execution checks the kernel soft reset indicator, and when the kernel soft reset indicator indicates a kernel soft reset, the code: (a) loads the kernel image B from the kernel reset memory into the operating memory, (b) initializes (808, 930) kernel data structures of the kernel image B, (c) restores the user context from the kernel reset memory into the operating memory, and (d) passes control to the initialized kemel image B to continue operation of the system with the user context restored into the operating memory under control of kernel image B rather than under control of kernel image A, and when the kernel soft reset indicator does not indicate a kernel soft reset the code does not pass control to kernel image B to continue operation of the system with the same user context. a kernel image A; a user context generated during operation of the system under control of kernel image A, wherein the user context has been created by virtual machines or user applications; a kernel image B which differs from kemel image A in at least one of efficiency, correctness, usability, size, or connectivity; at least one processor; an operating memory in operable communication with the processor, the operating memory including volatile random access memory, RAM, and containing the user context and at least a portion of the kemel image A; a kernel reset memory, the kernel reset memory including non-volatile storage containing the kernel image B, wherein a copy of the user context generated during operation of the system under control of kernel image A is stored in the kernel reset memory; a kernel soft reset indicator; and boot software including code which upon execution checks the kernel soft reset indicator, and when the kernel soft reset indicator indicates a kernel soft reset, the code: (a) loads the kernel image B from the kernel reset memory into the operating memory, (b) initializes (808, 930) kernel data structures of the kernel image B, (c) restores the user context from the kernel reset memory into the operating memory, and (d) passes control to the initialized kemel image B to continue operation of the system with the user context restored into the operating memory under control of kernel image B rather than under control of kernel image A, and (a) loads the kernel image B from the kernel reset memory into the operating memory, (b) initializes (808, 930) kernel data structures of the kernel image B, (c) restores the user context from the kernel reset memory into the operating memory, and (d) passes control to the initialized kemel image B to continue operation of the system with the user context restored into the operating memory under control of kernel image B rather than under control of kernel image A, and when the kernel soft reset indicator does not indicate a kernel soft reset the code does not pass control to kernel image B to continue operation of the system with the same user context.