欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

Internet Explorer 9 Beta: 评价与测试

Internet Explorer 9 Beta 完整评测

微软高调地发布了Internet Explorer 9 Beta。他们声称IE9 beta以外的其他浏览器仅仅使用了我们计算机10%的能力,他们展示了利用GPU(Graphic Processing Unit,图形处理器)的优势,浏览网页将会变得更加流畅和快捷。他们还宣传了IE9和Windows 7高度结合带来的许多新功能和更优质的用户体验。

今天,让我们来看看IE9 Beta的新功能到底带来了什么。我们还会将它的跑分结果和Firefox、Chrome、Safari和Opera进行性能上的对比。

下载和安装

系统需求

要运行Internet Explorer 9,你必须使用下面的操作系统:

  • Windows Server 2008
  • Windows Vista
  • Windows 7

正如你所期望的,IE9提供了32位和64位的版本,它们都至少需要512MB的内存来运行。

取决于不同的操作系统,你需要70MB至200MB的硬盘空间。说实话,如果你真的安装了以上三种操作系统,我并不认为这些硬件需求是什么问题。

下载

ie9testdrive

微软建立了两个独立的网站提供Internet Explorer 9的部署。

你可以任选一个网站来下载IE9,这些站点都针对IE9进行了优化来展示其亮点、新功能和性能的增强。Test Drive(测试驱动)网站提供了一系列的Web应用程序示例,它们都非常适合用来展示IE9的性能。我们将在下文介绍一些示例和评分工具。

安装前准备

如果你已经安装了Internet Explorer 8,那么请注意:如果你要安装64位的IE9,原先的64位IE8将会被卸载。我没有测试过32位的版本但我认为不会有所不同。

据我所知,IE9将会保留所有的书签、收藏夹等设置,但是请注意备份你的数据以防万一

安装

安装应该很顺利,我使用的电脑配置较新,而且安装了Windows 7。我不能保证其他操作系统下的安装过程是怎样的,但是由于要安装一个Windows更新,我必须重启机器。我之前向几位Windows 7用户进行了确认,他们的安装流程都是和我一样的。

可以想象IE9的正式发布也是通过Windows更新来提供的,希望到时候安装不需要重启电脑。

主要新功能

硬件加速的图形和文本

IE9开发伊始,提升速度便作为一个主要目标。硬件加速将允许网站在浏览器中表现得更加平滑和快速。图形、文本和视频这些元素现在都是通过GPU渲染而非CPU。我们将会在下文的评分中看到它带来的影响。(译注:Firefox 4 beta版和Chrome 7 dev版也开始支持硬件加速的功能)

优雅且更加清楚的用户界面

微软真正精简了浏览器的界面。与Firefox或者IE8相比,你可以看到有多少赘余的内容从整个应用程序中精简掉了。地址栏不再横跨整个顶部,独立的搜索框也消失了,最值得注意的是状态信息栏移到了屏幕底部。

此外,一个非常巧妙、让人感到惊喜的细节是:导航按钮会改变颜色以匹配网站的主题或Favicon(译注:即网站在书签中显示的图标,只有通过任务栏直接打开网站时才会显示)

固定网站、跳转列表和其他Windows 7集成功能

所有用过Windows 7的人都知道新版的任务栏是多么好用。欣喜的是,IE9也支持这种任务栏,这将使你更方便地访问喜爱的网站。

拖动一个网页的标签,你可以将它拖出浏览器然后固定到任务栏。你不仅可以像打开应用程序那样打开网站,还可以在右键点击后出现的所谓“跳转列表”中同网站直接进行交互。例如,twitter.com的跳转列表支持下列操作:新Tweet、私信、回复、喜爱条目和搜索。从任务栏中就可以进行这些操作,这可以节约许多时间!

缩略图预览控制允许你在任务栏上使用导航菜单或者暂停一个视频。如果你有过使用任务栏控制Windows Media Player的经历你应该可以想象到。我想Youtube和Facebook这样的网站很快会实现这一功能。

新标签页

使用一个显示着书签网页或者最喜爱的网站列表的页面来方便你的导航,是一件很寻常的事情。Safari提供了一个很好的例子,但是IE9更进一步。无论何时你打开一个新标签页,你将会看到一个个你浏览最多的网页的图标和标题摆在一起。而且每个网页还有一个活跃度标尺,它将显示你浏览该网页的活跃程度。如果你对其他浏览器中的类似功能很感兴趣,那么你同样会喜欢IE9中这一新增的功能。

整合输入框

我之前已经提到过,地址栏和搜索栏已经合二为一了。微软很聪明地整合它们到一个输入框内。你可以在一个文本框内输入网址,查询搜索引擎,浏览历史页面或者喜爱网站。你甚至可以打开搜索建议,这将会根据你的搜索关键词实时返回结果。

一开始我有点担心隐私:浏览器是如何知道你正在输入的内容能不能提交给搜索引擎的呢?原来IE9可以让用户控制信息,决定哪些内容不会被发送到搜索引擎。他们想到了一切!(译注:用不着这么激动吧……)

通知栏

为了保持清晰的界面,IE9改变了通知和警告的方式。之前,通知会把网页内容向下压或者给你一个弹出窗口,这阻碍了用户浏览的内容。现在,通知栏显示在浏览器最底部。通过一个清楚和传达性好的设计,你可以确认一次下载任务或者更新浏览器插件。这一切都不会打断你正在浏览的网页。

下载管理器和SmartScreen过滤器

所有的下载任务将可以通过IE9的下载管理器进行管理。如果你对Firefox很熟悉,那么你可以看到许多类似的功能。它们都包含一个默认的下载文件夹,一个单独的“下载”窗口(显示每个文件的名字、大小和位置),而且都可以删除、查看或者清空下载列表。

然而,相似止步于此。IE9集成了一种恶意软件检测功能,叫做SmartScreen

SmartScreen是“一个开创性的浏览器功能”(a groundbreaking browser feature),它正是为了保护你免受恶意软件下载而开发的。

通过实时的数据,每个下载任务都分配了一个声誉值,这个声誉值是通过总的下载计数和被报告为恶意软件的次数得出的。一个文件获得的警告越严重,那么SmartScreen判断的下载风险就越高。微软声称:“Internet Explorer 9 是唯一一个通过下载文件声誉来帮助用户作出更加安全决定的浏览器。(Internet Explorer 9 is the only browser that uses download reputation to help users make safety decisions.)”我等不及地要看看它的实际效果,但是我不禁担心报告文件的功能会被滥用导致误判。(译注:SmartScreen在IE8中就已经出现,但是我一直认为这是个鸡肋的功能,因为我从未遇到过报警的情况)

崩溃恢复

应用程序崩溃了——这是一个残酷的事实。无论开发者如何努力,浏览器在面对无限JavaScript循环或者网页需要处理超大规模数据的时候总会有撑不住的情况发生。对于我来说,最气人的情况莫过于崩溃时我打开了许多标签页了。

IE9的巧妙做法让这种窘境不再出现。当浏览器崩溃时,IE9将问题的范围局限在一个标签页中,用户可以关闭这个标签页而不会打断其他工作。你不再需要检查历史记录来判断哪一个网页引起了浏览器崩溃。干得好,IE9。(译注:这样的崩溃保护功能在IE8中就已经出现)

兼容性视图

正如之前的一些特性,这个功能也是IE9独有的。(译注:其他浏览器没有这个功能恐怕是因为他们没有一个像IE6一样死缠烂打的前辈吧?)

兼容性视图的工作是分析流行网页并测试它们与IE9的兼容性,如果网页不满足特定条件,在刷新和停止按钮的中间就会显示一个新的按钮。如果你单击这个按钮,“旧文档模式”就会激活。

旧文档模式,顾名思义,它会以Internet Explorer 8的方式显示网页。如果某网页中元素显示不正确,你可以开启兼容性视图,一般这会解决任何问题。此外,IE9会记住你在哪些网页上开启了这种模式,当你下一次浏览这些网页时兼容性视图会自动激活。

亲自试用过后,我还没与发现不同视图之间的差异。

我应当提醒的是,网页的兼容性事实上是由Internet Explorer团队早已决定好的。我不禁纳闷了,判断网页是否兼容就没有特定的标准吗?

加载项性能建议

这个功能最初出现在Internet Explorer 8,这是为了性能的简单进步。如今许多浏览器都提供了第三方插件,它们有搜索引擎优化工具,电子邮件检查器,等等。这个性能建议简单地通知用户如果一个加载项拖慢了浏览器性能你可以选择禁用它。

我使用Firefox作为主浏览器许多年,我也非常提倡使用插件。我真心地希望这个功能可以有效地运作因为我经常因为性能问题去禁用一些插件。

标记语言和标准支持

Internet Explorer 9在开发时就考虑了现代的网页标准。当开发者和客户端都尝试在网站中使用HTML5、SVG和CSS3时,IE9将其注意力集中在对这些标准的广泛支持上。我很欣喜地听闻他们和标准组织例如W3C一起工作花费了许多时间和精力。为了确保他们在浏览器标准的比赛上取得领先地位,他们向标准组织贡献了2000多个测试结果来“帮助标记语言变成现实”。

为了使开发人员更容易地使用IE9和标记语言协同工作,IE9团队将重点放在了5个方面:HTML5,文档对象模型(Document-Object Model,DOM)优化,CSS 3,可缩放矢量图形(Scalable Vector Graphics,SVG),和Chakra——新的JavaScript引擎。

HTML5

如果你还没有见识过HTML5,那么我推荐你去看看IE 测试中心。那里你可以看到许多神奇的Canvas(HTML元素)和评估工具。以我个人来说,我最喜欢新的视频和音频元素,它们可以在几乎所有流行的浏览器中提供更加快捷和方便的多媒体内容。

IE家族中对HTML5的支持始于Internet Explorer 8。IE8并没有支持绝大多数较新的HTML5特性,而和其他现代浏览器相比也往往排名落后。因此IE9采用了另一种办法,即通过Windows和你的GPU来实现硬件加速。结合对新元素的支持和更好的HTML解析效率,IE9已经将HTML5的竞争提升到了一个新的高度。

CSS3

IE8再次为IE9奠定了层叠样式表(Cascading Style Sheets,CSS)的基础。如果你是一个开发者,你应当知道在CSS2.1为核心的IE8上赶鸭子上架地进行CSS3操作是一件多么困难的事情。不幸的是,除了少部分的修复和变通方法,它们中的绝大多数仍是普遍的难题。感谢IE9内建的CSS3支持,它将是第一个支持许多CSS3模块的IE版本。

Web设计中的一个最新趋势是使用在网页中使用@font-face和类似的排版增强技术。IE9带来了对网络开放字体格式(Web Open Font Format,WOFF)的支持,这样我们就可以和TrueType以及OpenType格式一起改变CSS3中font-family的样子了。在Firefox和@font-kits中工作了几个月后,我对于IE9的这项实现感到很兴奋。

IE9现在支持下面的CSS3模块:

  • 背景和边框模块
  • 颜色模块
  • 字体模块
  • 媒体引用模块
  • 命名空间模块
  • 选择器模块
  • 值和单位模块

