Hi there,

In light of our new strategy
<https://groups.google.com/forum/#!topic/mozilla.dev.fxos/q23oHD8fXHY> for
Firefox OS, moving away from smartphones to a more diverse set of Connected
Devices on the Internet of things
<https://en.wikipedia.org/wiki/Internet_of_Things>, I have an idea I'd like
to get some feedback on.

The architecture of Firefox OS is currently split into three main layers:

   - Gonk - A Linux kernel and userspace hardware abstraction layer, many
   parts of which are based on the Android Open Source Project and other
   common open source projects.
   - Gecko - web rendering engine and application runtime including a
   network stack and graphics stack etc.
   - Gaia - The collection of Firefox OS Apps which make up the user
   interface for Firefox OS, built with web technologies.

In evaluating the suitability of the current Firefox OS architecture for
new Connected Devices projects I noticed that Google's new Brillo
<https://developers.google.com/brillo/?hl=en> operating system has some
interesting characteristics which could be of value to us.

By my understanding Gonk is essentially Android with the Java Android
Runtime removed and a layer of glue added between the Android Hardware
Abstraction Layer and Gecko, with a few additional components which are
specific to Firefox OS.

The Brillo project is also an OS based on Android, with the Java layer
removed, also still has the Android Hardware Abstraction Layer and is
targeted at IoT devices. Brillo also differs from Android in that it is
developed in the open as part of AOSP, rather than being released as code
drops from Google like Android is.

I'd like to hear from some people who have a better understanding of Gonk
than I do as to how feasible it would be to use Brillo as a base for
Firefox OS going forward. My reasons for suggesting this are:

   - Brillo is a ready-made version of Android with the Java layer removed
   which is developed in the open and we could potentially contribute to
   directly rather than maintaining a significantly altered fork.
   - Brillo could serve as a base for a wide range of IoT projects. For
   headless devices it could be used as-is, and for those which render web
   content we could build Gecko on top with a layer of glue on top of the HAL
   similar to what we do today.
   - There are likely to be a lot of off-the-shelf hardware products and
   chipsets which will support Brillo out of the box and which would make
   great building blocks for Connected Devices projects.

One downside I can think of is that we'd still be limited to Android-class
hardware. Porting to other hardware which wasn't built with Android/Brillo
in mind, like the Raspberry Pi, would still be challenging. Perhaps in
cases like those a more vanilla Linux stack like the one we use for desktop
Firefox could be more appropriate?

Anyway, I'd like to hear what you think.

You can find the source code of Brillo at android.googlesource.com.

Thanks

Ben
_______________________________________________
dev-fxos mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-fxos

Reply via email to