Firefox OS system architecture diagram
Introduction to some of the Firefox-related terms:
b2g
the short name of Boot to Gecko.
Boot to Gecko
the project Code of the Firefox OS operating system. Because B2G has been used for a long time before the project has an official name, it is often used to refer to the Firefox OS.
Firefox OS
FIrefox OS basically refers to the brand and service support that Mozilla and its partners apply on B2G, and will eventually create a released product.
Gaia
the user interface layer of the Firefox OS platform. Everything that is rendered to the screen when the screen starts is the product of the Gaia layer. Gaia implements lock screen, home screen, and all the standard applications you'll expect to see on your smartphone. Gaia is fully implemented using HTML, CSS, and JavaScript. Web APIs are the only portal to the Gaia layer to the underlying system, and Web APIs are implemented by the Gecko layer. Third-party applications can be installed on the Gaia layer.
Gecko
The
operating environment of the Firefox OS application, which provides support for the following three standards: HTML, CSS, and JavaScript, which ensures that APIs can work well on gecko supported systems. That is, it includes a network stack, a graphics stack, a layout engine, a JS virtual machine, and a port layer.
Gonk
Gonk is a lower-level system for the Firefox OS platform, including the Linux kernel (AOSP-based) and the user-space Hardware abstraction layer (HAL). The kernel and some user space libraries are public open source projects: Linux, Libusb, BlueZ, etc. Some of the other layers of hardware abstraction are shared with Android projects: GPS, camera, etc. You can think of Gonk as a very simple Linux version. Gonk is the port target of the Gecko layer, which means that the Gecko layer has ports to Gonk, just like Gecko to Mac OS X, Windows, and Android. Because the Firefox OS has full control over Gonk, we can release more interfaces to Gecko than other operating systems. For example, Gecko has direct access to the Gonk phone stack and frame buffers, but not on other operating systems.
Jank
This term is often used in the discussion of mobile app space, which means that slow/inefficient code operations in the app can cause updates to the block UI or even a non-responsive state.
Introduction to Firefox OS