(译注:IE9对CSS3选择器的支持很全面,但是许多CSS3属性并不支持,例如现在已经应用较广的text-shadow和box-shadow属性)

可缩放矢量图形(SVG)

最近我开始使用Adobe Illustrator工作,在接触了Web设计和开发10年以后(以前主要使用Adobe Photoshop)我终于感觉我可以花点时间在Illustrator上看看它能为我提供什么,尤其是将我的作品导出成SVG文件。这是我第一次介绍可缩放矢量图形(Scalable Vector Graphics),而我现在越来越了解它了。

Internet Explorer似乎一直不能够处理SVG文件。IE9是我们第一次看到可彼此协作的SVG元素支持。他们不但遵从了标准,而且还使用了硬件加速,通过GPU来提高渲染的性能。

如果你还没有见识过,我建议你去IE测试中心去看看那些SVG示例。它们比起简单的2D图形已经有了很大进步。

Chakra和改进的DOM

Internet Explorer团队给他们的新JavaScript引擎取名为Chakra。

人们似乎永远无法解释清楚“Chakra”是什么,尤其是在医药和宗教领域(译注:查克拉在动漫领域估计也解释不了)。如果你和我一样只拥有Web设计和开发的背景,不妨到Wikipedia(译注:中文维基百科链接去了解一下这个复杂的概念,当然这已经跑题很远了。

IE9的Chakra是一套全新的JavaScript引擎。之前版本的Internet Explorer中JavaScript的地位比较边缘,它从未被编译进内核。Chakra改变了现状,如今JavaScript解释器是整个IE9引擎的一部分,和多核CPU一起工作,将会最大程度地利用计算机的硬件资源。这将带来更快的解释,编译和代码执行速度。

新的文档对象模型(Document-Object Model)也带来了许多变化。有赖于一系列的改进,IE9提升了渲染内容的效率。例如,之前版本的Internet Explorer在处理DOM的空白时有问题,而IE9采用了更适合的方法处理它。

浏览器评分和比较

上文谈了这么多硬件加速、现代标准支持和改进的解释效率,你可能会认为IE9是现代浏览器中的圣杯了吧(译注:Holy Grail,想不到什么本土化的代替,大概可以理解为那种难以望其项背的佼佼者)。它当然拥有许多引人注目的特性,不过说实话,作为一个坚定的Firefox拥趸,我倒是想看看IE9花了这么多钱到底都花在哪里了。

当我写这篇文章的时候,IE9 beta发布仅仅过去了24小时。任何一个关于Twitter或者相关论坛的人都早已看到一些IE9和其他浏览器之间简单的对比和评分。我已经看过非常多赞成和反对的意见,看过一些颇有成效的争论,也看过当被问及“你在使用IE9吗?”时某些人对其他浏览器誓死效忠的表态。

我决定亲身检验一番,于是我设置了一个基本的评分环境,安装了五个常见浏览器让它们和IE9一决高低。接下来的部分,你想会看到我进行的测试以及测试的工具,当然还会有竞争中IE9的表现。

测试系统

我使用了一台笔记本电脑和一台台式机来进行测试,但是文章中仅仅采用了其中一组结果。我发现在中等价位的“家庭办公”笔记本电脑和我的台式机上测试硬件加速的结果相差非常大。64位和32位浏览器的测试结果也是如此。

以下是我的台式机的系统配置:

  • Windows 7 64-bit
  • Intel i7 920 D0 CPU @ Stock 2.67 GHz
  • 海盗船 Corsair 6GB DDR3 内存
  • ATI Radeon HD 5800 显卡
  • ASUS Rampage II 主板

参测浏览器

根据个人的经验,咨询了其他Web设计师和开发者,并参考了来自toptenreviews.com网站的2010年浏览器产品比较(2010 Internet Browser Software Review Product Comparison)中的列表,我决定使用以下浏览器。

  • Firefox v 3.6.10
  • Opera v 10.62
  • Safari v 5.0.1
  • Chrome v 6.0.472.59
  • IE9 Beta v 9.0.7930.16406
  • FireFox 4 Beta 6

我的列表包含了流行的浏览器并且它们中有许多是跨操作系统的。进行跑分操作时,每个浏览器都是刚刚安装完最新版本并且没有任何第三方插件。我认为这很重要。

每个测试都在重新启动系统后在浏览器的最大化窗口中进行。如果你看过IE Test Drive网站,你会发现许多测试案例和漂亮的例子。每个人都有最喜欢的测试案例,我可以理解你也许觉得其他测试更能作为浏览器比较的评分依据。所以如果我遗漏了更适合的测试案例,请原谅我。

评分测试结果

WebKit SunSpider JavaScript 基准测试

版本: 0.9.1

http://www2.webkit.org/perf/sunspider-0.9.1/sunspider.html

SunSpider模拟了真实环境下的JavaScript使用。当请求浏览器执行一些常见的JavaScript函数,例如密码学函数,我们可以计量出浏览器处理的快慢。JavaScript执行越快,引擎越好。

Acid3 测试

http://acid3.acidtests.org/

Acid3测试实际上是一系列测试的集合,它们分为六个部分。整个测试是用来衡量浏览器对各种Web标准的支持程度的。测试的每个部分都用一个彩色的矩形来表示,测试的百分比得分会在下面显示。如果解析无误,整个测试结果可以很详细地得出。

我列出了每个浏览器的百分比得分。如果你想更深入地了解Acid3,建议你去Wikipedia 页面(译注:中文维基百科页面

CSS3选择器测试

http://tools.css3.info/selectors-test/test.html

CSS3选择器测试使用了41种CSS3选择器,一共有574个测试项目。测试结束后,你可以看到浏览器任何有问题或者不支持的选择器。简化起见,我使用了满分为574分的分数作为测试结果。

HTML5 测试

版本: 1.0

http://www.html5test.com/

这项测试的分数取决于各个浏览器对新的HTML5特性的支持程度。每个特性测试通过都会换算成一定的分数,如果支持像音频和视频内容这样的特殊功能,还会有额外奖励分数。我列出了各个浏览器的得分,满分是300分。(译注:最新的Chrome 7.0.536.2 dev版的得分是241分 )

FishIE Tank(IE水族箱)

http://ie.microsoft.com/testdrive/Performance/FishIE%20tank/Default.html

这是一个很棒的视觉测试,被用来展示IE9的先进之处。使用HTML5中新增的canvas特性,我们可以在网页中看到一个水族箱。网页中有一个FPS指示器,我们还可以随时改变鱼的数量。这项测试非常依赖于硬件加速,电脑配置越高效果就越好。上面的图表显示了当浏览器最大化后有50条、100条和250条鱼的帧数结果,越高越好。

Psychedelic Browsing(魔幻浏览)

http://ie.microsoft.com/testdrive/Performance/PsychedelicBrowsing/Default.html

我首先在Firefox里尝试……不过基本没有任何感觉。只有在使用IE9的时候,我才真正理解了“魔幻浏览”的意义,这再次赤果果地炫耀了IE9的硬件加速能力。正如FishIE Tank测试,结果以画面帧数记录,帧数越高越好。(译注:打开了硬件加速的Chrome 7.0.536.2 dev版也可以较流畅地跑完这项测试,在我机器上得分是1694分)

IE Beatz

http://ie.microsoft.com/testdrive/Graphics/IEBeatz/Default.xhtml

我之所以选择这项测试是因为它是互动的,并且使用了“GPU加速的HTML5图形”,Canvas,SVG,还需要27个音频元素。不过只有两个浏览器成功加载了音频文件,以至于我差点想放弃这项测试。但是我最后还是保留了它因为我觉得这强调了互动性和现代Web标准在面对真实应用环境中可能会产生的问题。此项测试记录了demo加载5分钟的帧数。(译注:在我机器上IE9始终无法加载那27个音频文件,不过打开了硬件加速的Chrome 7.0.536.2 dev版倒是可以正常工作,其FPS在30帧左右,IE9如果能正常浏览FPS应该能一直保持在60)

Canvas 缩放

http://ie.microsoft.com/testdrive/Graphics/DeepZoom/Default.html

我想说的是,这张照片一定是用非常昂贵的照相机拍摄的!如果你没有见过这样的全景照片Canvas测试,建议你马上去一睹为快,因为这实在是太壮观了。

一开始,我在考虑如何精确地处理测试结果。正如其他测试一样我先最大化浏览器窗口,然后单击底部的每一张照片,进行多次的放大和缩小操作。我用同样的方法记录了每个浏览器平均的帧数。这可能不是非常科学,但是我觉得这很符合真实的使用环境。

评分测试结论

纵观上文全部的图表,我们可以清楚地看到两点:

  1. 在使用HTML5的Canvas时,硬件加速获得了极大的回报。你只需要看看那个魔幻的测试网页就可以知道,IE9玩转你的GPU游刃有余。
  2. 比起IE8,IE9为了适应现代标准做出了巨大的改进,但是和其他浏览器相比仍有一定差距。

事情变得有趣起来。微软在IE9开发伊始就不断宣传其对现代标准的支持。事实上,它们的 Beauty of the Web 和 Test Drive 网站上也提供了许多例子、演示和小游戏。但是IE9在HTML5兼容性测试中却得到了最低的96分,这不仅让我怀疑微软提供的例子究竟有多大的普遍意义。

当然,推广自己公司的产品时适当偏袒也是可以理解的,但是像魔幻浏览和Canvas缩放这样的网页太具有针对性了(其他浏览器在这两个测试中的表现非常非常差劲)。这样的举动不禁会给人们一种错觉,即似乎只有IE9才是真正为HTML5准备的。

在这一方面,我很庆幸选择了第三方独立的基准测试工具,例如那个HTML5兼容性测试网站。如果仅仅看微软的Test Drive演示,你可能会被错误地灌输一种思想,认为最新版本的Internet Explorer涵盖了HTML5和其他现代标准的方方面面。

不幸的是,混淆视听的还不仅仅是这些。在Internet Explorer 9之前发布的五个“平台预览版”(Platform Preview)中,微软仅仅收集了他们自己的测试数据。这些结果可以在IE 测试中心看到。

看看“跨浏览器测试”(Cross-Browser Test Results)表格里HTML5的部分,IE9平台预览版仅有三个测试没有通过,如此通过率比列表中的其他浏览器高出许多。

既然这样,两个测试之间的矛盾之处不言自明。我当然不是在指责任何一方的统计数据,因为你也可以自己在IE9上测试HTML5网站。我只是认为在面对这样的比较结果时需要保持清醒。毕竟,HTML5兼容性网站和IE测试中心测试了HTML5中不同的方面。

优点和缺点

优点

  • 清晰的交互界面。
  • 单一输入框——地址栏、搜索栏、收藏夹和历史搜索整合到了一起。这个输入框还可以调整大小。
  • 标签页被移动到了顶部,紧靠地址栏。
  • 浏览器底部的状态栏消失了,取而代之的是一个低调的,仅当必要时才显示出来的通知信息栏。
  • 优秀的硬件加速功能,改进了图形、文本和图像在网页中的显示效果。
  • 对HTML5、CSS3和SVG更好的支持。
  • 标签页可以被拖离,并且可以固定到Windows 7任务栏中获得更多功能。
  • 打开新标签时会显示一个按活跃度排列的常用网站列表。你还可以重新打开之前关闭的标签,或者打开最后一次会话。浏览器崩溃时的恢复功能也很不错。

缺点

  • 没有任何警告就删除了Internet Explorer 8。
  • 一些网页无法加载,即使标记语言的语法无误。根据我的经验,这一般是一些利用HTML5的特定网站。
  • 标签栏和地址栏挤在一起,这让小屏幕的电脑情何以堪……
  • 重新启动电脑是安装过程的一部分,这只是一个小抱怨,在最终发布时可能会得到解决。
  • http://www.html5test.com/的测试中,IE9在五个浏览器中得分垫底。考虑到微软是如此不遗余力地宣传IE9对HTML5的支持,这样的表现并没有达到预期。
  • 标签栏和地址栏现在挤在一起,我喜欢这样的外观,但是我感觉这似乎在未来会妨碍到什么。(译注:完全不知道作者要说什么,原文:but I get the feeling that it may just get in the way further down the line)

总结

看来微软想让IE9达到的目标清晰而明确。他们想拥抱现代标准并且协助W3C这样的理事机构以增强标准的可操作性。IE9对于IE8是一次在HTML5、CSS3和SVG上的跨越性尝试。而且它也表现得像是Windows 7的好搭档,纵观新界面的变化,例如跳转列表,便印证了这一点。

评分测试也揭露了IE9和HTML5之间仍然存在的问题,但是硬件加速的进步确实值得人们竖起大拇指。虽然bug也不少,例如有些网页无法加载,人们也需要一些时间来熟悉新的界面布局,但是我们要记住这才是IE9的beta测试阶段,对于开发中产生的问题我们要给予宽容。因此,尽管有各种各样的缺点,我依然很高兴在IE9中测试了我的最新Web设计,我也很期待最终产品的问世。

我希望你能喜欢这篇对IE9 Beta的介绍,最好亲自试用一番,哪怕是仅仅在IE测试中心里玩玩吃豆人(PacMan)的小游戏!

原文:Internet Explorer 9 Beta: Reviewed and Benchmarked
作者:Carl Walker

发表于 作者 clippit | 221 评论
归档在:

制作中英文2in1的Windows 7安装盘

小弟这篇拙作放在这里总有点让人贻笑大方的不安啊~~不过还是贴出来了,就作为WAIK beta中新增的dism工具的一个抛砖引玉的介绍吧!

最终效果是:无论是从Windows系统启动安装程序还是通过光盘引导系统进入WinPE环境下的安装程序,Windows 7安装程序都能提供中英文的双语界面供选择,且安装结束后是中英文的双语操作系统。
这样做的方便之处就是免去了各位手动安装中文语言包啦~~当然目前官方的中文语言包还不是太完善,还有部分英文的地方。等Windows 7 RTM了以后可以依葫芦画瓢地制作正式版的中英双语Windows 7安装光盘。

首先说一下前期准备和一些约定:

  1. 下载Windows AIK Beta:http://download.microsoft.com/download/D/1/4/D14C40CA-CAED-4B49-B9CF-8B07D8BA344F/KB3AIK_EN.iso。下载完成后别忘了安装。本文为了方便叙述,约定为将WAIK安装到了C:\Windows AIK\中。
  2. 下载Windows 7 beta的简体中文语言包。本文为了方便叙述,约定为该语言包文件路径为F:\lp.cab。
  3. 用虚拟光驱加载Windows7的原始安装盘映像,将里面的全部文件复制到硬盘。本文为了方便叙述,约定为复制到了F:\win7\中。
  4. 下文将提及到一个操作:加载wim文件。本文为了方便叙述,约定为加载到C:\mount\中。请现在就将这个文件夹新建好

一、给Install.wim安装简体中文语言包

安装好WAIK以后在开始菜单的所有程序中找到“Microsoft Windows AIK→Deployment Tools Command Prompt”,在上面点右键选择“以管理员身份运行”,出来一个命令提示符窗口,我们的大部分工作就要在这里进行。

我们首先来给Install.wim动刀,给它安装上简体中文语言包,这里要提到WAIK的很厉害的一个功能。大家平常装语言包都是在Windows系统下安装的,但是WAIK可以不用安装目标系统就能给目标系统安装和卸载上各种功能包,当然这里面也包括语言包啦~~~这次的操作我们基本上就是用WAIK的一个命令——dism,它的意思就是Deployment Image Servicing and Management tool,总之是一个功能很强大的工具,融合了过去WAIK的多个工具的功能,使用更加方便。

我们先来看一下install.wim文件都包含了几个系统,在命令提示符窗口中输入:

dism /get-wiminfo /wimfile:f:\win7\sources\install.wim

出来结果(下文叙述中,一般都按照这样“输入命令、运行结果”的格式编排,相应说明文字不再赘述):

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Details for image : f:\win7\sources\install.wim

Index : 1
Name : Windows 7 HOMEBASIC
Description : Windows 7 HOMEBASIC
Size : 8,531,004,787 bytes

Index : 2
Name : Windows 7 HOMEPREMIUM
Description : Windows 7 HOMEPREMIUM
Size : 8,286,809,617 bytes

Index : 3
Name : Windows 7 BUSINESS
Description : Windows 7 BUSINESS
Size : 8,077,378,840 bytes

Index : 4
Name : Windows 7 ULTIMATE
Description : Windows 7 ULTIMATE
Size : 8,315,442,877 bytes

The operation completed successfully.


我们需要的是Windows 7 ULTIMATE,所以就加载Index 4的文件:

dism /mount-wim /wimfile:f:\win7\sources\install.wim /index:4 /mountdir:c:\mount

其中的“/mountdir:c:\mount”就是指定mount到哪个文件夹中,按照开始的约定,就是C:\mount。与过去不同,现在mount操作需要等待一段时间。

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Mounting image
[==========================100.0%==========================]
The operation completed successfully.


接着便可以安装简体中文语言包了。

dism /image:c:\mount /add-package /packagepath:"F:\lp.cab"

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0

Processing 1 of 1 - Adding package Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~x86~zh-CN~6.1.7000.0
[==========================100.0%==========================]
The operation completed successfully.


安装完成以后我们先保存对wim文件的修改。

DISM /Commit-Wim /MountDir:c:\mount

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Saving image
[==========================100.0%==========================]
The operation completed successfully.


这时候Windows7里面已经安装好了简体中文了,是不是很简单啊?不过我们为了实现真正的中英双语,还需要给安装程序做中英双语化的调整。我们需要用解压缩软件比如WinRAR打开lp.cab文件,在无数暴长的文件夹名称中找到setup文件夹,把它里面的sources文件夹解压缩到F:\win7中。还需要找到一个sources文件夹,同样把它解压缩到F:\win7中。
如果你嫌这一麻烦或者没有搞清楚怎么放文件夹结构的话,就依次执行下面的命令:

expand.exe -f:* F:\lp.cab F:\lpexpanded
xcopy F:\lpexpanded\sources\license\* F:\win7\sources\license\ /cherkyi
xcopy F:\lpexpanded\setup\sources\* F:\win7\sources /cherkyi

这一步完成以后我们继续。先检查一下install.wim当前的语言设置:

dism /image:c:\mount /get-intl

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0

Reporting offline international settings.

Default system UI language : en-US
System locale : en-US
Default time zone : Pacific Standard Time
User locale for default user : en-US
Location : 美国 (GEOID = 244)
Active keyboard(s) : 0409:00000409
Keyboard layered driver : 日语键盘(106/109 键)

安装的语言: en-US
  Type : Fully localized language.
安装的语言: zh-CN
  Type : Partially localized language, MUI type.
  Fallback Languages en-US

The operation completed successfully.


可以看到简体中文已经成功地安装进去了。接下来我们设置默认语言为简体中文:

dism /image:c:\mount /set-SKUIntlDefaults:zh-cn

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0


为以下对象设置 SKU 默认设置: zh-cn
The operation completed successfully.


完成后我们再来检查一下:

dism /image:c:\mount /get-intl

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0

Reporting offline international settings.

Default system UI language : zh-CN
The UI language fallback is : en-US
System locale : zh-CN
Default time zone : China Standard Time
User locale for default user : zh-CN
Location : 中国 (GEOID = 45)
Active keyboard(s) : 0804:00000804, 0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{F3BA9077-6C7E-11D4-97FA-0080C882687E}, 0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FCA121D2-8C6D-41FB-B2DE-A2AD110D4820}, 0804:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{54FC610E-6ABD-4685-9DDD-A130BDF1B170}, 0804:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{733B4D81-3BC3-4132-B91A-E9CDD5E2BFC9}, 0804:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{EF63706D-31C4-490E-9DBB-BD150ADC454B}
Keyboard layered driver : 日语键盘(106/109 键)

安装的语言: en-US
  Type : Fully localized language.
安装的语言: zh-CN
  Type : Partially localized language, MUI type.
  Fallback Languages en-US

The operation completed successfully.


可以看到果然修改过来了。接下来我们需要更新安装程序中的lang.ini文件:

dism /image:c:\mount /gen-langini /distribution:f:\win7 /set-allintl:zh-cn

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0


输入区域设置已设为: zh-cn
系统区域设置已设为: zh-cn
用户区域设置已设为: zh-cn
UI 语言已设为: zh-cn

已生成新的 Lang.ini 文件
The operation completed successfully.


对install.wim的处理就到这里结束,让我们最后保存修改并且卸载该文件。

dism /unmount-wim /mountdir:c:\mount /commit

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.

 

二、修改boot.wim文件使其支持中文

第一步做完以后,从Windows系统中运行安装程序已经能够做到中英文双语了。但是如果从光盘引导安装的话还是英文的,所以我们还需要对boot.wim做一番修改,使其支持中文。需要说明的是,当前中文版的Windows PE 3.0还没有出来,所以暂时还不能做中文版的Windows PE,不过中英双语版的安装程序还是可以的。

首先获取boot.wim的信息:

dism /get-wiminfo /wimfile:f:\win7\sources\boot.wim

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Details for image : f:\win7\sources\boot.wim

Index : 1
Name : Microsoft Windows PE (x86)
Description : Microsoft Windows PE (x86)
Size : 768,242,117 bytes

Index : 2
Name : Microsoft Windows Setup (x86)
Description : Microsoft Windows Setup (x86)
Size : 1,008,257,195 bytes

The operation completed successfully.


可以看到我们需要修改Index 2对应的文件。那就加载Index 2,想必大家应该熟悉了:

dism /mount-wim /wimfile:f:\win7\sources\boot.wim /index:2 /mountdir:c:\mount

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Mounting image
[==========================100.0%==========================]
The operation completed successfully.


接下来安装中文支持,所谓的中文支持就是让这个Windows PE能够正常显示出中文,说白了就是添加了一些字体文件。安装WAIK的时候已经附带了相应的中文支持包,还是使用离线安装:

dism /image:c:\mount /add-package /packagepath:"C:\Windows AIK\Tools\PETools\x86\WinPE_OCs\winpe-fontsupport-zh-cn.cab"

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Image Version: 6.1.7000.0

Processing 1 of 1 - Adding package WinPE-FontSupport-ZH-CN-Package~31bf3856ad364e35~x86~~6.1.7000.0
[==========================100.0%==========================]
The operation completed successfully.


下面还是需要解压缩那些安装程序的语言文件,大家可以安装上文相应的叙述如法炮制,不过现在的目标路径应该就是C:\mount\sources了。并且需要说明的是,此时我们运行的WinRAR必须采用管理员权限,也就是说要经过UAC权限提升。
由于简体中文版的Windows PE还没有出来,所以修改lang.ini文件这一步我们只能山寨一下了,尽管我们并不推荐手动更改lang.ini文件。首先在管理员权限下打开记事本(你可以右击记事本快捷方式选择以管理员身份运行,或者在那个管理员权限的cmd里面输入notepad后回车),打开C:\mount\sources\lang.ini文件,它里面应该是这样子:

 

[Available UI Languages]
en-US = 3

[Fallback Languages]
en-US = en-us

 

添加一句“zh-CN = 2”即可,修改后的文件变成这样:


[Available UI Languages]
en-US = 3
zh-CN = 2

[Fallback Languages]
en-US = en-us

 

修改好了以后对boot.wim的操作也算完成了,保存文件并卸载它:

dism /unmount-wim /mountdir:c:\mount /commit

Deployment Image Servicing and Management tool
Version: 6.1.7000.0

Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.

 

三、制作ISO文件

其实做完了前面两步,完全可以用Microsoft Deployment Toolkit 2010结合WDS来大规模地部署这个Windows 7的中英双语版了,不过这方面我也不太熟悉,也就不班门弄斧了哈~~还是说正题,适合热衷于DIY的玩家的制作ISO文件吧。WAIK里面有一个工具oscdimg可以用来生成ISO映像,但是貌似它只能用来做比较小的Windows PE的CD-ROM映像,反正怎么弄2G多的DVD映像我还没搞清楚,那么我们就使用第三方专门的ISO映像软件,例如UltraISO来制作ISO文件吧。

我们首先需要提取安装光盘中的引导文件。用UltraISO打开原版的Windows 7安装盘映像,然后选“启动→保存引导文件”得到一个4K的小文件。为了方便大家,我传上来了大家直接下载最后的附件即可,省得自己提取了。貌似WAIK的Tools下面有一个etfsboot.com文件,估计就是这个引导文件,具体是不是我也没有比对过。

然后选“文件→新建→UDF DVD映像”,然后选“启动→加载引导文件”,打开刚才的那个小文件即可。这时候我们可以看到光盘信息变成了“可启动 UDF”。然后在下方把F:\win7下面的所有文件拖动到上面,有必要的话可以改一个卷标。最后保存这个ISO文件即可。


到这一步就算全部完成啦~~大家可以刻盘,也可以在虚拟机里面测试。

发表于 作者 clippit | 637 评论
归档在:

Attachment(s): win7install.zip

也谈番茄花园的倒下,一分为二看番茄

原发表日期:2008-8-24。如果各位认为话题过于敏感不适合放在这里的话,烦请删除。

其实我开始这个话题的时候距离事件发生已经过去了三四天了。本来不想多说什么的,单以“活该”二字作结,但细细想来事情并非这么简单。自己也曾经是番茄花园的使用者,还是说两句罢。看到网上有很人把番茄花园痛批得不要不要的,说什么一点技术含量也没有,只配遭人唾弃等等。但是番茄花园就真的一无是处吗?都说看问题要一分为二,那我今天就一分为二地跟大家谈谈自己曾经使用番茄花园的一些感受。

最初知道番茄花园,是在微软刚发布SP2的时候。当时完全是因为它的名气,尝试了一下,发现的确还是不错的。番茄花园采用的是微软提供的Windows部署技术,本身技术上是完全公开的。不过在当时好像没有没有什么“部署解决方案加速器”,所以说实话,自定义一个Windows操作系统还是比较费事的。

也正是因为当时的我对系统的自定义再封装感到很大的兴趣,所以也自己尝试制作了一个Windows XP的安装盘,事实证明做这个东西的确很耗费精力。我仿照番茄花园的样式,集成了SP2更新包,自己加入了一些注册表的设置(也就是所谓的“优化”),做了无人值守脚本,自己加入需要的驱动程序,然后使用EasyBoot软件制作光盘启动界面,也加入了一些DOS工具。做完成以后还需要到虚拟机里面测试,无误后才刻盘。这其中我是经历了这方面知识的从无到有的过程,第一次做显然要比较痛苦一些。

其实我听说番茄花园系列Windows主要是一个叫做“大番茄”的人搞的。相信他一开始接触这个东西的时候也是充满了困难的,但是随着他不断地坚持做这个东西,也使得他积累的经验越来越多。接着又凭借着社区的支持,使得技术进一步透明化,相应的一些爱好者制作的第三方工具也多了起来,使得部署Windows更加容易了。我还相信,他一开始做这个东西的时候肯定不是想到要赚钱的(或许他想过以后可以用这个赚钱)。但是后来随着名气的增大,“赚钱”这样的想法就日益明确了。

其实包括番茄花园,还有深度,JUJUMAO,雨木林风等等,都是制作自定义操作系统的强大社区,他们有的做安装版,有的做Ghost版。不过我更加推崇安装版的,虽然Ghost版速度快,但是经常出现一些奇怪的问题~~扯远了。他们事实上对这方面技术在国内的普及都是有着重大的贡献的。如果不是这些自定版操作系统的流行,肯定不会有IT普及媒体对这方面技术和操作方法的讲解和宣传。让技术无国界,这是一个需要大家都来参与的过程。不过后来这些论坛大都关闭了注册,好像要相互比拼封装技术,或者是扩大自己的“市场”来赚更多钱,所以都不公开论坛了。

上面大多是谈到了番茄花园的正面。事实上,番茄花园的负面更大一些,这些负面也被很多人放大,以至于它变成了一个无恶不作的大魔鬼。我一开始接触番茄花园的时候,它里面是没有其他的软件的。但是后来,随着国内“流氓软件”开始大行其道,番茄花园里面捆绑了雅虎助手等等流氓软件,还有以“番茄”命名的一些自己的软件。捆绑流氓软件自然是为了赚钱,放进自己的软件一是给自己的网站带来更多流量,同时也是为了扩大“市场”做的“市场宣传”。单根本上还是为了获利。后来“流氓软件”大势已去,于是番茄花园又开始捆绑一些正规的软件了,比如快车,比如GreenBrowser。显然这样做会更能让大家接受一些,但是有一点可以肯定的是,捆绑这些软件同样能获利,要不然番茄花园肯定会放进市场占有率更大的同类型软件。

到后来,番茄花园虽然仍然在更新,但是由于之前的自定义设置已经做得很完善了,所以后来的更新无非是集成新的系统补丁,换一些图片而已,早已失去了真正“更新”的意义,就像BitComet只会更新界面一样。这时候番茄花园已经完成了从纯粹的技术产物到纯粹的商业产物的转变。番茄花园早已成为了那些核心人员的摇钱树,此时番茄花园的“市场”已经非常大了,渐渐就形成了一种恶性循环,或者从某种意义上来说是“良性循环”。

番茄花园是存在技术含量的,但是它的技术含量早已在一次次的“更新”中渐渐消逝,最后存在的只是一个“技术外壳”下蕴藏的无尽财富。所谓树大招风,番茄花园的倒下完全是合理合法的,所以我们大家没有必要再同情它了,但也不能磨灭了在一开始番茄尚处“纯洁”时对技术共享所做的贡献,也要感谢番茄花园对无数电脑新手提供的一条龙服务。

有人说这是微软想推广他们的Vista采取的一种商业措施,这也未尝没有道理。但是事实上,Vista的部署功能更加强大,而微软也专门提供了解决方案加速器,使得功能更强大了,使用起来虽然也很复杂,但是已经有了很大的转变。我在Vista测试时期也尝试制作了自定义版本的操作系统,感觉和当初自定义XP时完全不一样了。微软在为改进部署做着很大的努力。

事实上,如果是仅仅制作自定义版本的操作系统给大家分享就罢了,关键是他们提供了Key——这才是微软所针对的。有时候我在想,如果番茄花园仅仅提供这个安装包,但是不提供Key,而且不是免激活版的,你需要使用正版的Key来激活你的自定义操作系统。这样的话是否就是仅仅专注于技术,提供一种第三方的版本,微软也不会找你麻烦了呢(尽管许可协议中写了相类似的禁止条文)?或许那些想着钱的人不会这么干,所以也不会有这些事情罢。不过国外倒是有相类似的例子:刻录软件巨头Nero由于过于肥硕,因此有人出了Nero Lite,免费提供下载,但是你需要使用正版的序列号才能使用,Nero Lite的作者貌似活得好好的。

好了,我好像扯得有点远了。文首所说的“一分为二”我都表达完了。毕竟盗版终究是要自己付出代价的,这个时间可能是几个月,也可能是几年,所谓“出来混迟早要还的”,恐怕就是说的这个吧?不过,我怀念以前“纯洁”的番茄花园(虽然提供KEY这一点并不纯洁,我指的是非商业化),而痛惜如今完全变了味的商业化了的番茄花园。过去总是美好的,但是美好的过去只会换来堕落的如今吗?或许番茄花园自诞生之日起就注定了它的结局吧!

欲说还休,却道天凉好个秋……

发表于 作者 clippit | 577 评论
归档在:

推荐一个超好玩的网站——人立方关系搜索

 原发表日期:2008-7-31

人立方关系搜索是由微软亚洲研究院网络搜索与挖掘组研发的对象级别(object-level)互联网搜索引擎

说得比较玄哈!其实就是根据你所输入的关键词,找到和它关系最密切的词汇找出来。网站还提供一个Flash演示,通过关系图的方式来表示这些词汇。大家可以试试看搜索自己的姓名,体验一把被“人肉搜索”的感觉哈!更多古怪的关键词,还能得到很多让你喷饭的结果哦!

image

左上角的那些想必ITECN上的看了都会心一笑吧?不过,诸如舒马赫和贝克汉姆完全是胡扯……

人立方关系搜索从超过十亿的中文网页中自动的抽取出人名、地名、机构名以及中文短语,并且通过算法自动的计算出它们之间存在关系的可能性;同时,人立方关系搜索还索引了支持它们之间关系的网页文字。此外,人立方关系搜索还自动的找出人名之间最可能的关系描述词、与人名最可能相关的称呼、作品等词条等。 人立方关系搜索从这些中文网页中自动的辨别出人名所对应的人物简介文字,并且按照这些文字是人物简介的可能性进行排序。

当用户给定任意搜索关键词,它能够找出与关键词最可能相关的人名、地名和机构名,并且根据它们与关键词之间的相关度排序。除此之外,人立方关系搜索还提供基于人名的新闻浏览功能,可视化关系搜索功能等。

地址:http://renlifang.msra.cn/index.aspx

发表于 作者 clippit | 1449 评论

多图超强评测!江苏省普通高中信息技术学业水平测试考试系统做得烂死了!

原发表日期:2008-3-23。谨以此文唤起全社会对中小学信息技术教学的重视。

今天我去参加了江苏省普通高中信息技术学业水平测试,作为一个考生,我想谈谈自己对这次考试和之前下发下来的练习系统的看法。
本文主要内容包括:单机版考试系统简单评测、单机版考试系统题库破解方法、我对我抽中的一条CSS代码题的讨论。

按照时间顺序,先说那个练习系统。我们本来通知是需要的同学购买光盘的,定价很黑,要20元/张。真不知道考试院的那伙坐办公室的领导们脑子里面是怎么想的?! 学生的钱赚得容易还是怎么着?反正我是非常BS的。还好后来没有再说买光盘的事情,学校的网站提供了下载。下面我对这个考试练习系统的做一番简单的评测。

我下载下来看看,安装程序有173MB,装完以后还要一个微软的SOAP工具包。安装的时候向system32写了挺多东西的,不知道都是些什么。也正因为这些还有其他的一些程序设计上的问题,这个考试练习系统和我家笔记本上的Vista系统不兼容。不过这也到可以理解,毕竟整个江苏省还没有哪个学校高级到电脑室装Vista的。于是我把它装到了台式机的XP系统中去。

装好以后我打开那个练习系统,可以看出它的完成度还是比较高的,虽然在UI设计方面还存在一些瑕疵(后话:今天我考试的时候发现UI稍有改进,但是瑕疵依然存在,这也体现了软件公司的不严谨)。当然我不能要求这个考试系统的UI设计能和知名公司(比如eico design)相比了,能看得下去我就知足矣!

由于我们学的是网络技术应用,所以我就选择了一份相应的试卷进入。所有的题目都放在一张大页面中,这倒无所谓了,但是字号仅有9pt就实在让人看不过去了吧?如果字号能大一点就好多了。这里面的题目我到是没有什么好说的。不过有一道操作题实在是让我喷饭了,那就是修改IP地址的题目。点击前面的那个图标以后,就出现了模拟Windows2000的桌面的画面,在这个画面中,只有“网上邻居”可以使用右键点击,出来的菜单只有“属性”点击后有效,点了以后又出来一个图片,这时只有“本地连接”点右键有反应,而菜单里还是只有“属性”点了有反应。最后又跳出一个图片,鼠标放在“属性”按钮上居然还会变成手型……彻底无语……点了这个按钮后终于出来一个像点样子的对话框,可惜那也是伪造的,和系统里面的根本不一样……到此,我已经被该软件公司的设计才能所打动得热泪盈眶,五体投地,欲罢不能……

做完题目后,点击交卷。在单机版里可以立即查到自己的分数,还可以看正确答案,这点倒是值得肯定的。

试用完后,我打开了考试系统的安装目录一探究竟。默认安装目录是C:\ksExcise\,这里面的ksData才是真正的核心。这个单机版估计就是把服务端和客户端放到一起,做了一点限制而已。经过初步的勘测,发现考生做完的题目经过rar打包后放在UpExam目录下,估计真正考试的时候这个rar就是要传上去的。而operation文件夹下存放着考试需要的素材文件。

C:\ksExcise\ksData下,散布着各种文件,其中很多是exe。奇怪的是,这些程序有的是用Visual Basic写的,有些是用Delphi写的,令我感觉十分凌乱。其中最大的exe文件,是一个叫examsystem.exe的。我打开它看了一看,里面的位图资源果然证实了我之前的猜想——那个设置IP地址的题目是如此的粗制滥造……

下面我想说的是考试系统中最重要的环节,也是最应该保密的环节,那就是试题的内容。但是让我感到十分遗憾的是,单机版中的试题加密措施实在是太小儿科了,简单到连我这样的菜鸟都能破解的地步。下面我就来说一说我的破解方法。

C:\ksExcise\ksData下,有一个名为button2的文件,它便是试题数据库核心文件。当然,简单一点的加密措施也是有的。如果想直接得到解密的数据库文件,那么只需要登陆进考试,然后在C:\Documents and Settings\[用户名]\Local Settings\Temp\[计算机名称]\考试数据\文件夹下,就可以看到解密了的button2文件,把它拷贝出来即可(当然不复制也没关系,因为这个程序在退出的时候并不会删除自己产生的临时文件)。当然这需要打开考试系统到登陆界面。

根据我的猜想,真正的考试环境下,服务器端也应该有这样的一个button2文件的。这就为考题的泄密创造了“良好的条件”。事实上,就算不适用客户端,也可以直接对加密过的button2文件进行处理,因为我刚才说过,这个文件的加密措施实在是太小儿科了。说白了,就是修改了文件头部,我们只需要把它修改回来就可以了。用16进制编辑器打开button2文件,可以看到文件头部是这样的:

Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 7A 67 40 23 77 51 3F 48 4E 4B 59 49 5E 4A 1F 12
00000010 60 67 66 25 5F 26 2A 2A 9E 43 7D 62 1A 6F 82 76
00000020 CD 8C 39 54 6A 15 2B B1 00 9F EA 99 C5 B9 15 E0
00000030 27 9C C7 1A 97 F2 B2 9D 19 BF A4 E0 F7 64 A5 AC
00000040 96 64 8B 4C F4 37 0B B8 B3 D9 C9 E1 13 C0 17 06
00000050 C0 4D 12 0E 65 50 84 CB 81 94 75 48 39 69 B8 18
00000060 CF 33 12 9D 39 78 EA 0A 22 0C 85 FA 57 B4 7B 13
00000070 E2 9B 53 54 64 E1 A1 53 A9 4C 74 B8 86 D0 F3 42
00000080 C5 44 E2 3A 79 62 F8 C4 E4 48 93 FF 7D A1 06 82
00000090 5C 33 52 CB C3 07 49 F9 2A 06 7A 66 74 0D 14 00

把偏移量从00000000到0000009F这段修改成下面的这样:

Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
00000010 20 44 42 00 01 00 00 00 B5 6E 03 62 60 09 C2 55
00000020 E9 A9 67 72 40 3F 00 9C 7E 9F 90 FF 85 9A 31 C5
00000030 79 BA ED 30 BC DF CC 9D 63 D9 E4 C3 D3 41 FB 8A
00000040 BC 4E A0 61 8A 37 71 DE F3 FA ED C4 4D E6 3D 2C
00000050 EB 60 6C 0E 1F 36 C4 E8 A5 B1 2B 6E 13 43 93 35
00000060 B1 33 68 FB 79 5B CE 2F 7C 2A AF D0 7C 99 05 13
00000070 98 FD 13 77 40 C4 FF 75 83 66 5F 95 F8 D0 89 24
00000080 85 67 C6 1F 27 44 D2 EE CF 65 ED FF 07 C7 46 A1
00000090 78 16 0C ED E9 2D 62 D4 54 06 00 00 34 2E 30 00

修改好以后保存,然后把文件的扩展名修改成.mdb。这样就可以直接使用Access打开了。你肯定已经想到了,题目数据库其实就是Access数据库,只是把文件头部修改了一下,让Access无法直接打开而已。用Access打开数据库文件后,如果看到了要求输入数据库密码的对话框,那么你离成功已经很近了。因为Access数据库文件的密码仅仅是一个口令而已,不包含任何的类似CRC32校验之类的东西,所以破解起来非常方便。事实上,密码就是zfpoweraddmz。输入密码后就可以成功打开数据库了。这里面,External表里面是选择题,Operate表里面是操作题。表里面带字母“T”的字段是纯文本的,而实际上真正考试系统里面显示出的文字是不带字母“T”的字段中的RTF富文本。External表中,Answer字段便是正确答案。另外一个名为operatings的表是操作题的关键步骤判定依据。好了,我现在说了这么多,相信大家都已经了解了。我知道这些内容对这次的考试冲击太大,所以也不想造成太大的影响。

下面说说我今天考试的一些感受。

今天考试,我RP不好,抽到了一条CSS代码题,还有一条超级无敌超纲的Access操作题。虽然Access操作题对我来说不在话下,但是那条CSS代码提真的让我有些摸不找头脑。考试之前,我们还进行了所谓的“考前辅导”。根据后来考试的内容,估计是这些老师已经知道了考试的内容了,所以讲的也挺有“针对性”的。不知道他们通过什么样的途径知道题目的?难道也是我上面说的方法?呵呵~~~我记得“考前辅导”的时候,有位老师说,如果考试的时候让你把CSS插在<body>区,就放在<body>区,不要放到<head>下面去。所以我就记得很清楚。

那道CSS题的具体内容我记不大清楚了,有三个要求。第一个要求是在<body>区插入CSS样式,具体的内容我记不大清楚了,反正有link、vlink、text-decoration、font-family等一些属性。以前我们老师教的都是在<head></head>下面弄CSS的,就是<style type="text/css">CSS内容</style>这样的模式。因为有刚才那个“考前辅导”,我就在<body>下面写了<style type="text/css">CSS内容</style>。但是事实上,这样写是完全错误的,而Frontpage也能看出这个错误,会自动地把这块CSS挪动到<head></head>里面去(顺便BS下大纲,微软早就让Frontpage退役而使用新产品Microsoft Expression Web Designer了,但是我们考试永远不能与时俱进)。但是我当时也没有多想,直到我提前交完卷骑车回家的时候才对那位辅导老师说的话产生了严重的怀疑。回家用Dreamweaver做了下实验,<body>下出现<style>完全是无效的。这时我对这一问重新审视,估计要在<body>标签里面做文章。我记得题目里面<body>标签里面本来就有一些属性,但是题目里面要求加入的样式既包含元素属性又包含样式。我想这道题是不是应该把link、vlink等作为元素属性直接加入,然后再用“style="text-decoration: underline;font-family:宋体"”这样的写法把样式加入到<body>标签里面。最后的标签就形如这样:

<body link="#000000" vlink="#000000" alink="#000000" leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" style="text-decoration: underline; font-family:宋体" >

第二问是要求把一个字幕的字体和颜色修改成隶书和红色。这道题又是十分BT的。字体修改倒是没什么,立竿见影。但是颜色修改就没有那么容易了。选择“红色”以后死活都不见红色,真是气人。到代码里面一看,原来这个字幕文件还被一个style所控制。到<head>再去看看,原来这个名为“style2”的样式里面就已经规定了颜色,要在这里把代码修改成“#FF0000”才能把那文字改成红色啊!第三问是修改网页标题,很简单,略过。

由于我只是学生,所以不可能拿到这个考试系统的服务端和客户端程序,只能在使用的过程中做一点浅析评测。这个考试系统和那个单机版的基本上一样,只不过拥有了考生信息的数据库。考试程序的界面也是一样的,很粗糙,不过也算实用。考试的时候,我偷偷看了一下,在C:\Documents and Settings\[用户名]\Local Settings\Temp\[计算机名称]\考试数据\文件夹下,同样有button2文件。这说明真正的考试系统也是采用的差不多的加密题目的方法——我不禁冒了一身冷汗,这考试系统居然是如此不严谨和不完善,如果被别有用心的人利用了,那将是多严重的后果啊!

最后作一个总结,仅代表我个人——一个参加考试的学生的观点。虽然考试的形式很正规,但是作为考试的重要部分——考试的程序却做得实在不怎么样,或者说得偏激一点,很烂很烂。在这里补充一点,我听说,我们市某学校的某考场,有人在做改IP地址的题目时,误改本机IP地址,造成系统错误,电脑强行收取所有人的试卷,所以他们要重考一次。这再一次证明了这个考试系统的不完善。试想,在程序运行的时候,禁止修改本机的真实IP真的很难做到吗?作为一个省级的考试系统,做成这样,实在是让人怀疑考试院的人都是吃什么饭的!好了,评测结束。

发表于 作者 clippit | 322 评论

自定义 Office 2007 安装程序

原发表日期:2008.02.01

 今天花一点时间讲一讲自定义Office 2007的安装程序,虽然时效性已经不是很强了哈!

首先告诉大家一个命令行参数,在命令提示符下进入Office 2007的安装程序所在的目录,比如我用的是虚拟光驱H:,那就是输入“H:”就可以了。然后输入“setup /admin”,就可以开启官方的自定义工具。但是我却不推荐大家直接使用它,因为这个工具主要是为了给企业大规模部署的时候用的,个人用户如果想做一些简单自动化的工作完全没有必要用它。当然,它的功能十分强大,做一些高级的功能还是很有用的。

其实所谓的自定义,无非就是一些自动化的工作。我们在这里以Enterprise版的Office 2007为例简单说一说。如果你的安装程序是放在光盘里面,或者是个镜像文件,当然要先把他们全部复制到硬盘里面,比如E:\OFFICE\。进入安装程序所在的目录,找到一个叫做“Enterprise.WW”的文件夹,里面有一个config.xml文件,用编辑器打开它。事实上我们所要做的大部分工作就是修改这个文件。

当前状态下,config文件并没有包含实质性的内容,虽然你可以看到很多字符,但是都是被注释掉的,但是它们可以作为你的模板。

<Configuration Product="Enterprise">

   <!-- <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="no" /> -->

   <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Enterprise Setup(*).txt" /> -->

   <!-- <PIDKEY Value="BCDFGHJKMPQRTVWXY2346789B" /> -->

   <!-- <USERNAME Value="Customer" /> -->

   <!-- <COMPANYNAME Value="MyCompany" /> -->

   <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->

   <!-- <LIS CACHEACTION="CacheOnly" /> -->

   <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->

   <!-- <DistributionPoint Location="\\server\share\Office12" /> -->

   <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->

   <!-- <Setting Id="Reboot" Value="IfNeeded" /> -->

   <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

下面我把我修改了以后的文件发上来:

<Configuration Product="Enterprise">

   <Display Level="full" CompletionNotice="yes" SuppressModal="no" AcceptEula="yes" />

   <!-- <Logging Type="standard" Path="%temp%" Template="Microsoft Office Enterprise Setup(*).txt" /> -->

   <PIDKEY Value="CTVX96394RT2D3QMTR3X8BDQ5" />

   <USERNAME Value="Clippit" />

   <COMPANYNAME Value="Clippit Studio" />

   <!-- <INSTALLLOCATION Value="%programfiles%\Microsoft Office" /> -->

   <LIS CACHEACTION="RemoveCacheOnly" />

   <!-- <SOURCELIST Value="\\server1\share\Office12;\\server2\share\Office12" /> -->

   <!-- <DistributionPoint Location="\\server\share\Office12" /> -->

   <!-- <OptionState Id="OptionID" State="absent" Children="force" /> -->

   <!-- <Setting Id="Reboot" Value="IfNeeded" /> -->

   <!-- <Command Path="msiexec.exe" Args="/i \\server\share\my.msi" QuietArg="/q" ChainPosition="after" Execute="install" /> -->

</Configuration>

可以看到,我修改了几个小地方,下面一一说明:

▲ 首先,如果你需要做这些自定义的话,就必须把注释的标记去掉,在这里,就是“<!-- ”和“ -->”,去掉之后它们才能真正有效。

▲ 然后来看“AcceptEula="yes"”,这个很简单,把原来的no改成了yes,这样安装的时候就自动同意许可文件了。

▲ “<PIDKEY Value="CTVX96394RT2D3QMTR3X8BDQ5" />”这一行,就是序列号了,把自己的序列号替换掉原来的“BCDFGHJKMPQRTVWXY2346789B”(其实就是个模板,告诉你有25个字符,不用加“-”)。这里的这个序列号是我乱打的,各位就不要去尝试了^_^。我之所以选择Enterprise就是因为它安装之后不需要激活可以使用了。

▲ “<USERNAME Value="Clippit" />”这一行,输入的是你的用户名,安装完成后会出现在关于对话框中。注意!!这里千万不能填写中文!否则安装程序会初始化错误!!

▲ “<COMPANYNAME Value="Clippit Studio" />”,这里填写的是公司名,一样不能填写中文,否则也会初始化错误的。

▲ “<LIS CACHEACTION="RemoveCacheOnly" />”这一行,我需要多说几句。这个选项是设置本地安装源(Local Installation Source,LIS)的。本地安装源这个功能大概是在Office 2003中才有的,当时在安装完Office后,你可以选择是保留它还是删除它。保留本地安装源的话,在以后安装某些Office功能、安装更新等等的时候,就不需要访问原始安装源了;但是本地安装源会占用部分磁盘空间。到了Office 2007,本地安装源的功能还是大同小异,不同的是,安装程序并不提供删除本地安装源的选项。事实上,在Office 2007中,本地安装源被设置为不允许随意删除,哪怕是在系统的磁盘清理工具中也看不到它的身影。如果你安装完了Office 2007,你会看到在C盘下(也有可能是其它盘)看到一个名叫MSOCache的隐藏文件夹,占用了700多MB的空间。网上很多的文章都说,把这一行改成像我那样就可以不产生本地安装源了。事实上,大错特错!CACHEACTION这个参数可以设置成两个值,分别是CacheOnlyRemoveCacheOnly。如果设置成CacheOnly,那么安装程序就会只复制本地安装源到用户的计算机而不安装Office软件;如果设置为RemoveCacheOnly,那么安装程序就会删除复制到用户计算机上的本地安装源,但是前提是Office软件没有被安装。这个功能看似没有作用,其实在大规模部署的时候用处还是很大的,管理员可以先把安装程序统一向用户的计算机上做本地安装源,然后再从本地安装源上进行安装,可以节省不少时间和精力。因此,这个选项对于安装Office 2007来说,是没有任何作用的。不管怎么样,安装程序都会生成本地安装源。当然,如果你不打算以后再安装各种功能和更新,并且的原始安装源(比如光盘)都可以保存地很好的话,你就可以手动把生成的MSOCache隐藏文件夹删掉。

弄好config.xml文件以后,就可以保存了,下面我来简单地说一下如何把最近发布的Office 2007 SP1集成到安装程序中。

细心的朋友可能会发现在安装程序中有一个Updates文件夹,打开这个文件夹,里面有一个readme.txt文件,这个文件里面只有一句话:“Any patches placed in this folder will be applied during initial install.”翻译过来就是:任何放在这个文件夹下的补丁都会在最初安装时被应用。也就是说,如果我们把SP1的补丁放到这个里面来,在安装的时候就会自动打上补丁了。但是我们下载回来的SP1补丁是一个exe文件,是不符合要求的,所以我们还需要做一些工作。

用命令提示符转到我们下载了SP1补丁的文件夹,在本例中为E:\Downloads\,然后输入下面的命令:office2007sp1-kb936982-fullfile-zh-cn.exe /extract:E:\OFFICE\Updates\。其中office2007sp1-kb936982-fullfile-zh-cn.exe便是我们下载回来的SP1补丁,而E:\OFFICE\就是我们的安装程序所在的文件夹。回车以后,接受许可协议,然后便开始解开文件了。解开后我们可以到updates文件夹下看一看,有好几个.msp文件,这就是使用了Windows Installer技术的补丁文件。这样以来,以后在安装Office的时候,就可以自动打上SP1补丁了。

最后,还有一些高级的应用,比如自动安装上某些ADD-IN,还有自己定制要安装的组件,这些就需要用到官方的自定义工具了。以后如果有时间在和大家谈一谈具体的应用。

发表于 作者 clippit | 2399 评论
归档在:

“方正字体案”的幕后黑手

本文已发表于《电脑爱好者》杂志2007年第17期,严禁随意转载

话说CFan的编辑可真是会包装文章啊!此文的完成时间是今年的3月24日,但是居然到了9月上的杂志上面才看到,自己也很意外的说~~不过话说回来,能把这篇文章和前段时间的“方正字体案”如此生硬地联系到一起的,恐怕只有这位伟大的编辑了!难道说他是未卜先知这条新闻,于是把这篇文章搁置了半年?那可是太神奇了……文章被修改的地方还不少,在这里附上杂志文(用DC拍的,没拿扫描仪,嫌麻烦)和本人的原始文章。

点击此处查看清晰原图!

image

原始稿(部分图片点击放大):

说到字体,想必大家都不陌生。到网上下载自己中意的字体,安装,使用,欣赏……一切都是那么简单。其实与我们天天打交道的字体还有些不为人所知的秘密。众所周知,微软在Vista中为中文设计了一种全新的字体,叫做“微软雅黑”。它看上去和我们早已习惯了的宋体是那样的不同。为什么雅黑看上去比宋体美观和易读呢?这就要引出一段字体的佳话了……

◆衬线?非衬线?

在字体中,衬线(Serif)就是指字形笔画末端的装饰细节部分。宋体是一种典型的衬线字体,而微软雅黑则是一种无衬线字体(Sans-serif)。从图1中可以看到,上面一行的宋体字中被灰色标注的地方就是衬线字体的衬线。

1


衬线的起源,据传是源自古罗马的石刻拉丁字母。古人在石刻时,先用画笔将字母轮廓标注在石头上,然后刻字人依照痕迹进行刻画形成了衬线。如今,衬线字体成了传统印刷的正文字体,而非衬线字体多用于标题文字,来吸引读者注意。
由于计算机屏幕的分辨率远小于印刷分辨率,简单明了的非衬线字体变成了屏幕显示的最佳选择。像Windows XP中的Tahoma和Vista中的Segoe UI字体,都是很美观的非衬线字体。然而,在中文Windows系统内,却一直是使用着宋体这一衬线字体。这样一来,原本笔画复杂的汉字再加上各种衬线,就会变得十分臃肿,阅读起来就显得比较吃力了。微软终于认识到了这一问题,为Vista专门开发了微软雅黑作为UI字体。这样,微软雅黑一经推出便吸引了大家的注意,因为它的可读性比宋体强了不少。

◆等宽?比例?

顾名思义,等宽字体(non-proportional typeface 或 fixed-width typeface 或 monospaced typeface)就是每个字符的宽度都是相等的。而比例字体(proportional typeface)就是按照自然字符的比例确定宽度。宋体,即是等宽字体,而微软雅黑是比例字体。很显然,等宽字体每一个字符的宽度都相等,这样便会使“字符画”的创作(如图2)变得更加方便。

2

同时,编程人员也肯定十分钟爱等宽字体,因为这样会使写出来的代码十分整齐,可读性强。但是普通的文本阅读就和阅读代码大不一样了,符合字符本身的自然比例的比例字体成了我们的首选。通过图3可以看到,比例字体中的英文字母“i”“r”“l”是明显比其他字符窄的,而等宽字体就是清一色的相同宽度。因此,微软雅黑作为比例字体,其比例调整技术能够较为智能地调整字符的比例和间距,在阅读文章方面要比使用宋体更加舒适,但是遇到编程时,这种字体一定会让程序员看得很不爽。

3

◆不清晰?清晰?

经典的宋体,在当显示字号为9pt(也就是我们平常所说的小五号)时,会采用点阵的方式显示而非矢量显示。这样虽然可以保证不让过多的衬线影响字体的清晰度,但是由此字体的美观性大幅度下降。而当字号小于9pt时,宋体的表现可谓“惨不忍睹”(如图4)。

ClearType技术的出现使得这一现象稍有改观。ClearType是微软为LCD显示器专门开发的一种字体抗锯齿技术。这种技术通过模仿CRT显示器的“三原色”显示方法,将任意三个连续的RGB栅条当成一个像素来显示,从而实现了比像素更小的显示精度。在图5中可以看到,放大后的字符可以清楚地看到各种彩色的像素点。正是这种关键的技术,让字符也拥有了抗锯齿的显示效果。

5


然而,宋体并非原生支持ClearType的字体,因此该项创造性的技术在宋体上的表现并不明显。但是微软雅黑就不同了,这种字体采用了ClearType技术来制作。不像宋体那样为了显示效果而不得不嵌入各种版本的点阵字体,微软雅黑是一种完完全全的矢量字体。在关闭了ClearType的操作系统上显示的微软雅黑是很丑陋的,但是当打开这项功能时,显示效果有了惊人的飞跃(如图6)。

通过上面的介绍,大家应该都知道了吧,微软雅黑之所以和宋体看上去的感觉不一样,就是缘于它是非衬线、比例、ClearType的字体。据说微软为了制作这种字体,每一个汉字都花费了100多美元呢!既然这样,那我们就更应该珍惜使用这种美观易读的字体啦~~

发表于 作者 clippit | 146 评论

来点小聪明!软件限制策略……

大家肯定都知道Windows里面的软件限制策略吧?可以通过路径、Hash值来限制某些程序不能运行。当然大家也肯定知道我今天这篇文章绝对不可能说这个事情^_^今天我要变一点小魔术,耍一点小聪明。XP是通过“技术”的手段来限制的,我今天要通过“心理”的手段来,当然也是需要那么一点点“技术”的~~嘿嘿

我的目标就是:把原来的程序exe文件替换掉!让它无法运行!听上去可能很简单哦~~但是要让别人不起疑心、不去重装软件就困难了吧?所以我们要通过“骗人”的方法……

首先当然要创建一个仿冒的exe。大家不用去搬庞大的VS了,用一个小巧而强大的脚本软件AutoIt就足够也,安装程序就区区几M而已。比如说,我家的电脑让某人霸占玩QQ游戏,怎么办呢?我可以打开记事本写下下面的话:

MsgBox(16,"QQ游戏管理团队致歉","尊敬的QQ游戏用户:" & @CRLF & @CRLF & "  非常感谢您关注我们的QQ游戏。但我们不得不遗憾地告诉" & @CRLF & "您,目前QQ游戏主服务器发生严重技术故障,导致您不能进行" & @CRLF & "游戏。对给您造成的不便,我们深感歉意。目前我们的工程师" & @CRLF & "正在全力抢修服务器。由于这次故障发生突然,情况严重,所" & @CRLF & "以修复过程会比较长,敬请用户耐心等待。何时恢复正常请另" & @CRLF & "行等待通知。QQ游戏管理团队向用户承诺,事后将给与用户一" & @CRLF & "定的补偿措施。具体实施方案正在商讨中。我们再次对此表示" & @CRLF & "深深的歉意!" & @CRLF & @CRLF & "                 QQ棋牌游戏团队 敬上" & @CRLF & "                 2007年8月12日")

把它保存成.au3的文件,双击以后就可以看到效果了!

1

这样就强占了用户的心理,一般人都不会去过问了,直接关掉就去干其它事情了……

当然,我们还需要一点手脚,防止穿帮:D比如我们要整的那位还没有连上网就打开了QQ游戏怎么办啊?所以我们需要加入一个判断了~修改以后就成了这样:

$var = Ping("220.181.37.4",500)
If $var Then
    MsgBox(16,"QQ游戏管理团队致歉","尊敬的QQ游戏用户:" & @CRLF & @CRLF & "  非常感谢您关注我们的QQ游戏。但我们不得不遗憾地告诉" & @CRLF & "您,目前QQ游戏主服务器发生严重技术故障,导致您不能进行" & @CRLF & "游戏。对给您造成的不便,我们深感歉意。目前我们的工程师" & @CRLF & "正在全力抢修服务器。由于这次故障发生突然,情况严重,所" & @CRLF & "以修复过程会比较长,敬请用户耐心等待。何时恢复正常请另" & @CRLF & "行等待通知。QQ游戏管理团队向用户承诺,事后将给与用户一" & @CRLF & "定的补偿措施。具体实施方案正在商讨中。我们再次对此表示" & @CRLF & "深深的歉意!" & @CRLF & @CRLF & "                 QQ棋牌游戏团队 敬上" & @CRLF & "                 2007年8月12日")
Else
    Msgbox(0,"QQ游戏错误","没有网络连接。错误码为: " & @error)
EndIf

先ping一下220.181.37.4这个地址,如果超时500ms就报错,如果连上了就骗人~~呵呵……这个IP是百度的IP,他不是宣称是中国最快的网站吗?那我们就利用一下它吧!

最后把这个脚本编译成exe文件(AutoIt就是好在这里,不像vbs之类的不能编译成exe)。当然这时候文件的图标就不一样了,快捷方式一看就看出来了。这时候我们可以修改快捷方式的图标,或者直接把QQ游戏主程序的图标提取出来附到这里。随后我们把QQ游戏主程序文件QQGame.exe改名字或者是删掉(有点残忍),然后把“李鬼”放到这里来……一切OK~就等着受害人被骗,然后心情沮丧地离开吧!哈哈……

当然,我们可以举一反三嘛!具体怎么耍人家就要看你的智慧了。知道什么叫“社会工程学”吗?就是这种勾当……

发表于 作者 clippit | 720 评论

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

自从网页浏览器诞生之日起,各公司间的竞争、各“派别”拥护者之间的争吵,就从未停止过。直至今日,包括Internet Explorer、Firefox、Safari、Opera、Maxthon等各式各样的网页浏览器在市场上争奇斗艳,好不热闹。当然这其中也少不了恶意垄断、枪手炒作、网友争论等等。
事实上,还有很多人对浏览器的一些特性还不甚了解,所以就会有诸如“MT再好也只是一个壳”“有本事像FF那样自己弄内核去”“FF比IE的安全性高多了”这样的言论。起初,我对这些也不甚了解,也不愿参与这些争论。后来我慢慢地接触到了一些关于浏览器的东西,不敢独享,整理出来以FAQ的形式和大家分享,希望能提高大家对网页浏览器这种软件的认知度。

※本文文本为大眼夹原创,其中部分资料来自于wikipedia(避河蟹,用全角^_^)等网络媒体。我不是枪手,我力争保持自己的言论的中立性。

Q1:经常听人家说什么浏览器“内核”和“外壳”,它们都是什么意思?
A1:“内核”只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。
而浏览器的“外壳”便很好理解了,它是一个面向用户的界面,也就是网页浏览器为我们实现的各种功能。

Q2:浏览器的内核有哪些?
A2:事实上,有很多种(废话!),但是常见的有Trident、Gecko、WebCore、Presto等。

Q3:Trident是什么内核?
A3: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等。

Q4:Gecko是什么内核?
A4:Gecko是套开放源代码的、以C++编写的网页排版引擎。这软件原本是由网景通讯公司开发的,现在则由Mozilla基金会维护。
由于Gecko是开源的,所以使用Gecko的网页浏览器也很多,其中的领军人物便是Mozilla Firefox。此外还有AOL for Mac OS X、Camino、Epiphany、Flock、Galeon、Netscape Browser (v.8)、Sleipnir、Maxthon等。

Q5:WebCore是什么内核?
A5:WebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎“KHTML”的基础上而来的。苹果电脑于2002年采纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本源代码。后来发表了开放源代码的WebCore及WebKit引擎,它们均是KHTML的衍生产品。使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等。

Q6:Presto是什么内核?
Q6:Presto是一个由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。此外,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。

Q7:(强烈推荐)浏览器的内核和外壳有什么联系?
A7:刚才已经说到,内核负责处理网页的内容,而外壳负责提供给用户一些功能。外壳的某些功能是需要联系到内核的,比如保存网页上的图片;而有些功能是不需要经过内核的,比如前进后退功能(当然,在载入了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不可能掌握到关键技术。

Q8:各种内核哪一个更好一点呢?
A8:哪一个更好,这个问题的确很难回答,应该说是各有侧重点。Trident内核使用最多,因此很多网页甚至只兼容Trident内核,而导致使用Gecko时会出现各种各样的问题。但是Trident也是最“乱”的一个内核。而Gecko、WebCore、Presto则更符合各种国际标准,显得更加“严谨”。

Q9:各种内核都有些什么不同呢?
A9:这个问题,在wikipedia上有非常详细的说明。现把相关链接列表如下:

Q10:有没有什么组织对排版引擎做测试的呢?就像杀毒软件界的VB100%那样?
A10:还真有这么一个组织,它叫做网页标准计划小组(Web Standards Project)。他们推出了一个综合测试的网页,取名为Acid。由于现在的是第二版,所以又叫Acid2。
该测试页透过严谨的编码,可快速辨认网页排版的漏洞,而测试要求是排版引擎需能排出如下图中的笑脸,在测试刚推出时,没有一个浏览器可排出要求的图像。

目前能够完全显示出正确图形的浏览器有:Safari 2.0.3、Konqueror 3.5、Opera 9、Mozilla Firefox 3.0 Alpha、iCab、Prince 5.1等。下面列出了其他未通过浏览器的表现(图片属于Public Domain)


↑Acid2在IE6下的表现

 
↑Acid2在IE7下的表现

 
↑Acid2在FireFox1.5和2.0版本下的表现


↑Acid2在Netscape7.2下的表现

如果大家有兴趣,也可以去测试测试。Acid2的测试网址在:http://www.webstandards.org/files/acid2/test.html。具体的测试技术详解在:http://www.webstandards.org/action/acid2/guide/

通过前面10个问题的解答,相信大家已经对网页浏览器的内核和外壳,特别是内核,有了更深的了解。我同时希望各位今后在讨论问题的时候少一点激进,多一点文明,少一点无赖,多一点睿智。

发表于 作者 clippit | 1212 评论

好易购,真的很好吗?

从今年年初开始,我们江苏电视台里就新增了一个新的节目叫好易购,每天从早到晚都有播出,可谓是轰炸式地播放了。节目的内容很单一,就是纯粹的电视购物。在有限的时间里,播出一款商品,价格往往宣称“超低于市场价”,备货数量往往都很少,让大家打电话来订购。单从节目内容来看,所销售的商品的可信度还是很高的,总比以前“广告时间越长,商品问题越大”的一些垃圾产品好很多,有些也是来自世界名牌。而且好易购还提供售后服务保障。总地看来,这种新形式的电视购物方式,比以往先进了不少。这当然值得肯定。
但是,好易购中的商品真的非常“超值”吗?我的心里一直有一点疑问。暑期来临,IT产品的暑促又迎来了高峰,好易购中也多了很多电脑、手机之类的商品。我好歹对这些还是略知一二的,所以就很认真地看过了节目,果然发现不少问题。

在这里我仅以一款商品为例,它是2007年7月15日晚上的“十时精选”中所推荐的“SONY酷睿二代双核笔记本”(电视中的商品名称即如此)。先说说总体印象,和它一贯的风格类似,有劲爆的背景音乐,Model疯狂的爱抚商品,主持人几近声嘶力竭的极具鼓动性演说,我想这些是很好地抓住了观众的心理,让他们在晚上十点多钟的时候还能肾上腺素分泌剧增,然后拨打他们的电话。
节目中,仅仅是提到了SONY的酷睿二代双核笔记本,并没有提及它的具体型号。而具体的配置还是写得比较清楚的。可以看到他们的噱头有:迅驰四代、8400M独显、Vista操作系统等等,价格是¥9988。

主持人说:在20多年前,这个标记(手指着笔记本上的SONY牌子)是一种光荣,在20多年后,它仍然代表着一种尊贵。SONY能体现一个人的品位,如果一个商务人士能使用这样一款SONY的笔记本,是一种无限的荣耀。
大眼夹评:听到这些,我觉得这个主持人像是把ThinkPad一棍子打死了,想必小黑的众多FANS听到主持人说SONY无比的商务尊贵会很气愤把?

主持人指着笔记本上内置的摄像头说:看到没有!这里有一个内置的摄像头!让我们的摄像师傅给我们打一个招呼!看到了没有!一个内置摄像头!我再来给大家看一下!(使用了一下Vista里面的3D窗口切换,并且不断地按方向键让窗口滚动)看到了没有!这就是索尼,这就是Vista给我们带来的3D体验!
大眼夹评:其实,如今的笔记本上有内置摄像头的已经比较普遍了,不算为奇啊~~~再说Flip 3D的功能,主持人居然把头功给了索尼,二等功才给Vista(如果我没有听错的话,的确是这样的)——这个好像有点过分了。我家的电脑上没有一个索尼的配件,为什么也能开十几个窗口来回换呢?

主持人拿出了一块板子,说要给我们看一看同类产品的价格。这款板子上印刷的是另外一款笔记本的参数和报价的网页截图,从截图上来看,是新浪商城的报价。主持人指着显卡的型号说:一样的显卡,都是GeForce Go 8400M G,比我们的8400M GT还要差,但是这款笔记本的价格是多少?!看这里,1xxxxx元!然而今天在好易购,相同配置的笔记本,只要您9988元!
大眼夹评:具体的价格记不得了,反正在15000以上就是了。由于摄像师没有拍这个笔记本的牌子和型号,所以我也没有去新浪商城去找。但是,我注意到了这个笔记本的其他参数:CPU是T7300(SONY的那个是T7100),内存是2GB(SONY的那个是1GB),硬盘是160GB(索尼的那个是100GB)……除了显卡以外的所有参数几乎都要比所销售的SONY高,价格很高那是自然的嘛……但是主持人明显使用了一个障眼法,来突出自己的索尼笔记本是多么超值。

主持人说:目前,Vista的家庭高级版的售价是2000多元,我们就算他2000块钱,一个GeForce Go 8400M GT的显卡也要2000块钱,这两个已经超过了4000元,但是今天在好易购,我们只卖您9988元!
大眼夹评:没错,家庭高级版的Vista的零售价格的确是2100元,但是相比之下COME版(COEM版是包装简单的正版软件,打个不太恰当的比方,就相当于软件的工包产品)的家庭高级版就只要758元了,价格下降了很多。而且像笔记本中预装的Vista,那是属于OEM版本,价格还可以压得更低,我估计500块以下完全有可能。而那个8400M GT的显卡要卖2000块钱,我完全不相信。

主持人的鼓动性话语,让不少观众觉得这里的笔记本真的非常超值,而且还是索尼的牌子,好易购真是太好了!然而我却不这么认为。后来,我到中关村查询了一下,很快就找到了这款笔记本的具体型号,是索尼VGN-FZ15http://detail.zol.com.cn/notebook/index110746.shtml)。中关村的报价更是让我大跌眼镜,最便宜的只卖8789元,最贵的也不过10987!

剩下的我不想再说什么了,索尼的笔记本的确很不错,但是商家的虚假宣传,却让我对好易购充满了失望。

发表于 作者 clippit | 1524 评论
归档在:

修U盘手札

同学给了我一个U盘,据说是坏掉了。其实她之前已经把这个U盘给了别人看了下,那人说,删掉了N个病毒,然后就没有下文了……我想,既然是病毒,而且同学说U盘里面的文件她也不要了,那么这就是很好办的事儿啦!于是我爽快地接下任务。

回到家,插上U盘,系统能够正常识别,但是打开我的电脑,居然多出了一个光驱的盘符!尝试打开U盘和这个光驱,都以失败告终……看来事情远远不如中了病毒那样简单……我对修理U盘这类事情也不甚了解,于是上网好好了解了一番。果然,这世界上还有一些好用的U盘修复软件。于是我下载了几个回来试试,有Mformat、PortFree Production Program等等,但是它们都不识这个U盘。

我一个一个地尝试各种程序,尝试到一个制作USB启动盘的软件的时候,终于出现了转机,它能够正常地格式化这个U盘!格式化了以后,我发现U盘的容量居然是400多MB——这难道是一个512M的U盘?!但是塑料壳子上面明明写的是128M的啊!真是奇怪……不管那么多了,我复制了一个文件到U盘,居然成功了!看来这个死马还真的被我医活了!可谁知道,很快,一盆冷水就浇在了我的头上——当我把U盘再次插入USB,发现那个文件还在,但是文件的大小已经变成0了,更严重的是,无法删除。看来U盘还是有问题啊!头疼ing...

没办法,我只好按图索骥,注意到U盘第一次插上去的时候安装驱动,出现了“清华普天”四个字,看来这就是U盘的牌子了(这年头叫“清华”的公司还真不少^_^)。来到它的官方网站,内容还算可以,好歹每个产品都有个图片。我找啊,终于找到那个U盘:


就着这样的!于是来到下载中心,下载了它的软件。压缩包里面有一个98驱动,一个帮助,还有一个叫做iFormat的软件。安装它,居然还要重新启动!7456……耐着性子重启后,运行程序,谁知道界面闪了一下子就没有了!查看任务管理器,这个进程还在!天哪……这是个什么软件……一气之下我把它卸载了。看来这块U盘还真不简单啊!我现在有点后悔当初信誓旦旦地向女生接下这个光荣的任务了~~~~

回来看到我下载的文件名,叫做“ICREATE 5062”,这是个什么东东?上网一查,原来iCreate是台湾一个半导体公司,原来这个ICREATE 5062就是这块U盘的主控芯片啊!通过进一步地了解,我发现了一种叫做“量产工具”的程序,它是由生产主控芯片的公司向U盘的制造商提供的用来批量设置U盘为初始状态的一种软件。当然,internet的威力是无穷的,这种内部的软件在网上简直就是满天飞:D 于是下载回来5062的量产工具,但是它并不识别这个U盘!真是奇怪……再后来,我又看到说U盘不工作时灯常亮的是另外一个厂家叫Sonix的主控方案,而这个U盘正好符合这一点,于是又去找Sonix的量产工具,但是它还是不识别!

My God~~~彻底无望了——苍天哪!!你为什么交给我这样一个U盘啊!!!我把U盘拿在手里,这种破东西,质量真差,塑料壳子居然就是对半地合上去的!我干脆把壳子卸了(对不起了,我的同学,真的是它质量差,不是我力气大……)。看看,上面元件也不多嘛!最大的一个是现代的闪存颗粒,还有一个黑黑的应该就是主控芯片了吧!让我仔细看看,它居然不是iCreate,也不是Sonix,而是另外一家叫做“ALCOR”的!!郁闷死我了……根据具体的型号:AU9384,再次寻找量产工具,下载,安装,运行——真是山重水复疑无路,柳暗花明又一村啊!它居然识别出来了!于是我赶紧按下“Low Level Format”按钮,完成以后再高级格式化——这一回是真的成功了!

原来,这种主控的U盘本身就有一盘双分区的功能。原先那个不可识别的CDROM里面有了文件,是一个给U盘加密的小程序,也就几百KB。这让我想到了前段时间趋势出来的那个"维C片",就是把U盘分成了可移动磁盘和光盘的,光盘里面就是趋势的杀毒软件,这些文件都是不能删掉的。而且电脑爱好者杂志还搞过一次挑战活动,就是把普通的U盘变成两个分区,最终的答案居然是在U盘里面放一个虚拟光驱的软件自动加载来实现这样的功能。。。。。我觉得这样并不是最好的,因为这只能在Windows环境下有效,但如果是"原生"的双分区的话,甚至还能实现使用U盘来通过CD-ROM启动系统!这样老主板不支持U盘启动的也可以用U盘来启动了!

如今的U盘,功能真是层出不穷啊!正当我高兴时,拔下U盘再插上去准备复制几个文件试试看的时候,我再次万念俱灰了——U盘又打不开了。。。。。。然后我又尝试了几次量产工具,还是一会儿正常一会儿不正常——天哪~~这个U盘真的已经到了耄耊之年,不可救也!估计,这U盘来源于某个山寨厂吧,不坏那是不正常……

如今我也没有辙了,再优秀的医生,也是不可能把死人救活的!再说现在U盘这么便宜,叫她再去买一个新的应该不为过吧……

发表于 作者 clippit | 785 评论
归档在:,

我的ITECN分巢筑成典礼

Clippy-letter承蒙盆盆同志的关爱,肩负振兴中华的使命
我,三尺微命,一介书生
带着理想和希望,来到了高手如云的ITECN
望着各位大大迈过的脚印,心中充满了无限敬仰
那么,就让我这只学飞的小鸟
背上行囊,上路吧!

 今天,我的ITECN分巢就算筑成了,我希望日后能够不断地给它添砖加瓦,和各位技术高手一起交流,增加本人的学飞完成百分比……最后,与各位一副不算工整对联:

求生存,谋发展,创千秋大业
同富裕,共繁荣,立万世丰碑

PS:打字的时候,不争气的拼音输入法把“望着各位大大迈过的脚印”识别成了“望着各位大大卖国的脚印”~~~千万不要砸我啊…………

发表于 作者 clippit | 819 评论