Firefox OS

From Infogalactic: the planetary knowledge core
(Redirected from FxOS)
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Firefox OS
Firefox OS Vertical SVG Logo.svg
Firefox OS 2.1 - Lock screen.png
Firefox OS 2.1 nightly build lock screen (Italian)
Developer Mozilla
Written in HTML5, CSS, JavaScript,[1] C++
OS family Firefox OS/Open Web (based on Linux kernel)
Working state Discontinued; forked to form KaiOS
Source model Open source[2]
Initial release February 21, 2013; 11 years ago (2013-02-21)
Latest release 2.2.0 / April 29, 2015; 9 years ago (2015-04-29)
Latest preview 2.5.0
Marketing target Smartphones
Tablet computers
Platforms ARM, x86, MIPS
Kernel type Linux
Default user interface Graphical
License Free software (MPL 2.0[2][3])
Official website mozilla.org/firefox/os

Firefox OS[4] (project name: Boot to Gecko, also known as B2G)[5] is a discontinued open-source operating system – made for smartphones,[6] tablet computers[7] and smart TVs[8] – designed by Mozilla and external contributors. It is based on the rendering engine of the Firefox web browser, Gecko, and on the Linux kernel. It was first commercially released in 2013.

Firefox OS was designed to provide a complete,[9] community-based alternative operating system, for running web applications directly or those installed from an application marketplace. The applications use open standards and approaches such as JavaScript and HTML5, a robust privilege model, and open web APIs that can communicate directly with hardware, e.g. cellphone hardware.[5] As such, Mozilla with Firefox OS competed with commercially developed operating systems such as Apple's iOS, Google's Android, Microsoft's Windows Phone,[9] BlackBerry's BlackBerry 10, Samsung's/Linux Foundation's Tizen and Jolla's Sailfish OS. In December 2015, Mozilla announced it would stop development of new Firefox OS smartphones,[10] and in September 2016 announced the end of development.[11] Successors to Firefox OS include the discontinued B2G OS [12]) and Acadine Technologies' H5OS as well as KaiOS Technologies' KaiOS and Panasonic's My Home Screen.[13][14]

History

Firefox OS was publicly demonstrated in February 2012, on Android-compatible smartphones.[15][16] By December 16, 2014, fourteen operators in 28 countries throughout the world offered Firefox OS phones.[17]

On December 8, 2015, Mozilla announced that it would stop sales of Firefox OS smartphones through carriers.[18] Mozilla later announced that Firefox OS smartphones would be discontinued by May 2016, as the development of "Firefox OS for smartphones"[19] would cease after the release of version 2.6. Around the same time, it was reported that Acadine Technologies, a startup founded by Li Gong (former president of Mozilla Corporation) with various other former Mozilla staff among its employees, would take over the mission of developing carrier partnerships, for its own Firefox OS derivative H5OS.[20]

In January 2016 Mozilla announced that Firefox OS would power Panasonic's UHD TVs (as previously announced Firefox OS "would pivot to connected devices").[21] In September 2016 Mozilla announced that work on Firefox OS had ceased, and that all B2G-related code would be removed from mozilla-central.[22]

Project inception and roll-out

Commencement of project

On July 25, 2011, Andreas Gal, Director of Research at Mozilla Corporation, announced the "Boot to Gecko" Project (B2G) on the mozilla.dev.platform mailing list.[9] The project proposal was to "pursue the goal of building a complete, standalone operating system for the open web" in order to "find the gaps that keep web developers from being able to build apps that are – in every way – the equals of native apps built for the iPhone, Android, and Windows Phone 7."[9] The announcement identified these work areas: new web APIs to expose device and OS capabilities such as telephone and camera, a privilege model to safely expose these to web pages, applications to prove these capabilities, and low-level code to boot on an Android-compatible device.

This led to much blog coverage.[23][24] According to Ars Technica, "Mozilla says that B2G is motivated by a desire to demonstrate that the standards-based open Web has the potential to be a competitive alternative to the existing single-vendor application development stacks offered by the dominant mobile operating systems."[25]

In 2012, Andreas Gal expanded on Mozilla's aims. He characterized the current set of mobile operating systems as "walled gardens"[26] and presented Firefox OS as more accessible: "We use completely open standards and there’s no proprietary software or technology involved."[26] (That changed in 2014; see Digital rights management (DRM), below.) Gal also said that because the software stack is entirely HTML5, there are already a large number of established developers.[26] This assumption is employed in Mozilla's WebAPI.[27] These are intended W3C standards that attempt to bridge the capability gap that currently exists between native frameworks and web applications.[28] The goal of these efforts is to enable developers to build applications using WebAPI which would then run in any standards compliant browser without the need to rewrite their application for each platform.

