Gonk Redirect 2

Draft
This page is not complete.

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.

Gonk overview

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 exposed 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 B2G/config.sh.

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.

 

Document Tags and Contributors

Contributors to this page: Sheppy
Last updated by: Sheppy,