Resources | Resources |




OS Services uses a distributed object model to expose basic services and developer-added functionality. System services are modeled as objects. In addition, developers can export added functionality as objects. Objects in other processes or computer systems are accessed as if they were local. Details of communicating with other domains are hidden from clients and objects. This distributed object model provides a secure means of communication between isolated domains of execution.


OS Services provides a component infrastructure similar to COM. The Qualcomm Component Model (QCM) is a programming model in which software is built as components. QCM is lightweight, allowing fine-grained componentization. Its interfaces expose functions that can be called directly from C or C++ using types native to those languages. Software components are similar to physical components in hardware design. OS Services is QCM-compliant.

OS Services supports pre-emptive multi-threaded execution and provides APIs that are decoupled from the application environment. This allows OS Services to be used for any handset software. An object written to OS Services can be used by any thread in any OS Services process.

Several characteristics inherent in the component model support and complement downloadability:

  • Registration: Components publish information about themselves that can be queried at run time by other components. Device software can dynamically decide which components to load and when to load them.
  • Dynamic loading: No recompilation or re-linking of the device software is required after new components have been downloaded.
  • Versioning and conflict resolution: The component model provides conventions for naming or identifying components and dealing with version changes. (The conventions adopted by OS Services use globally unique IDs.)
  • Code reuse: Extensive code reuse can reduce the size of applications and extensions.
  • Interchangeability: Well-defined interfaces minimize the potential for interoperability problems when individual components are fixed or enhanced.


OS Services provides a set of interfaces for writing user and system software. This enables software to be developed as separate components (pieces of code that are interchangeable at the binary level). Software may also be partitioned into separate processes (isolated domains of execution).

Remote access

OS Services specifies how developers can support remote object access. Interfaces are provided for interactions with the underlying transport layer that enables remoting.


OS Services security features include:

  • Restricted environments for application execution, which limits the impact of software defects or malware.
  • Use of the "least privilege" model. An applet's privilege list controls its access to resources.
  • Enforcement of access control by ensuring process isolation.