<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'$pageTitle 		= "Project Proposal: Tools for mobile Linux (TmL)";$pageKeywords	= "mobile Linux TmL";$pageAuthor		= "Christian Kurzke";ob_start();?>    <div id="maincontent">	<div id="midcolumn"><h1>Project Proposal: Tools for mobile Linux (TmL)</h1></p><?phpinclude_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php");generate_header("Tools for mobile Linux (TmL)");?><p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>	<title>Project Proposal: Tools for mobile Linux (TmL)</title></head><body><H1>Project Proposal: Tools for mobile Linux (TmL)</H1><H2>Contents</H2><ol><li><a href="#TmL">Tools for mobile Linux</a></li><li><a href="#Background">Background</a></li><li><a href="#Eclipse">How TmL fits into the Eclipse Ecosystem</a></li><li><a href="#Scope">Scope</a></li>  <ul>  <li><a href="#Emulator">The TmL Emulator Framework</a></li>  <li><a href="#Simulation">Simulation of a Mobile End-to-End Environment</a></li>  </ul><li><a href="#Organization">Organization</a></li><li><a href="#Committers">Proposed Project Lead and Initial Committers</a></li><li><a href="#Interested">Interested Parties</a></li><li><a href="#Contributions">Code Contributions</a></li><li><a href="#Participation">Participation</a></li></ol><H2><a name="TmL"></a>Tools for mobile Linux</H2><P>The <i>Tools for Mobile Linux</i> (TmL) project is a proposed open source project under the <i>Device Software Development Platform</i> project.</P><P>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 from the Eclipse community.</P><P>You are invited to comment on and/or join the project. Please send any feedback to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.tml">eclipse.dsdp.tml</a> newsgroup.</P><H2><a name="Background"></a>Background</H2><P>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.</P><P>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.</P><P>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 number of existing Development Tools, from the GNU compiler toolchains to profilers and emulators.</P><H2><a name="Eclipse"></a>How TmL fits into the Eclipse Ecosystem</H2><P>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.</P><P>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).</P><H2><a name="Scope"></a>Scope</H2><P>As described 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.</P><P>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 use cases.</P><P>The goal for the TmL project is to provide tools which to span the entire software development cycle: <i>Define, Design, Develop, Debug, Deploy</i>.</P><ul><li><b>Define</b>:</li>  <ul>  <li>system software architecture</li>  </ul><li><b>Design</b>:</li>  <ul>  <li>software modeling</li>  <li>GUI design (possibly using DSDP/NAB)</li>  </ul><li><b>Develop</b>: (using and extending CDT)</li>  <ul>  <li>code development</li>  <li>managed toolchains for cross compilers</li>  <li>managed make for different platforms </li>  </ul><li><b>Debug</b>: (using DSDP/TM, DSDP/DD and TPTP)</li>  <ul>  <li>device emulator</li>  <li>on-device debugging </li>  <li>on device and emulator unit- and regression testing </li>  <li>on-device profiling </li>  <li>testing of enterprise with simulated mobile infrastructure</li>  </ul><li><b>Deploy</b>:</li>  <ul>  <li>application signing and on-device deployment </li>  </ul></ul><H3><a name="Emulator"></a>The TmL Emulator Framework</H3><P>The most immediate need for a successful mobile Linux application development environment is an emulation environment to execute on the development computer.</P><P>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 controlled by the Eclipse Plug-Ins.</P><P>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.</P><P>Other emulator implementations for technologies other than Linux should not be technically precluded, but are out of the initial scope of the project.</P><H3><a name="Simulation"></a>Simulation of a Mobile End-to-End Environment</H3><P>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.</P><ul><li>Simulation of a Mobile End-to-End environment</li><li>SMS backend simulation</li><li>Location based services simulation</li></ul><P>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. The virtual devices communicate through the emulator native framework. On the Eclipse side we will define an "extension Point" API which can be used by Eclipse Plug-Ins to control the devices.</P><H2><a name="Organization"></a>Organization</H2><P>We propose this project should be undertaken within the top-level Eclipse Device Software Development Platform (DSDP) project.</P><P>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.</P><H2><a name="Committers"></a>Proposed Project Lead and Initial Committers</H2><ul><li>Christian Kurzke, Motorola (Proposed Project Lead)</li><li>Mauren Brenner, Eldorado (Motorola contractor)</li><li>Fabio Fantato, Eldorado (Motorola contractor)</li><li>Stephen Chen, Motorola</li></ul><H2><a name="Interested"></a>Interested Parties</H2><P>The following companies have expressed interest in the project:</P><ul><li>Nokia</li><li>Wind River</li><li>ARM</li><li>Palm</li></ul><H2><a name="Contributions"></a>Code Contributions</H2><P>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.</P><H2><a name="Participation"></a>Participation</H2><P>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.</P></body></html></p>      </div>  </div><?php	$html = ob_get_contents();	ob_end_clean();	# Generate the web page	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);?>