网页浏览器“内核”与“外壳”的是是非非

1、经常听人家说什么浏览器“内核”和“外壳”,它们都是什么意思? “内核”只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。 而浏览器的“外壳”便很好理解了,它是一个面向用户的界面,也就是网页浏览器为我们实现的各种功能。 2、浏览器的内核有哪些? 事实上,有很多种(废话!),但是常见的有Trident、Gecko、WebCore、Presto等。 3、Trident是什么内核? Trident(又称为MSHTML),是微软开发的一种排版引擎。它的第一个版本随着1997年10月Internet Explorer第四版的发布而发布。随后,Trident不断地被更新和完善: Trident II(IE5)——增进对CSS1.0的支持及对CSS2重大的变更 Trident III(IE5.5)——修正部分CSS的排版控制 Trident IV(IE6)——修正了一部分box-model的错误以及增加了“兼容模式(Quirks Mode)”切换功能,以增加对文件类型描述(Document Type Definition,DTD)的支持 Trident V(IE7)——修正许多CSS排版处理上的错误以及增加对PNG格式alpha通道(半透明)的支持 不光是IE,Windows中的许多地方也使用了Trident的技术,包括从Windows 98到Windows Server 2003所有版本的Windows Explorer、Windows 98及其后续所有版本的视窗操作系统内的Windows Help程序。此外,像RealPlayer、Windows Media Player、Windows Live Messenger、Outlook Express等等也使用了Trident技术。也正因为如此,Trident无法从Windows系统中彻彻底底地卸载掉,就算是彻底卸载了,Windows的许多功能也会出现问题。 使用Trident内核的网页浏览器有:AOL Explorer、Avant、Internet Explorer、Maxthon、Netscape Browser (v.8)、Sleipnir、TheWorld、腾迅TT等。 4、Gecko是什么内核? Gecko是套开放源代码的、以C++编写的网页排版引擎。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。 由于Gecko是开源的,所以使用Gecko的网页浏览器也很多,其中的领军人物便是Mozilla Firefox。此外还有AOL for Mac OS X、Camino、Epiphany、Flock、Galeon、Netscape Browser (v.8)、Sleipnir、Maxthon等。 5、WebCore是什么内核? WebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎“KHTML”的基础上而来的。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品。使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。 6、Presto是什么内核? Presto是一个由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。此外,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。 7、浏览器的内核和外壳有什么联系? 刚才已经说到,内核负责处理网页的内容,而外壳负责提供给用户一些功能。外壳的某些功能是需要联系到内核的,比如保存网页上的图片;而有些功能是不需要经过内核的,比如前进后退功能(当然,在载入了URL以后还是需要经过内核的)。 相信大家都使用过XP中控制面板里的“用户帐户”功能,这实际上可以给我们一个更加感性的认识。用户帐户的操作界面实际上就是一个小型且功能单一的网页浏览器,它通过调用IE内核来显示主界面,而上方的“上一步”“下一步”等按钮便是浏览器外壳所提供的功能。 说到这里,我们可以回看文章开头提到的一些网友的言论。有些人认为,Maxthon仅仅是附庸在IE之上的一个浏览器,根本不值得和IE、Firefox相提并论。这其实并不妥当。首先,Maxthon是支持Trident和Gecko双内核的(支持Gecko内核时需要单独安装Gecko组件,而且目前的2系列貌似没有Gecko内核支持),所以它并不是“IE的附庸”。此外,我们已经知道,浏览器分有内核和外壳两部分。以这个眼光来看,Maxthon是Maxthon Shell+Trident(或Gecko),而Internet Explorer是IE Shell+Trident,Firefox是FF Shell+Gecko,这三款浏览器的地位实际上是一样的。只不过IE Shell和Trident都是微软开发,而FF Shell和Gecko都是Mozilla基金会在维护。同时,说IE是“IE内核”,FF是“FF内核”也是不准确的,毕竟弄IE Shell和Trident的肯定不是微软的同一个小组,而FF Shell和Gecko肯定也不是Mozilla基金会的同一个小组在维护(更何况Gecko原来也不是Mozilla开发的,原先Mozilla只是网景公司的非正式组织)。当然不可否认,拥有了内核和外壳的微软和Mozilla,在开发浏览器的能力方面肯定是要高于Maxthon的,Maxthon不可能掌握到关键技术。 8、各种内核哪一个更好一点呢? 哪一个更好,这个问题的确很难回答,应该说是各有侧重点。Trident内核使用最多,因此很多网页甚至只兼容Trident内核,而导致使用Gecko时会出现各种各样的问题。但是Trident也是最“乱”的一个内核。而Gecko、WebCore、Presto则更符合各种国际标准,显得更加“严谨”。

原文链接: https://www.cnblogs.com/-Milo/archive/2010/11/10/2873647.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    网页浏览器“内核”与“外壳”的是是非非

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17214

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午5:44
下一篇 2023年2月7日 下午5:45

相关推荐