Design Principles
While the initial focus is smart meters, the GEISA Execution Environment (EE) must be able to run on a variety of device types with varying hardware capabilities. The GEISA design principles are:
Interoperability
The EE must enable interoperable applications, isolating them from the hardware implementation. Applications should not need to know how to access a particular sensor or actuator. Applications should not be concerned about the device type. Applications should be able to use a single consistent API and be assured that they have the resources they need based on their requirements manifest.
Constrained Environment
The EE is a minimal environment. Resources should be reserved for applications, not consumed by the operating system. While some devices may offer more, the EE needs to be able to run on a minimal platform with only 512MB of RAM and 1 GB of storage, and most of that should be reserved for applications. The kernel and continuous OS processes should consume no more than 128 MB of RAM, ideally less than 64 MB. Efficiency is critical. As such the EE shall provide only those services which are so widely required that it would be less efficient to not provide them.
Minimal Implementation
The less there is, the less there is to maintain and the less there is to attack. Keeping things up to date is challenging for both utilities and vendors. The GEISA EE favors the minimal implementation. If there is an option that isn’t needed, turn it off. If there is unwanted feature, leave it out. The GEISA EE should include what is required, and nothing more.
Core Specification w/ Extensions
Discuss the idea that there is a base core, as well as a series of standardized extensions which provide conveniences.
Security