Gonk is the lower level operating system of the Firefox OS platform, consisting of a Linux kernel based on the Android Open Source Project (AOSP) and userspace hardware abstraction layer (HAL). This article aims to explain what constitutes Gonk; for more on the overall Firefox OS architecture and how Gonk fits into this, read our Firefox OS architecture guide.
In the Gecko source there’s a
b2g/ folder that contains the Gonk Port, which unlocks mobile hardware capabilities for the Web. This consists of a Linux kernal, HAL, and other OEM-specific libraries. Several of Gonk's libraries are common open-source projects: libusb, bluez, and so forth. Some of the other parts of the HAL are shared with the Android project: GPS, camera, and others.
Gonk is a device porting layer: an adapter between the hardware and Gecko. Gonk is a relatively simple Linux distribution that can be treated as a Gecko Port paired with Gecko porting layers — so Gonk is a porting target of Gecko, just like there's a port of Gecko to OS X, Windows, and Android.
Note: Since different mobile devices may have different chipsets and other hardware specs, devices may contain different Gonk distributions.
Since the Firefox OS project has full control over Gonk, we can expose interfaces to Gecko that can't be expo sed on other operating systems. For example, Gecko has direct access to the full telephony stack and display frame buffer on Gonk.
Gonk source code
The main B2G repo on Github contains official support Gonk ports for a variety of devices, So you can treat it as Gonk’s repository. The list of supported devices is available in
Most of the day to day work done on Gonk work involves porting the system to different boards and make sure Gecko can work well on different devices.