A Platform is the computing environment that software resides-in and executes-on. In the DIDO context, the software is the Distributed Application (ĐApp or DApp) that runs on a particular DIDO Platform (i.e., Bitcoin, Ethereum, IOTA, IPFS, DDS, etc). The DIDO Platform is comprised of the following abstractions:
The first layer, the Operating System, abstracts access to the actual hardware such as memory, disks, networks etc. by providing Application Programming Interface (API) for applications to use. In other words, the application is tied to the OS rather than a particular hardware configuration. However, this still ties an application to an OS.
The second layer of abstraction occurs when the interface to the OS becomes standardized, as it is with the IEEE Portable Operating System Interface (POSIX) 1003.1-20161). The POSIX standard supports applications portability at the source code level and includes provisions for a standard operating system interface and environment, including a command interpreter (or “shell”), and common utility programs.2)
The third layer (DIDO Platform) provides an API for a Distributed Application (DAPP) to reside-in and execute-on. Access to the other DIDO components is tightly controlled for security reasons. Unfortunately at this time, there is no standardized abstraction for DIDO Platforms.
Note: A DIDO Node within the DIDO Network provides a platform or subsetted platform so that DApps can be run on each node.