ffos: ffos architecture analyze and study

gonk,gecko ,gaia

大纲:

1.进程关系,init,b2g,nuwa,content,

2.inter process comunication (进程间通信,ipc,ipdl)

3.组件模块层次,流程,结构。

4.结合,写两“应用”,进程间,跨 层次通信。

 

高度关注官方文档!!!

gonk = aosp(Android kernel) + HAL(Android)???

gonk相对于gecko的gecko接口集(Linux发行版/定制版/修改版)

各(XPCOM)组件之间ipc通信进行交互。gecko 由many xpcom 组件组成,gecko组织结构如何?分别有哪些组件?

 

参考:

https://blog.csdn.net/xiaoma_pedro/article/details/81030930

Gonk 是 Firefox OS 平台底层的操作系统, 包括基于  Android Open Source Project (AOSP) 的 Linux Kernel 和用户空间硬件抽象层 (HAL) 。有关 Firefox OS 架构和 Gonk 如何在其中适配的知识,请参考B2G OS architecture指南。

1.overview

Gonk 在 Firefox OS stack 中可看作是 kernel 层级的组件,在 Gecko底层硬件中间充当接口的作用。Gonk 对底层的硬件进行控制,并且将硬件信息及操控接口暴露给 Gecko中的 Web APIs。Gonk 可以看作是一个 黑盒, 在屏幕后面做了所有复杂细节的工作用于在硬件层级上对 mobile device 进行控制。

Gonk 只是一个简单的 Linux 发行版本,其中包括了 Android 的一些组件(如 GPS 和 Camera)以及由  Mozilla 扩展的常用的开源工程,如 libusb, bluez, 进而将所有的层级集成到 Firefox OS 架构中。这种设计方式对 OEM 将软件组件从其他 Android 实现上移植过来是非常方便的。

Gonk 是一个设备接口层,可看作是 硬件和 Gecko 之间的适配器。Gonk是一个相对简单的Linux发行版,可以视为与Gecko移植层相对应的Gecko接口——所以,Gonk是Gecko的移植目标

由于不同的移动设备可能有不同的芯片集和其他硬件设备,设备可能包含不同的Gonk发布版本。

由于 Firefox OS 工程对 Gonk 的完整控制,我们可以向 Gecko 暴露一些在其他操作系统中无法实现的接口。例如, Gecko 已经可以直接进入 full telephone stack 进行访问,并在 Gonk 中显示出 frame buffer。

2.Gonk architecture(Gonk架构)

每一款手机都由定制的Gonk组件构成,这些组件都是基于system libraries、 device drivers、操控硬件设备的firmware的。 这些组件由OEM厂商、硬件制造商、ODM厂商决定。下面列表显示了Gonk实现的示例:

这个示例展示了以下主要组件:

  • Linux Kernel: Uses libraries from Android (GPS, camera, etc.) and other open source projects (Linux, libusb, bluez, and so on).
  • Radio Interface Layer (RIL): Interacts with the modem hardware (telephony) in the phone. Consists of two components:
    • rild daemon: Talks to the modem firmware.
    • rilProxy: Proxies messages between rild and the b2g process
  • mediaserver process: Controls audio and video playback. Gecko communicates with the media server through an Android RPC mechanism.
  • netd process: Network daemon that interacts directly with network interfaces (Wi-fi) in the hardware.
  • Bluetooth, etc.: Bluetooth and other service-level daemons provide access to hardware capabilities.

Gonk还启动、管理和关闭b2g进程,b2g进程在B2G OS中的Gecko层。b2g进程充当了Gonk中的服务级守护进程的客户端,它可以直接与硬件交互,并向Gecko提供手机的底层硬件功能。Gecko通过进程间通信(IPC)与这些守护进程对话。这些组件协作交换命令和协议来请求和提供服务。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值