Tools for mobile Linux
The Tools for Mobile Linux (TmL) project is a proposed open source project under the Device Software Development Platform project.
This proposal is in the project Proposal Phase as defined in the Eclipse Development process document. It is written to declare the intent and scope of the project and to solicit additional participation and input form the Eclipse community.
You are invited to comment on and/or join the project. Please send any feedback to the eclipse.dsdp.tml newsgroup.
The largest volume segment of the consumer electronics industry is mobile phones, delivering 800 million units a year. Those phones have become increasingly powerful and complex, demanding an ever increasing set of applications and features.
Linux is an emerging mobile OS being adopted by mobile device manufacturers. The development of end-to-end services for Linux-based mobile phones spans a wide range of applications, including enterprise web services, location-based-services, 3D multiplayer gaming, and mobilized corporate data. Unlike JavaME, which is used most commonly for gaming applications, mobile Linux can provide a much larger, more powerful set of APIs to address the needs of these more sophisticated service deployments.
Using Linux also not only leverages a large array of existing desktop applications, but it also taps into a large ecosystem of skilled Linux developers in the Open Source and commercial developer community. Another often overlooked benefit of using Linux is the large ammount of existing Development Tools, from the GNU compiler toolchains to profilers and emulators.
How TmL fits into the Eclipse Ecosystem
The Eclipse DSDP and Tools projects already contain many projects applicable to the development of mobile Linux applications. The goal of the "Tools for Mobile Linux" project is to complement those existing projects (like e.g. CDT, TM, TPTP) and extend Eclipse into an end-to-end development environment for mobile Linux-based devices.
The goal is to create a development platform that can drive the developer through the application lifecycle from design (modeling tools), development (C/C++ crosscompiling), testing (Linux OS emulators & frameworks), and deployment (application signing tools).
As descibed above, many existing Eclipse projects are very applicable to the area of Mobile Linux application development, although for some projects, additional "extensions" are needed. Examples include "Target Management" agents specialized to mobile Linux applications, or DD extensions tailored for mobile requirements.
One task of TmL will be to act as an Umbrella Project to seed ideas in the relevant sub projects and drive prototyping. Members of the TmL project will identify missing functional areas specific to applications in the Mobile Linux space and develop Eclipse Plug-In's and Features for those usecases.
The goal for the TmL project is to provide tools which to span the entire software development cycle: Define, Design, Develop, Debug, Deploy
- Define: system software architecture
- software modelling
- GUI design (possibly using DSDP/NAB)
- Develop: (using and extending CDT)
- code development
- managed toolchains for crosscompilers
- managed make for different platforms
- Debug: (using DSDP/TM, DSDP/DD and TPTP)
- device emulator
- on-device debugging
- on device and emulator unit- and regression testing
- on-device profiling
- testing of enterprise with simulated mobile infrastructure
- Deploy: Application signing and on-device deployment
The TmL Emulator
The most immmediate need for a successful mobile Linux application development environment is a emulation environment to execute on the development computer.
The proposal is for TmL to develop a generic emulator framework which can be used to execute code in an environment similar to a mobile phone. This emulator will be tied into the Eclipse environment via Plug-In's, and can be controlled by calls to a defined TmL emulator API. The framework will also define a set of extension points to add support for generic devices (like a GPS unit, a SIM card or similar) which can be controled by the Eclipse Plug-Ins.
The first proposed implementation of this TmL Emulator framework will be based on an x86 virtualization sandbox, like UML, VMWare or others. The goal is to keep the framework API independent of the used sandboxing technology. The initial implementation of the emulator will provide a runtime environment for Mobile Linux Applications, but the design should also be easily extensible to other mobile technologies, like e.g. a J2ME emulator or a Symbian emulator.
The extension points will define interfaces to virtual devices which communicate to an "on emulator" native framework with plug-ins which can act as simulated devices to application developers. The transport ptotocol will be standardized (possibly leveraging existing protocols like SOAP) and the native side framework will be implemented initially for Linux devices.
Other emulator implementations for technologies other than Linux should not be technically preculded, but are out of the initial scope of the project.
Simulation of a Mobile End-to-End environment
Another of the areas of focus for the TmL project will be the development and testing of end-to-end services for mobile devices. As such, the Eclipse TmL project will provide a tighter integration of server-side development environments with device-side emulation environments.
- Simulation of a Mobile End-to-End environment
- SMS backend simulation
- Location based services simulation
The simulation for those services will be based on a similar architecture as the Emulator. The client-side of the simulated devices will tie into the same basic framework as used for the TmL Device Emulator.
We propose this project should be undertaken within the top-level Eclipse Device Software Development Platform (DSDP) project.
Consistent with the scope of the DSDP project, we envision that the Eclipse TmL project will provide a home for embedded Linux extensions across a wide range of existing and future Eclipse projects. The Eclipse Tml project will work with several related top-level Eclipse projects such as the Tools project (especially in the CDT and Modeling sub-projects) and Test and Performance (especially in the Monitoring Tools, Testing Tools, and Tracing and Profiling sub-projects) as well as working with the other DSDP sub-projects including Target Management, Device Debug, and Mobile Tools for Java. We will act as an advisor and resource provider, and will create complementary extensions, to these other Eclipse projects that wish to become more applicable for C++ embedded/mobile development.
Proposed Project lead and initial committers
- Christian Kurzke, Motorola (Proposed Project Lead)
- Mauren Brenner, Motorola
- Fabio Fantato, Motorola
- Stephen Chen, Motorola
The following companies have expressed interest in the project:
We will conduct a review of all potential contributions, as several organizations have developed capabilities similar to what Eclipse TmL proposes. Those contributions which best align with the goals of the project will be refactored and used as the starting point for TmL. Participation
The success of this project is dependent upon the participation of mobile Linux application developers, as well as mobile Linux device developers. We intend to reach out to this community and enlist the support of those interested in making a success of the Tools for mobile Linux project. Interested developers should contact the TmL newsgroup to express interest in contributing to this project.