An Operating System designed for small microprocessors without a Memory Management Unit (MMU) to provide "app-like" functionality while reducing Size, Power and Cost
LifeOS™ is a lean operating system (LeanOS) designed for embedded devices. It includes a cooperative multitasking kernel and provides certain features for small processors that are normally only found on larger systems. Most importantly, LifeOS™ supports downloadable apps that are loaded into memory dynamically when needed. Normally this type of functionality requires processors with virtualization capabilities often involving an MMU (memory management unit) or additional hardware. The LifeOS™ is able to implement this feature without extra hardware and uses a patented code linking and loading technology. The technology is highly optimized for embedded systems that typically run code from flash memory.
"By loading modules from storage into high premium program space only when needed, the system is able to offer extended functionality while keeping the costs for premium resources under control."
LifeOS™ strives to be as independent as possible from platform, architecture and development tools. It implements a HAL (hardware abstraction layer) with a common interface between the kernel and underlying environment. Abstraction is realized with two aspects in mind: architecture and platform. Architecture defines the processor architecture of the target device, while platform refers to the IDE or development environment being used to develop, build and deploy the device firmware. This level of abstraction allows components and even entire device implementations to be simulated on other platforms and environments that are better suited for rapid development and testing.
Jumping Moore's Law
Dynamic loadable modules in lightweight embedded systems
The advantages of independent modules that are loadable individually and on demand has long been recognized and widely used on larger computer systems. It provides a high level of flexibility in the range of functionality a particular system can provide. Instead of requiring all functionality to be included in one monolithic code base, the system has access to a large set of modules that are stored somewhere highly optimized for low cost long term storage. By loading modules from this storage into high premium program space only when needed, the system is able to offer extended functionality while keeping the costs for premium resources under control. Using this methodology allows programmability and flexibility that is limited only by the number of modules offered and the amount of long term storage space available to store them on. All standard operating systems from mainframes to PC’s and smartphones are based on this basic principle.