https://blog.csdn.net/zembers/article/details/48174615
先说下啥是Gecko: Gecko是套开放原始码的、以C++编写的网页排版引擎。主要用在mozilla Firefox Browser以及Firefox OS(B2G)上。市场上使用Gecko作为渲染引擎的远远少于使用Webkit(Chromium)。
为啥要分析Gecko?因为工作需要~
首先看下Firefox OS的系统框架:
Firefox OS主要分以下几大部分:(具体说明可以看下mozilla的mdn上的相关信息:https://developer.mozilla.org/en-US/Firefox_OS/Platform/Architecture)
1. Gaia
2. Gecko
3. Gonk
4. linux kernel(driver)
其中,Gaia主要指运行在firefox os上的各种web app以及工具。Gecko是Firefox OS的渲染引擎。Gonk类似于Android上的HAL,它提供了底层driver与上层Gecko之间的接口。
Firefox OS很取巧的利用了Android的一些设计思想以及实现,比如Firefox os中在Gonk层也使用了Android的HAL,通过hal来屏蔽各厂商的硬件差异性。它使用了Android上很多的系统库(bionic,system,netd,recovery, binder等等),实质上来说Firefox OS就是以Android各种底层库为基础利用Firefox Browser渲染引擎(Gecko)而实现的Web OS。
另外在Firefox OS中也借鉴了Chromium里的部分实现机制,如IPC,message loop等等。看来天下文章一大抄呀~
2007年Android刚开始发芽的时候,又是由于工作需要,分析过其启动流程。对比了下Firefox OS,发现Android启动流程简单的太多了。Firefox OS用Gecko,真是一个超级大水坑呀。呼呼。
废话太多了,下篇开始正式分析Firefox OS启动流程。