Open Source Operating Systems and Third Party Applications
A second major factor contributing to the need for including a stand-alone hardware based reset solution is due the use of broad based third-party applications. Even in an environment where the operating system is tightly controlled and all applications are tested and verified, every use permutation cannot be tested, as there are always situations where a verified app can still cause a fatal error.
The system failure can be the result of the OS itself or from one of the several microprocessors on board. Furthermore, with the increased adoption of open platform operating systems, which allow designers to customize the look and feel of the device as well as the proliferation of third party software, OEM programmers are seeing more and more combinations that can lead to an unstable system.
Figure 2 provides a visual representation of some of the many software layers that must interact in a mobile device as well as the number of interactions that must be coordinated between the different software sets. Before the proliferation of open source operating systems the OEM generally would develop their own OS in house as well as any user features that might be added. This approach allowed the OEM to test and verify every phone feature and interaction before shipping.
Flash forward to today and the OEM generated software may only be in direct control of the top layer customization look and feel. In most cases the device makers have no control over the applications available for download onto their device, which further compounds the issues resulting from different sets of code interacting. With this increased freedom to customize and make the device their own, the end user also increases the likelihood that the system will encounter issues running their unique set of applications.
Figure 2. Simplified Software Layers in a smart phone, opportunities for a system crash are increased with every layer and by every interaction between different sets of code.
Looking beyond the theoretical, here is a summary of some of the realities of smart phones today. According to engineers for major OEM device makers, there can be as many as 11 million lines of code running on a smart phone. They have also reported that as many as 2-3% of third party apps can cause the system to crash and that as many as 10-15% of apps alter the system software in ways that can lead to system crashes even after the application has been closed. With this background, the stage has been set to review the different reset architectures as well as the reasoning behind each.