The Cross-Platform Application Development System, or CPADS, is a virtual environment which enables the development of applications for multiple architectures without the need to port1 them using a different toolchain.
Born out of a discussion on the need for assembly operating systems to unite and provide portable software2, CPADS aims to provide such a solution to this problem by utilizing a virtual machine language (Bytecode3) and run-time environment (similar in form to Microsoft's .NET Framework4), in addition to creating a portable environment, the CPADS specification calls for a compressed executable reminiscent of a Java Archive5.
CPADS, as a specification, implements and utilizes a set of components consisting of:
- FASM - the compilation tool used to translate assembly code to AVM-compliant bytecode
- AVM - a highly portable virtual machine that features dynamic just-in-time translation of virtual machine code to native machine code (see the main article)
- VALKYR - a collection of common routines for input/output, formatting and processing for both textual and graphical environments (see the main article)
- .APP - an executable archive that contains all the necessary data and instructions to run on any CPADS-compliant system (see the main article)
Illustrated below is a system-level diagram of CPADS. AVM and VALKYR sit on top of the OS-level functionality, transparently providing the necessary interfaces to run virtual applications (.APP).
Progress & Development
Currently, CPADS is being designed by TonyMac and Solidus for use with DexOS-IA32 and DexOS-ARM9. Upon completion of this design phase, a minimal evaluation of the CPADS design will be done in order to prove the viability of the system.
Should this evaluation prove successful, a full implementation will be rolled-out for both DexOS systems in order prove the effectiveness of the AVM architecture, which could be applied to other operating systems such as Linux, Windows and MenuetOS.