`
happmaoo
  • 浏览: 4600842 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对话Firefox Gecko内核开发者:李沫南

阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

这些年来,随着浏览器的发展,浏览器引擎其实已经分为比较鲜明的几派,比如IE 的Trident,Firefox 的Gecko等.由。IE 浏览器的用户量相对庞大许多,所以国内许多开发者和用户可能对围绕IE开发比较熟悉。那么究竟围绕Gecko开发是怎样一种情况呢?技术上有哪些异同呢?为此我特别采访了一位拥有丰富Gecko内核开发经验的程序员李沫南。

Ericlee:请介绍一下你自己好吗?比如你从事Albatross开发的经历。
李沫南:我2002年烟台大学土木工程系毕业,在济南浪潮做了近一年.net上的ORMaping。03年11月加入北京共创开源软件有限公司,从事开源浏览器(起初是epiphany,后来是firebird)的开发。Albatross是在Firefox 1.0.x版本分支上改进的,在863项目《Linux下兼容IE扩展的功能增强性浏览器》的基础上,由当时共创开源浏览器部开发的。主要改进功能改进可参考:
2006年3月,从公司离职。目前主要从事基于浏览器的互联网爬虫和社区(站内)搜索引擎的开发。http://www.coreseek.cn
Ericlee:浏览器的内核其实可以分为Trident、Gecko,Presto、WebCore等等几种。请您谈谈Gecko 内核哪点最吸引您?它有与其它内核相比有哪些不同。
李沫南:如果都无法获取源码的情况下,IE的Trident内核实际上是最开放的。其接口设计的相对来讲最成熟,对外部应用程序支持的情况最好,这也是为什么IE外壳的浏览器非常多的原因之一。从我个人的经验看,越了解IE,越发现其设计的巧妙之处。
Oprera的Presto,我用Opera不多,不好评论;
WebCore和khtml 本身没有本地Window版本,这限制其在win32上的普及,不过,由于khtml本身不大,也许在移动设备上存在市场机会。
Gecko核心设计的相对成熟,在无法获取源码的情况下,开放程度仅次于IE。由于其本身Open Source。实际上是目前开发程度最好的浏览器。Firefox的扩展能够给浏览者带来完全不同的浏览体验。我个人因为接触的比较多,对于Gecko的缺点比优点了解的可能更多一些。其中,最大的麻烦是系统各部分和JavaScirpt绑定的太紧,导致很难加入对新的脚本语言的支持;其次,应该承认微软IE的很多设计方便了网页开发人员的开发,而Firefox在这些地方做的还很不够,当然这里里面有技术上的问题,也有法律上的问题。

Ericlee:国内许多浏览器开发都是外壳开发,请谈谈Gecko内核开发在技术上与外壳开发会面对哪些不同的挑战?
李沫南:浏览器的外壳开发和内核开发完全是两个不同的领域。相对而言,我认为内核开发更简单一些,因为其用户需求简单而明确,面对的使用者也都是程序员;外壳开发要面对最终用户,要考虑适应不同的用户使用习惯,特别是还要和各种弹出广告的网站做斗争
在技术上,其实内核开发和外壳开发很多地方是相通的,我认识的一些外壳开发者可以在非常短的时间内成为Gecko内核的开发者。不过内核开发和外壳开发还是有很多不同的,其中最大的区别在于引擎的可信程度,在外壳开发时,可以假设完全信任渲染引擎,假设其没有Bug;而在浏览器内核开发时,这些假设不存在。另外,对于程序员的要求也有很大的不同,特别是浏览器的DOM、插件、Layout和JavaScript模块,这些模块的部分代码对于性能的要求非常严格。我曾经犯了一个错误,在发行代码中多写了一句调试用的printf,结果导致CPU占有率增加了接近30%。而同样的问题,在外壳开发中则很少会遇到。
同样,在外壳开发中的鼠标手势、广告过滤和书签管理等功能在内核开发中根本不会遇到,可以这么认为,虽然外壳和内核都是浏览器开发,但实际上是截然不同的两种软件。

Ericlee:目前市场上有许多基于Gecko内核的浏览器,请谈谈你对他们的看法?
李沫南:市面上Gecko内核的浏览器主要分两类,一类是以Mozilla Firefox为代表的,用XUL作为界面描述语言的浏览器:这类浏览器往往继承了Firefox扩展性好的优点,早前的Madfox和Albatross就是这一类型的浏览器。
另一类是使用本地图形库作为界面的Gecko内核的浏览器:其中有Linux平台上epiphany、Galeon等;在win32上由Orca Browser、K-Meleon等。
一般而言,采用本地图形库的浏览器资源占用较少、速度相对较快,这一点和IE外壳浏览器一样,不过缺少了采用XUL作界面带来的扩展性。同时,由于Mozilla的嵌入接口提供的对外接口相对有限,导致目前使用Gecko做内核的采用本地图形库的浏览器的功能都相对有限。
其中,Win32平台上相对比较好的是Orca Browser,其实现了对应于IE平台的浏览器 Avant Browser 90%以上的功能。

Ericlee:Firefox 这两年越来越引起人们的关注,去年11月发布的1.5版非常的成功,请您谈谈对Firefox浏览器的看法。在技术上比Trident内核浏览器有哪些优势?
李沫南:最大的优势,全部源代码开放
在渲染方面的优势,由于Firefox使用了动态布局引擎,其显示网页内容的速度比IE快的多。这个我认为是Firefox最大的有时,显示网页的速度快也带来了浏览者工作效率的提升。
安全方面,我不认为Firefox会比IE好多少,就其实现上,也并没有为安全做特别的设计。如果FF有IE一样的用户基数,也会有同样多的漏洞。不过,由于开源的原因,用户基数的增加同时也会带来开发者的增加,考虑到这些因素,总体而言Firefox将更安全。

Ericlee:许多人都说Firefox2.0比1.5版并没有什么进步,你是这么认为吗?
李沫南:2.0的代码我还没有时间仔细研究,不过评价一款有自己内核的浏览器,最终界面仅仅是一个方面。浏览器引擎实际上更接近.net和JavaVM的角色,就想你很难通过javaVM的命令行界面来评价JavaVM的改进一样,你也很难通过最终用户界面来评价一款浏览器内核。
Ericlee:从开发角度看,比如对DOM里的对象原型的扩展,Firefox与IE哪个浏览器的扩展性更好?
在两个技术层面有两个不同的结论。在内核层面,在同样都有源码的前提下,Firefox对DOM对象的扩展没有IE方便,这也是过去一直困扰我们的问题;不过在JavaScript方面,Firefox比IE强大,早期的Albatross其中有一部分IE特性的支持就是通过脚本来实现的。


Ericlee:微软重新对 IE浏览器的投入, 使浏览器市场竞争变得更加激烈,你如何看将来的浏览器发展方向?(浏览器除了作为网络内容阅读,与应用程序结合的角度看,会如何发展?)
李沫南:我个人认为,未来浏览器终将消失,扮演和.net平台和JavaVM类似的角色。

Ericlee:你如何看待国内的开源浏览器开发氛围?
李沫南:其实,开发浏览器内核并不难,至少没有大家想像的难,比开发操作系统内核简单多了。一般一个有中等c++开发经验的程序员学习1-2个月就可以上手。至于具体能作到什么层次,需要看个人的努力程度了。至于开发Firefox浏览器外壳(做扩展)则相对简单一些,有一定的网页制作基础就可以了。
国内的开源浏览器开发氛围,怎么说呢?和国内的开源软件的大环境很像,公司的领导还很难接受自己投资开发的软件拿出去让其他人“白”用,而国内的开源浏览器开发最大的问题在于高质量的开发人员太少,当然,这可能和国内的大环境有关。如果不能很好的解决程序员的生存和发展问题,开发人员短缺的问题将一直存在。

Ericlee:可否向广大软件开发者分享一下你的软件开发成功经验?
李沫南:我现在离成功还很远,只是一个合适的卒子放到了合适的位置而已。{具体还需要增加,主要强调数学和基础知识在程序开发中的重要性}


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1361531


分享到:
评论

相关推荐

    JAVA编写的Gecko内核浏览器源码

    Java编写的Gecko内核浏览器源码是一种独特的技术实践,它展示了如何利用Java语言来实现浏览器功能,并结合不同的渲染引擎,如火狐的Gecko内核和IE内核,为用户提供浏览网页的能力。这一项目主要涉及到以下几个核心...

    C# winfrom webbrowser控件 内嵌火狐内核内核

    标题中的"C# WinFrom WebBrowser控件内嵌火狐内核内核",意味着我们将探讨如何在C#的WinForm应用中替换默认的`WebBrowser`控件,使其能够利用Mozilla Firefox的Gecko内核进行网页渲染。这通常涉及到使用第三方库,如...

    基于firefox(火狐)浏览器引擎gecko,基于xulrunner框架基础之上实现基于web技术的跨平台开始框架

    Gecko通过快速、稳定地执行这些标准,为Firefox浏览器提供了强大的浏览体验。HTML5开发利用Gecko的优势,可以创建高性能、兼容性强的应用程序,特别是在多媒体和游戏领域。 **XULRunner框架:** XULRunner是Mozilla...

    firefox os 开发者文档

    Firefox OS 是由Mozilla主导开发的开源移动操作系统,使用Linux内核和基于Gecko的运行环境。该系统的核心理念是所有用户可接触的应用都应该是基于Web的应用。开发方式完全采用开放源代码,应用程序主要基于HTML5、...

    GeckoFx 14.0.1 源码 firefox最新内核

    GeckoFX就是这样一个强大的工具,它是一个用C#编写的开源库,提供了对Mozilla Firefox浏览器内核的封装,使得.NET开发者能够方便地在自己的应用程序中集成Web浏览功能。 **1. GeckoFX简介** GeckoFX是基于Gecko渲染...

    JAVA制作火狐内核浏览器源代码

    2. **Firefox内核**:Firefox使用的是Gecko渲染引擎,这是一个开源的网页排版引擎,负责解析和显示网页内容。Gecko支持多种Web标准,如HTML、CSS、JavaScript等,使得开发者可以利用其功能构建浏览器。 3. **...

    火狐浏览器内核支持实例

    火狐浏览器内核,也被称为Gecko,是Mozilla Firefox浏览器的核心组成部分,负责解析网页内容、渲染页面以及执行JavaScript等Web语言。它是一个开源的、跨平台的布局引擎,旨在提供一致的浏览体验,无论是在Windows、...

    Gecko DOM Reference(Firefox DOM参考手册)

    **Gecko DOM Reference**,即Firefox的DOM参考手册,是为开发者提供的一种详细资源,用于理解和操作基于Mozilla的浏览器(如Firefox)中的Document Object Model(DOM)。DOM是一种标准,允许编程语言与HTML、XML等...

    火狐浏览器内核Skybound.GeckoFX

    火狐浏览器内核Skybound.GeckoFX是一款基于Mozilla Firefox开源浏览器内核Gecko的.NET框架实现,它允许.NET开发者在他们的应用程序中嵌入一个完整的Web渲染引擎,从而能够支持HTML5、CSS3以及JavaScript等现代网页...

    适用于Firefox和其他基于Gecko的浏览器的Adblock Plus扩展

    Adblock Plus是一款广受欢迎的浏览器扩展,特别针对Firefox和基于Gecko内核的其他浏览器设计,其主要功能是过滤网页上的广告,提供更清爽、无干扰的浏览体验。这款扩展不仅能够帮助用户屏蔽各种形式的广告,包括弹窗...

    判断浏览器内核.zip

    - Gecko(Firefox内核):Mozilla Firefox浏览器使用的就是Gecko引擎。 - Blink(Chrome内核):由Google Chrome和Opera浏览器采用,基于WebKit发展而来。 - WebKit(Safari内核):苹果的Safari浏览器以及早期的...

    漂亮的java嵌套火狐内核浏览器

    火狐内核,也称为Gecko,是Mozilla Firefox浏览器背后的渲染引擎。它负责解析HTML、CSS、JavaScript等Web标准,并将其转化为用户可见的页面。使用火狐内核的一个主要优点是它对现代Web标准的支持度高,能提供良好的...

    Firefox 火狐浏览器 15.0 简体中文版

    1. **性能提升**:Firefox 15.0 在速度方面有了显著提升,页面加载更快,JavaScript执行效率更高,这得益于其内核Gecko的持续优化。同时,对于HTML5的支持也更为完善,使得现代网页应用的运行更加流畅。 2. **静默...

    Gecko-Web浏览器内核源码

    总结来说,Gecko内核的开源性质为开发者提供了宝贵的资源,通过学习和理解其源码,我们可以深入了解Web浏览器的工作原理,同时利用XULRunner构建个性化的浏览器或其他Web应用程序。随着Web技术的不断演进,Gecko也将...

    火狐geckodriver

    火狐浏览器的GeckoDriver,全称为Firefox WebDriver,是一个关键组件,主要用于自动化火狐(Firefox)浏览器的行为。在Selenium自动化测试框架中,它扮演着桥梁的角色,连接Selenium WebDriver接口与火狐浏览器的...

    gecko-sdk.rar_Gecko SDK_gecko

    在IT领域,Gecko SDK是一个至关重要的工具,尤其对于那些需要深入理解和定制Mozilla Firefox浏览器内核的开发者来说。"gecko-sdk.rar_Gecko SDK_gecko"是一个压缩包文件,其中包含了开发人员所需的一系列库、头文件...

    浏览器内核miniblink、cef、firefox源码

    - Firefox使用的是Gecko内核,这是一个开源的、跨平台的渲染引擎,由Mozilla基金会开发。Gecko能够解析和执行Web标准,提供强大的安全性和隐私保护。 - `Browsers.Firefox.winform`项目表明了如何在Windows Forms...

    GeckoFx xulrunner C#火狐浏览器内核HTML5

    【GeckoFx】是开源项目,它是一个.NET框架下的控件,实现了对Mozilla的Gecko渲染引擎的封装,使得开发者能够在.NET应用程序中嵌入Firefox的浏览功能。GeckoFx允许C#、VB.NET等.NET语言的开发者创建具备现代网页技术...

    geckodriver-v0.28.0-linux64.tar.gz

    Firefox是Mozilla公司开发的一款开放源代码网页浏览器,其内核名为Gecko,因此以Gecko为名的驱动程序能够与Firefox进行通信。 标签同样重申了关键信息:Firefox浏览器、GeckoDriver以及64位Linux环境。这些标签有助...

Global site tag (gtag.js) - Google Analytics