Firefox OS architecture
•The bootstrapping process
•The Linux kernel
•The init process
•The userspace process architecture
Gonk
• Gonk is the lower level operating system
of the Firefox OS platform
• Consists of a Linux kernel and
userspace hardware abstraction layer
(HAL)
• Gonk is a porting target of Gecko
Gecko
•Gecko is the name of the layout engine
developed by the Mozilla Project.
•Gecko's function is to read web content,
such as HTML, CSS, XUL, JavaScript, and
render it on user's screen or print it
What are the components of
Gecko?
Document parser User preferences library
Layout engine with Mozilla Plug-in API to
content model support the Navigator plug-
Style system (handles in interface
CSS, etc.) Open Java Interface
JavaScript runtime (OJI), with Sun Java 1.2
Image library JVM
Networking library RDF back end
Platform-specific graphics Security library (NSS)
rendering and widget sets Font library
for Win32, X, and Mac
Some of the standards Gecko
supports include:
•HTML4
•CSS Level 2.1
•DOM Level 1 and 2
•JavaScript 1.8
•XML 1.0, XHTML 1.0
•XSLT and XPath,
•MathML, XForms (via an official extension)
•RDF
Some of the application that use
Gecko via XULRunner
Evergreen-Staff Client
Komodo Edit
ChatZilla
Instantbird
Gecko Usage
• Netscape 6 and SeaMonkey.
•Firefox, Camino, Flock, K-Meleon ,etc.,
•Google's picture-organization software
Picasa
•DevHelp, a GTK+/GNOME browser for API
documentation.
Notas del editor
Gaia The user interface of the Firefox OS platform. Gecko This is the Firefox OS application runtime; This means that Gecko includes a networking stack, graphics stack, layout engine, a JavaScript virtual machine, and porting layers.Gonkis the lower level operating system of the Firefox OS platform, consisting of a Linux kernel and userspace hardware abstraction layer (HAL).
The bootstrapping process:When a Firefox OS device is first turned on, execution begins in the primary bootloader. From there, the process of loading the main operating system proceeds in the typical way; a succession of increasingly higher-level bootloaders bootstrap the next loader in the chain. At the end of the process, execution is handed off to the Linux kernel.The Linux kernelThe Linux kernel(s) used by Gonk is very similar to the upstream Linux from which it's derived. Start up of linux takes place in the same rehterotical wayThe init processThe init process in Gonk handles mounting the required file systems and spawns system services.
Internally, b2g runs the Gecko layerB2g:The b2g process may, in turn, spawn a number of low-rights content processes. These processes are where web applications and other web content are loaded. These processes communicate with the main Gecko server process through IPDL, a message-passing system.Rild:rildis the daemon that implements the Radio Interface Layer (RIL). Rilproxy:InFirefox OS, the rild client is the rilproxy process. This acts as a dumb forwarding proxy between rild and b2g. Mediaserver:Themediaserver process controls audio and video playback. Gecko talks to it through an Android Remote Procedure Call (RPC) mechanism. Some of the media that Gecko can play (OGG Vorbis audio, OGG Theora video, and WebM video) are decoded by Gecko and sent directly to the mediaserver process. Netd:usedto configure network interfaces.wpa_supplicant:handlesconnectivity with WiFi access points.dbus-daemon:a message bus system that Firefox OS uses for Bluetooth communication.
Gonk is a porting target of Gecko; that is, there's a port of Gecko to Gonk, just like there's a port of Gecko to Mac OS X, Windows, and Android. 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, but doesn't have this access on any other operating system.
Gecko is a free and open source layout engine used in many applications developed by Mozilla Foundation and the Mozilla CorporationA layout engine is typically embedded in web browsers, e-mail clients, e-book readers, on-line help systems or other applications that require the displaying (and editing) of web content. Gecko similar to Webkit for Google,SAFARIGecko is the third most-common layout engine on the World Wide Web, after Trident (used by Internet Explorer for Windows since version 4) and WebKit (used by Safari and Google Chrome), and followed by Presto (used by Opera).[5][6]Gecko supports 76 charactersets including UTF-16, UTF-8XUL:XUL(XML User Interface Language) is Mozilla's XML-based language for building user interfaces. In particular, it is used by Firefox.
HTML data comes into Gecko either from the network or a local source. The first thing that happens is that it is parsed, using Gecko's own HTML parser. Then the Content Model arranges this parsed data into a large tree. The tree is also known as the "Document" and its structure is based on the W3C Document Object Model. Any use of DOM APIs manipulates the data in the Content Model.Next the data is put into frames using CSS and the Frame Constructor. A frame in this sense (which is not the same thing as an HTML frame) is basically an abstract box within which a DOM element will be displayed.
HTML4 (partial support for HTML5)CSS Level 2.1 (partial support for CSS 3)JavaScript 1.8DOM Level 1 and 2 (partial support for DOM 3)XML 1.0, XHTML 1.0XSLT and XPath, MathML, XForms (via an official extension)RDF
XULRunner is the new version of the GRE(Gecko Runtime Environment), which not only allows embedding but is capable of bootstrapping entire XUL applications such as Firefox. XULRunner supports or is planned to support embedding on all three major platforms (Windows, Mac, and Linux). Evergreen - Staff Client:Evergreen is an open source library system. Komodo Edit:A multi-language code development toolChatZilla:A standalone version of the ChatZilla IRC clientInstantbird:Multi-protocol IM client.
Gecko is primarily used in web browsers, the earliest being Netscape 6 and Mozilla Application Suite (later renamed SeaMonkey). It is also used in other Mozilla web browser derivatives such as Firefox, Camino, Flock, K-Meleon Google's picture-organization software Picasa (for Linux) is based on Gecko.DevHelp, a GTK+/GNOME browser for API documentation, uses Gecko for rendering documents.