Jan Jongboom at the Simonyi Conference - 2014

Development history

In July 2012, Boot to Gecko was rebranded as 'Firefox OS',[29] after Mozilla's well-known desktop browser, Firefox, and screenshots began appearing in August 2012.[30]

In September 2012, analysts Strategy Analysts forecast that Firefox OS would account for 1% of the global smartphone market in 2013 – , its first year of commercial availability.[31]

In February 2013, Mozilla announced plans for its global commercial roll-out of Firefox OS.[32] Mozilla announced at a press conference before the start of Mobile World Congress in Barcelona that the first wave of Firefox OS devices would be available to consumers in Brazil, Colombia, Hungary, Mexico, Montenegro, Poland, Serbia, Spain and Venezuela. Mozilla also announced that LG Electronics, ZTE, Huawei and TCL Corporation had committed to making Firefox OS devices.[33]

In December 2013, new features were added with the 1.2 release, including conference calling, silent SMS authentication for mobile billing, improved push notifications, and three state settings for Do Not Track.[34]

Async Pan and Zoom (APZ),[35] included in version 1.3, should improve user interface responsiveness.

Work was done to optimize Firefox OS to run a 128 MB platform with version 1.3T.[36] A 128 MB device is out[37] that seems to use that version but it may be unfinished.

In 2015, Mozilla ported Firefox OS (an "experimental version") to MIPS32 to work in a sub-$100 tablet (that can also run Android 4.4 KitKat).[38] Mozilla has worked on developing the OS for Smart Feature Phones.[39]

Firefox OS was discontinued in January 2017.[11]

Digital rights management (DRM)

In 2014, Gal announced a change in course, writing that future versions of the Firefox browser would include DRM.[40] Implementation of DRM in the Firefox browser began with version 38.[41]

In August 2015, attempts by Matchstick TV (based on Firefox OS) to add DRM caused the demise of Matchstick, a decision that Boing Boing called "suicide-by-DRM".[42]

Demonstrations

Mozilla's Firefox OS, version Boot2Gecko-prerelease on Nexus 4 (LG E960) (Code name: mako)

At Mobile World Congress 2012, Mozilla and Telefónica announced that the Spanish telecommunications provider intended to deliver "open Web devices" in 2012, based on HTML5 and these APIs.[43] Mozilla also announced support for the project from Adobe and Qualcomm, and that Deutsche Telekom’s Innovation Labs would join the project.[44] Mozilla demonstrated a "sneak preview" of the software and apps running on Samsung Galaxy S II phones (replacing their usual Android operating system).[15][45] In August 2012, a Nokia employee demonstrated the OS running on a Raspberry Pi.[46]

Firefox OS is compatible with a number of devices, including Otoro, PandaBoard, Emulator (ARM and x86), Desktop, Nexus S, Nexus S 4G, Samsung Galaxy S II, Galaxy Nexus[47] and Nexus 4. A MIPS port was created by Imagination Technologies in March 2015.[48]

In December 2012, Mozilla rolled out another update and released Firefox OS Simulator 1.0, which can be downloaded as an add-on for Firefox. The latest version of Firefox OS Simulator, version 4.0, was released on July 3, 2013[49] and announced on July 11, 2013.[50]

Mozilla's planned US$25 Firefox smartphone displayed at MWC, is built by Spreadtrum.[51] Mozilla has collaborated with four handset makers and five wireless carriers to provide five Firefox-powered smartphones in Europe and Latin America so far with cellphone launches being led by UK marketer John D. Bernard. In India, Mozilla planned a launching at $25 in partnership with Intex & Spice,[52] but the price ended up being $33 (converted from 1,999 Rupees).[53]

Core technologies

Firefox OS architecture diagram

The initial development work involves three major software layers:[54]

Gonk

Gonk consists of a Linux kernel and user-space hardware abstraction layer (HAL). The kernel and several user-space libraries are common open-source projects: Linux, libusb, BlueZ, etc. Some other parts of the HAL are shared with the Android project: GPS, camera, among others. Gonk is basically an extremely simple Linux distribution and is therefore from Gecko's perspective, simply a porting target of Gecko; there is a port of Gecko to Gonk, just like there is a port of Gecko to OS X, and a port of Gecko to Android. However, since the development team have full control over Gonk, the developers can fully expose all the features and interfaces required for comprehensive mobile platforms such as Gecko, but which aren't currently possible to access on other mobile OSes. For example, using Gonk, Gecko can obtain direct access to the full telephone stack and display framebuffer, but doesn't have this access on any other OS.[54]

Gecko

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Gecko is the web browser engine of Firefox OS. Gecko implements open standards for HTML, CSS, and JavaScript. Gecko includes a networking stack, graphics stack, layout engine, virtual machine (for JavaScript), and porting layers.[54]

