Rascunho
Esta página está incompleta.
Gonk é o nível mais baixo da plataforma do sistema operacional Firefox OS, composto por um kernel Linux baseado no Android Open Source Project (AOSP) e userspace hardware abstraction layer (HAL). Esse artigo tem como objetivo explicar como o Gonk é constituído.
Para saber mais sobre a arquitetura do Firefox OS e como o Gonk se encaixa nisso, leia o artigo Arquitetura do Firefox OS.
Visão geral do Gonk
No fonte do Gecko existe o diretório b2g/
que contém o port do Gonk, que libera recursos de hardware específicos dos dispositivos móveis para acesso à Web que são: o Kernel do Linux, HAL e outras bibliotecas OEM específicas. Muitas das bibliotecas do Gonk são projetos comuns de código aberto: libusb, bluez, entre outras. Algumas outras partes do HAL são compartilhadas com o projeto Android: GPS, câmera e outras.
Gonk é uma camada de portabilidade do dispositivo: um adaptador entre o hardware e o Gecko. Gonk é uma distribuição Linux relativamente simples que pode ser tratada como uma porta Gecko equiparada com camadas de portabilidade do Gecko — assim, Gonk é uma portabilidade alvo do Gecko, da mesma forma que existe um port do Gecko para OS X, Windows e Android.
Nota: Uma vez que diferentes dispositivos podem ter diferentes chipsets e outras especificações de hardware, dispositivos podem conter diferentes distribuições Gonk.
Como o projeto Firefox OS tem total controle sobre o Gonk, nós podemos disponibilizar interfaces ao Gecko que não poderiam ser disponibilizadas em outros sistemas operacionais. Por exemplo, Gecko tem acesso direto ao stack do telefone e ao buffer de tela, ambos do Gonk.
Código fonte do Gonk
O repositório principal B2G no Github contém ports oficiais do Gonk suportados para uma variedade de dispositivos. Que pode ser tratado como o repositório do Gonk. A lista de dispositivos suportados está disponível em B2G/config.sh
.
A rotina de trabalho no Gonk basicamente é portar o sistema para diferentes placas e garantir que o Gecko irá funcionar bem em diferentes dispositivos.