B2G: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Removed obsolete content)
 
(68 intermediate revisions by 19 users not shown)
Line 1: Line 1:
This page is edited by brendan, cjones, gal. Please don't change without permission.
[[File:B2g wordmark.png]]


== Booting to the web ==
== General Information ==
B2G OS is a complete, standalone operating system for the open web.


Mozilla believes that the web can displace proprietary, single-vendor stacks for application development. To make open web technologies a better basis for future applications on mobile and desktop alike, we need to keep pushing the envelope of the web to include --- and in places exceed --- the capabilities of the competing stacks in question.
* [[Booting to the Web|Original Announcement]]
* [[B2G/Transition_Project|Transition Project]] (March-June 2016)
* [[B2G/FAQ|FAQ]]
* [https://developer.mozilla.org/en-US/Firefox_OS/Platform/Architecture Architecture]


We also need a hill to take, in order to scope and focus our efforts.  Recently we saw the [http://github.com/andreasgal/pdf.js/ pdf.js] project expose small gaps that needed filling in order for "HTML5" to be a superset of PDF.  We want to take a bigger step now, and 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 WP7.
== Building B2G ==


To that end, we started a project we’re calling [http://wiki.mozilla.org/B2G Boot to Gecko] (B2G) to pursue the goal of building a complete, standalone operating system for the open web.  It requires work in a number of areas.
* [https://github.com/mozilla-b2g/B2G/blob/master/README.md Build the full stack] (for a mobile device)
* [[Mulet]] (B2G desktop runtime)
* [[Gaia]] (The UI for B2G)


* '''New web APIs''': build prototype APIs for exposing device and OS capabilities to content (Telephony, SMS, Camera, USB, Bluetooth, NFC, etc.)
== Contributing ==
* '''Privilege model''': making sure that these new capabilities are safely exposed to pages and applications
* '''Booting''': prototype a low-level substrate for mobile devices (phones and tablets)
* '''Applications''': choose and port or build apps to prove out and prioritize the power of the system.
 
We will do this work in the open, we will release the [http://github.com/andreasgal/B2G source] in real-time, we will take all successful additions to an appropriate standards group, and we will track changes that come out of that process.  We aren't trying to have these native-grade apps just run on Firefox, we're trying to have them run on the web.
 
This project is in its early stages; some pieces of it are only captured in our heads today, others aren’t fully explored.  We’re talking about it now because we want expertise from all over Mozilla -- and from people who aren’t yet part of Mozilla -- to inform and build the project we’re outlining here.
 
== Is B2G based on Android? ==
 
No. B2G uses some of the same low-level building blocks used in Android (Linux kernel, libusb, etc) in order to reduce the burden on ODMs/OEMs to bring up B2G on new hardware. However, B2G is not based on Android, and will not be compatible with the Android stack (in particular B2G will not run Android applications).
 
== FAQ ==
 
We're maintaining [[B2G/FAQ|a FAQ]] to help people find and share answers to common questions.
 
== Roadmap ==
 
We have a [[B2G/Roadmap|roadmap]].
 
== Getting started ==


Please see the [https://wiki.mozilla.org/B2G/Hacking Hacking] page.
Please see the [[B2G/Hacking]] page and the [https://firefoxos.mozilla.community/ Firefox OS Participation Hub].


== Meetings ==
== Meetings ==
=== Gaia Weekly Meeting ===
[[B2G/Meeting | B2G Weekly Meeting]]
; '''Time:''' : Tuesdays 0900 PDT / 1700 CET / 0000 CST
; '''Dial-in:''' : +1 650 903 0800 x92 Conf 434#<br>+1 416 848 3114 x92 Conf 434#<br>+1 800 707 2533 (pin 369) Conf 434# (toll free, Skype)
; '''Vidyo:''' : MTV 2J-JK
 
''Notes during the meeting are captured on [https://etherpad.mozilla.org/gaia-meeting-notes this etherpad] and later transferred to [https://wiki.mozilla.org/B2G#Past_meeting_notes Past meeting notes] of this page.''
 
=== B2G Weekly Meeting ===
; '''Time:''' : Tuesdays 1700 PST / 0200 CET / 0900 CST
; '''Dial-in:''' : +1 650 903 0800 x92 Conf 434#<br>+1 416 848 3114 x92 Conf 434#<br>+1 800 707 2533 (pin 369) Conf 434# (toll free, Skype)
 
''Notes during the meeting are captured on [https://etherpad.mozilla.org/b2g-meeting-notes this etherpad] and later transferred to [https://wiki.mozilla.org/B2G#Past_meeting_notes Past meeting notes] of this page.''
 
=== Past meeting notes ===
* [[B2G/Meeting/2011-11-01|2011-11-01]] (B2G)
* [[B2G/Meeting/2011-11-08|2011-11-08]] (B2G)
* [[Gaia/Meeting/2011-11-10|2011-11-10]] (Gaia)
* [[B2G/Meeting/2011-11-15|2011-11-15]] (B2G)
* [[B2G/Meeting/2011-11-22|2011-11-22]] (B2G)
* [[B2G/Meeting/2011-11-29|2011-11-29]] (B2G)
* [[B2G/Meeting/2011-12-13|2011-12-13]] (B2G)
* [[B2G/Meeting/2011-12-20|2011-12-20]] (B2G)
* [[B2G/Meeting/2011-12-27|2011-12-27]] (B2G)
* [[B2G/Meeting/2012-01-03|2012-01-03]] (B2G)
* [[B2G/Meeting/2012-01-10|2012-01-10]] (B2G)
* [[B2G/Meeting/2012-01-17|2012-01-17]] (B2G)
* [[Gaia/Meeting/2012-01-24|2012-01-24]] (Gaia)
* [[B2G/Meeting/2012-01-24|2012-01-24]] (B2G)
* [[B2G/Meeting/2012-01-31|2012-01-31]] (B2G)
* [[B2G/Meeting/2012-02-07|2012-02-07]] (B2G)
* [[Gaia/Meeting/2012-02-28|2012-02-28]] (Gaia)
* [[B2G/Meeting/2012-02-28|2012-02-28]] (B2G)
* [[Gaia/Meeting/2012-03-06|2012-03-06]] (Gaia)
* [[B2G/Meeting/2012-03-06|2012-03-06]] (B2G)
* [[Gaia/Meeting/2012-03-13|2012-03-13]] (Gaia)
* [[B2G/Meeting/2012-03-13|2012-03-13]] (B2G)
* [[Gaia/Meeting/2012-03-20|2012-03-20]] (Gaia)
* [[B2G/Meeting/2012-03-20|2012-03-20]] (B2G)
 
== Contributing ==
 
First, you will want to read about the [[B2G/Architecture]].
 
We're in an early enough stage of the project that we're still getting infrastructure and so forth set up.  Unfortunately that means that there's not a lot of parallelizable low-level work yet.  We'll be updating this page and filing [https://github.com/andreasgal/b2g/issues issues]/bugs for work items as that changes.
 
For now, the best ways to contribute are
# Work on existing Firefox/Gecko features and bugs.  See [https://bugzilla.mozilla.org bugzilla] or join #developers or #b2g on IRC.
# Work with the [[WebAPI|Web APIs]] group on [https://bugzilla.mozilla.org/show_bug.cgi?id=673923 new features].  Join #content or #b2g on IRC, and join the [[http://groups.google.com/group/mozilla.dev.b2g/ mozilla.dev.b2g] and [[http://groups.google.com/group/mozilla.dev.webapi/ mozilla.dev.webapi] mailing lists.
# Work with the [[Accessibility/B2G|Accessibility team]].  Join #accessibility or #b2g on IRC.
# Work on performance testing.  We'll need new tools and tests, including a power-usage test suite and measurement tools.  More details forthcoming.  Join #perf or talk to bsmedberg on IRC.
# Work on new web apps!
 
We can't implement a full-fledged phone app until we have telephony APIs, for example, but that doesn't mean a phone app can't be developed in parallel.  That work also feeds back into the API design, since the phone app could work out in some detail the API gaps that need to be plugged the APIs group: the prototype could use "mock objects" to provide an approximation of the missing functionality.  Here's a short list of apps we know we'll want
* Phone
* SMS
* Contacts manager
* Camera/photo manager/gallery
* E-book reader
* Games
* Crazy new things!
* ...
 
== B2G low-level work ==
 
A few disorganized items that have arisen so far.  As we get more information about reusable work from others, these items will change
 
* [https://wiki.mozilla.org/B2G/RIL Radio Interface Layer] for accessing the cellular network. This is needed for dialing/receiving calls, SMS messages, and anything else that deals with the phone network.
* Make "home screen" web app the "home page" for browser/shell.  Import/reference [https://github.com/mozilla/openwebapps/blob/develop/site/tabletdash.html work done by Anant and webapps team].
* Implement HTML5 IME. Big project.  See [https://addons.mozilla.org/en-US/mobile/addon/virtual-keyboard-for-fennec/ Vivien's add-on] for reference.
* Build the final image in a separate step from android userspace compilation.  use the "internal" android build targets directly
* Strip out unnecessary crud from gonk image, unused programs etc.  Default home screen is currently just in the way.
* Start porting gecko to directly use native libs instead of java wrappers.  Big project.  prioritize with feedback from authors/web-APIs team.
** telephony probably first, want to show our own UI
* Give gecko a GL context for the screen and deliver raw input events to it, remove android eventry and widgetry.  Big project.
* Proxy oprofile and/or perf samples over adb to avoid processing on device
* the updater-binary built by CyanogenMod has been observed to corrupt the /system filesystem of the Galaxy S II when applying an update.zip, specifically at the reformatting command in the updater script.


== User Interface ==
9am Pacific time every Tuesday.


The UI of B2G is called [[Gaia]] and is a collection of web apps.
== Project Calendar ==
[https://www.google.com/calendar/b/1/embed?src=mozilla.com_2d3638353137343333373332@resource.calendar.google.com Web FxOS - Public Project Calendar] ([https://www.google.com/calendar/ical/mozilla.com_2d3638353137343333373332%40resource.calendar.google.com/public/basic.ics ICS]).


Some design concepts are posted [[B2G/UI|here]].
== More Information ==
For more developer information see the [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS Firefox OS section on MDN].


== Subpages of {{FULLPAGENAME}}==
== Subpages of {{FULLPAGENAME}}==
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}

Latest revision as of 13:56, 15 March 2016

B2g wordmark.png

General Information

B2G OS is a complete, standalone operating system for the open web.

Building B2G

Contributing

Please see the B2G/Hacking page and the Firefox OS Participation Hub.

Meetings

B2G Weekly Meeting

9am Pacific time every Tuesday.

Project Calendar

Web FxOS - Public Project Calendar (ICS).

More Information

For more developer information see the Firefox OS section on MDN.

Subpages of B2G