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

