深入理解mozilla所需的背景知识

本文介绍了理解Mozilla所需的关键背景知识,包括C++/JS、HTML/XML、DOM、XPCOM、网络协议、GUI和编译原理等。Mozilla是一个庞大的跨平台软件平台,涉及到众多技术,了解这些技术对于充分利用其功能至关重要。

    mozilla是一个以浏览器为中心的软件平台,它在我们平台中占有重要地位。我们用它来实现WEB浏览器、WAP浏览器、邮件系统、电子书和帮助阅读器等应用程序。为此,我最近花了不少时间去阅读mozilla的代码和文档,我将写一系列的BLOG作为笔记,供有需要的朋友参考。本文介绍一下深入理解mozilla所需的背景知识。

 

    Mozilla 非常庞大,据说有数百万行的代码。逐行理解所有代码是不可能的 ( 也没有必要 ) ,不过要理解它的架构,以便充分利用它的功能是可能的。 Mozilla 涉及的技术比较多,如果不理解这些技术,阅读它的代码和文档可不是件容易的事。这里列出一些主要的背景知识:

 

1.          C++/JS

     mozilla 使用的开发语言主要有 C++ JS C++ 用来开发核心代码,而 JS 只是用来胶合用户界面 (XUL) 和核心代码的。 C++ 所占比例非常大,所以不熟悉 C++ 就不可能理解 mozilla C++ 本身比较复杂,幸好 mozilla 考虑到可移植性等问题,除了模板外,没有使用如异常和运行时类型识别等高级特性。

 

2.          HTML/XML

     HTML 浏览器是 mozilla 的中心项目,自然 HTML 的浏览和编辑是 mozilla 的核心之一,了解相关 HTML 相关知识可以减少理解 mozilla 的障碍。另外 mozilla 中大量使用了 XML XML 只是语法级的规范 ( 与语义无法 ) ,光了解 XML 还不够,还要了解像 XBL XUL SVG XSLT SMIL 等更专用的规范,尤其是 XUL XBL

 

3.          DOM(Document Object Model)

    Mozilla W3C 定义的 DOM(Document Object Model) 提供了强大的支持,对 HTML 文档的操作都是通过 DOM 接口进行的,所以至少要了解 DOM 的基本概念。

 

4.          XPCOM(Cross Platform Component Object Model)

    微软的 COM(Component Object Model) 只是针对 Windows 的,而 XPCOM 则是跨平台的,除此之外两者也并不完全相同,不过如果熟悉 MS COM ,再理解 XPCOM 就容易多了。 XPCOM mozilla 的核心架构,它所有的组件都是基于 XPCOM 的,不理解 XPCOM 就不可能理解 mozilla 。我认为《 COM 本质论》是介绍 COM 最好的教材,特别是前面几章写非常精辟的,不可不读。

 

5.          网络协议

     Mozilla 中所有的项目差不多都与网络有关,里面涉及的协议,除了 SSL 外,都是应用级的协议,比如 HTTP FTP SMTP POP3 IMAP 等等。不必清楚这些协议的所有细节,知道其功能和主要内容即可。

 

6.          GUI

    跨平台是 Mozilla 一直努力的目标,而 GUI 是跨平台的最大障碍之一, mozilla 为此下了很大功夫,这部分代码占有相当大的比例。所幸各种 GUI 都大同小异,如果熟悉一种或多种 GUI 系统,理解这块不成问题。

 

7.          编译原理

    所有语言的解析都要用到编译原理的知识, mozilla 中要解析 HTML 和所有 XML 格式的文件,自然离不开编译原理。熟悉编译原理中的词法分析和语法分析,对理解 mozilla 会有不小的帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值