1. An embedded system having a processor, a volatile memory, and a non-volatile memory, wherein the system implements a process for efficiently using non-volatile memory space, the process comprising the steps of: a) powering up said embedded system; b) running a decompression algorithm stored in said non-volatile memory coupled to said embedded system; c) using said decompression algorithm on compressed software stored in said non-volatile memory to yield decompressed software including initialized variables for a runtime software environment of the embedded system, wherein said initialized variables include at least one variable initialized to zero and at least one variable initialized to a specific non-zero value; d) storing said decompressed software in said volatile memory and; e) executing a main program for said embedded system, wherein said main program is stored in said non-volatile memory and executes from said non-volatile memory, said main program linked with said initialized variables in said volatile memory.