Gaia

Gaia is the user interface of Firefox OS and controls everything drawn to the screen. Gaia includes by default implementations of a lock screen, home screen, telephone dialer and contacts application, text-messaging application, camera application and gallery support, plus the classic phone apps: mail, calendar, calculator and marketplace. Gaia is written entirely in HTML, CSS, and JavaScript. It interfaces with the operating system through Open Web APIs, which are implemented by Gecko. Because it uses only standard web APIs, it can work on other OSes and other web browsers.[54]

Release history

Lua error in package.lua at line 80: module 'strict' not found.

Version[55] First build created Feature complete (FC) date[56] Code complete (CC) date[57] Release date[58] Codename Gecko version[55] Included security fixes[55] End of life[58]
1.0 August 14, 2012 December 22, 2012 February 21, 2013 TEF Gecko 18 Gecko 18 February 21, 2013
1.0.1 January 25, 2013 September 6, 2013 Shira Gecko 18 Gecko 20 September 6, 2013
1.1.0 February 20, 2013 March 29, 2013 October 9, 2013[59] Leo Gecko 18+ (new APIs) Gecko 23 May 27, 2014
1.1.1 August 24, 2013 HD Gecko 18+ (new APIs) Gecko 23 May 27, 2014
1.2.0 June 21, 2013 September 15, 2013 December 9, 2013 Koi Gecko 26[60] Gecko 26 June 9, 2014
1.2.1 December 4, 2013 Gecko 26 Gecko 26 December 17, 2013
1.3.0 September 17, 2013 January 31, 2014 March 17, 2014 Gecko 28 Gecko 28 September 4, 2014
1.3.0t April 8, 2014 Gecko 28 Gecko 28 December 19, 2014
1.4.0 December 10, 2013 April 25, 2014 June 9, 2014 August 8, 2014 Gecko 30 Gecko 30 May 14, 2015
1.5.0 March 17, 2014 April 14, 2014
2.0.0 February 21, 2013 July 21, 2014 September 1, 2014 Gecko 32 Gecko 32 July 23, 2015
2.1.0 June 9, 2014 October 13, 2014 November 21, 2014 Gecko 34 Gecko 34 July 23, 2015
2.2.0 September 2, 2014 April 29, 2015 June 8, 2015 August 20, 2015 Gecko 37 Gecko 37
2.5.0 January 12, 2015 November 2, 2015 (planned) January 4, 2016 (planned) Gecko 44 Gecko 44
2.6.0 October 30, 2015
Spark v0.1 April 15, 2015 June 22, 2015 Spark Latest

Forks

Panasonic continues to develop the operating system for use in their Smart TVs, which run My Home Screen, powered by the Firefox OS.[61]

Acadine Technologies has derived their H5OS from Firefox OS as well. Li Gong, the founder of the company, had overseen the development of Firefox OS while serving as president of Mozilla Corporation.[13][62]

A fork called KaiOS has been used on a few feature phones, including Alcatel's OneTouch Go Flip[63] (known as Cingular Flip 2 on AT&T[64]), Reliance Jio's JioPhone (LYF F30C),[65][66][67] and Intex's Turbo+ 4G.[68] The system brings support for 4G LTE, Wi-Fi, GPS, and HTML5-based apps onto non-touch devices with an optimized user interface, less memory usage, and longer battery life.[69]

B2G OS

B2G OS
Developer Mozilla community[70]
Written in {{#property:p277}}
OS family Firefox OS/Open Web (based on Linux kernel)
Working state Inactive
License {{#property:p275}}
Official website github.com/mozilla-b2g/B2G

B2G OS (Boot 2 Gecko) was a community-developed mobile operating system, and the successor to Firefox OS. It follows the Firefox OS goal of providing a complete, community-based alternative operating system , that runs software as web applications. Its mobile apps therefore use open web standards and programming languages such as JavaScript and HTML5, a robust privilege model, and open web APIs that can communicate directly with the device's hardware.

It is now the basis of KaiOS[71] which has (as of Jan 2019) over 17 percent of the Indian mobile phone market and is the third most popular phone OS. KaiOS is closed-source.

History

B2G OS was forked from Firefox OS following Mozilla's decision to discontinue support for their mobile operating system.[72] The decision was made, according to Ari Jaaksi and David Bryant, in order to "evolve quickly and enable substantial new architectural changes in Gecko, Mozilla’s Platform Engineering organization needs to remove all B2G-related code from mozilla-central."[73] As of 2017, B2G OS is no longer maintained.[12]

Comparison with Android

Firefox OS used the Linux kernel like Android does. Firefox OS used the Gecko engine on top of the Linux kernel to render the screen output. Apps were written using HTML5, CSS and JavaScript—all three being cooperative languages used in making internet webpages. In essence apps on Firefox OS were web apps and the OS could be thought of as a Web browser that stored content off-line. On the other hand, Android's apps are coded in Java using Android Studio. Android also enjoys greater maturity and support. Despite these differences, Firefox OS did feature all the essentials required to use a smartphone.[74][75] Firefox launched its first official device in Germany in 2014, which was an Alcatel One Touch Fire. The device had a 3.5” HVGA screen, Cortex A5 processor, 256MB RAM and 512MB storage. As of December 2015, Mozilla had launched 12 smartphones across 24 countries.[76]

Criticisms

Chris Ziegler of the technology website The Verge wrote that Firefox OS would take app distribution to the pre-iPhone era, requiring application developers to deal with multiple carriers and their app stores.[77][78] At the Mobile World Congress, Mozilla's CEO Gary Kovacs said that Firefox OS has the advantage that users need not install an app to use it. Mozilla sought to make the most of this with the search functionality built into Firefox OS, a core feature of the platform.[79]

Janne Lindqvist, a mobile security researcher at the Rutgers University WINLAB, expressed concern about the discovery mechanism of a Web-based platform, but a Mozilla spokesperson stated that Mozilla required developers to "package downloadable apps in a zip file that has been cryptographically signed by the store from which it originated, assuring that it has been reviewed." In addition, "apps coming back from search are given only limited access to device programming interfaces and applications, unless the user grants permission for further access."[80]

Devices

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Officially and unofficially supported devices

The structural similarities between Firefox OS and Android allow the Mozilla platform to run on a number of devices that ship with Android. While some ports of Firefox OS are hardly different from their original versions, others are heavily modified to fit the device in question. There are quite a few to note that are specifically made for Firefox OS as stated above. There are some that are designed for the developers themselves and others that are consumer-phones. There are also emulators for testing both apps and the OS itself on the desktop which are designed for both OS testing and the developers themselves.

Firefox OS specific devices for developers:

Firefox OS specific devices for consumers:

  • Alcatel Onetouch FireC 4020D[85]
  • APC Paper[86]
  • Cherry Mobile Ace[87]
  • Intex Cloud FX[88]
  • KDDI Fx0[89]
  • Spice Fire One MI FX1[90]
  • Spice Fire One Mi-FX 2[91]
  • Symphony GoFox F15[92]
  • Zen 105 Firefox
  • ZTE Open II

Firefox OS has been ported to the following devices:

See also

References

  1. B2G/Architecture - Mozilla Wiki.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. 5.0 5.1 Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. 9.0 9.1 9.2 9.3 Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. 11.0 11.1 Lua error in package.lua at line 80: module 'strict' not found.
  12. 12.0 12.1 Lua error in package.lua at line 80: module 'strict' not found.
  13. 13.0 13.1 Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. 15.0 15.1 Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. 26.0 26.1 26.2 Lua error in package.lua at line 80: module 'strict' not found.
  27. WebAPI
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Lua error in package.lua at line 80: module 'strict' not found.
  34. Lua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. 54.0 54.1 54.2 54.3 Lua error in package.lua at line 80: module 'strict' not found.
  55. 55.0 55.1 55.2 Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. 58.0 58.1 Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. Lua error in package.lua at line 80: module 'strict' not found.
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. Lua error in package.lua at line 80: module 'strict' not found.
  71. Lua error in package.lua at line 80: module 'strict' not found.
  72. Lua error in package.lua at line 80: module 'strict' not found.
  73. Lua error in package.lua at line 80: module 'strict' not found.
  74. Lua error in package.lua at line 80: module 'strict' not found.
  75. Lua error in package.lua at line 80: module 'strict' not found.
  76. Lua error in package.lua at line 80: module 'strict' not found.
  77. Lua error in package.lua at line 80: module 'strict' not found.
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. 81.0 81.1 Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.[permanent dead link]
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Lua error in package.lua at line 80: module 'strict' not found.
  91. Lua error in package.lua at line 80: module 'strict' not found.
  92. Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. 94.0 94.1 Lua error in package.lua at line 80: module 'strict' not found.
  95. Lua error in package.lua at line 80: module 'strict' not found.
  96. Lua error in package.lua at line 80: module 'strict' not found.
  97. Lua error in package.lua at line 80: module 'strict' not found.
  98. Lua error in package.lua at line 80: module 'strict' not found.
  99. Lua error in package.lua at line 80: module 'strict' not found.
  100. Lua error in package.lua at line 80: module 'strict' not found.
  101. Lua error in package.lua at line 80: module 'strict' not found.
  102. Lua error in package.lua at line 80: module 'strict' not found.
  103. Lua error in package.lua at line 80: module 'strict' not found.

External links

  • No URL found. Please specify a URL here or add one to Wikidata.