Posts published during June, 2009

虚拟机的前世今生

上节我们提到了 LISP 中, 因为 eval 的原因, 发展出了运行时环境这样一个概念。基于这个概念,日后发展出了虚拟机技术。但这段历史并不是平铺直叙的,实际上,这里面还经历了一个非常漫长而曲折的过程, 说起来也是非常有意思的。 这一节我们就着重解释虚拟机的历史。

我们 21 世纪的程序员,凡要是懂一点编程技术的,基本上都知道虚拟机字节码这样两个重要的概念。 所谓的字节码 (bytecode),是一种非常类似于机器码的指令格式。这种指令格式是以二进制字节为单位定义的(不会有一个指令只用到一个字节的前四位),所以叫做字节码。所谓的虚拟机,就是说不是一台真的计算机,而是一个环境,其他程序能在这个环境中运行,而不是在真的机器上运行。现在主流高级语言如 Java, Python, PHP, C#,编译后的代码都是以字节码的形式存在的, 这些字节码程序, 最后都是在虚拟机上运行的。

1. 虚拟机的安全性和跨平台性

虚拟机的好处大家都知道,最容易想到的是安全性和跨平台性。安全性是因为现在可执行程序被放在虚拟机环境中运行,虚拟机可以随时对程序的危险行为,比如缓冲区溢出,数组访问过界等等进行控制。跨平台性是因为只要不同平台上都装上了支持同一个字节码标准的虚拟机,程序就可以在不同的平台上不加修改而运行,因为虚拟机架构在各种不同的平台之上,用虚拟机把下层平台间的差异性给抹平了。我们最熟悉的例子就是 Java 了。Java 语言号称 一次编写,到处运行(Write Once, Run Anywhere),就是因为各个平台上的 Java 虚拟机都统一支持 Java 字节码,所以用户感觉不到虚拟机下层平台的差异。

虚拟机是个好东西,但是它的出现,不是完全由安全性和跨平台性驱使的。

2. 跨平台需求的出现

我们知道,在计算机还是锁在机房里面的昂贵的庞然大物的时候,系统软件都是硬件厂商附送的东西(是比尔盖茨这一代人的出现,才有了和硬件产业分庭抗礼的软件产业),一个系统程序员可能一辈子只和一个产品线的计算机打交道,压根没有跨平台的需求。应用程序员更加不要说了,因为计算机很稀有,写程序都是为某一台计算机专门写的,所以一段时间可能只和一台庞然大物打交道,更加不要说什么跨平台了。 真的有跨平台需求,是从微型计算机开始真的普及开始的。因为只有计算机普及了,各种平台都被广泛采用了,相互又不互相兼容软件,才会有软件跨平台的需求。微机普及的历史,比 PC 普及的历史要早10年,而这段历史,正好和 UNIX 发展史是并行重叠的。

熟悉 UNIX 发展史的读者都知道, UNIX 真正普及开来,是因为其全部都用 C,一个当时绝对能够称为跨平台的语言重写了一次。又因为美国大学和科研机构之间的开源共享文化,C 版本的 UNIX 出生没多久,就迅速从原始的 PDP-11 实现,移植到了 DEC,Intel 等平台上,产生了无数衍生版本。随着跨平台的 UNIX 的普及, 微型计算机也更多的普及开来,因为只需要掌握基本的 UNIX 知识,就可以顺利操作微型计算机了。所以,微机和 UNIX 这两样东西都在 1970年 到 1980 年在美国政府,大学,科研机构,公司,金融机构等各种信息化前沿部门间真正的普及开来了。这些历史都是人所共知耳熟能详的。

既然 UNIX 是跨平台的,那么,UNIX 上的语言也应当是跨平台的 (注: 本节所有的故事都和 Windows 无关,因为 Windows 本身就不是一个跨平台的操作系统)。UNIX 上的主打语言 C 的跨平台性,一般是以各平台厂商提供编译器的方式实现的,而最终编译生成的可执行程序,其实不是跨平台的。所以,跨平台是源代码级别的跨平台,而不是可执行程序层面的。 而除了标准了 C 语言外,UNIX 上有一派生机勃勃的跨平台语言,就是脚本语言。(注:脚本语言和普通的编程语言相比,在能完成的任务上并没有什么的巨大差异。脚本语言往往是针对特定类型的问题提出的,语法更加简单,功能更加高层,常常几百行C语言要做的事情,几行简单的脚本就能完成

3. 解释和执行

脚本语言美妙的地方在于,它们的源代码本身就是可执行程序,所以在两个层面上都是跨平台的。不难看出,脚本语言既要能被直接执行,又要跨平台的话,就必然要有一个“东西”,横亘在语言源代码和平台之间,往上,在源代码层面,分析源代码的语法,结构和逻辑,也就是所谓的“解释”;往下,要隐藏平台差异,使得源代码中的逻辑,能在具体的平台上以正确的方式执行,也就是所谓的“执行”。

虽说我们知道一定要这么一个东西,能够对上“解释”,对下“执行”,但是 “解释” 和 “执行” 两个模块毕竟是相互独立的,因此就很自然的会出现两个流派:把解释和执行设计到一起把解释和执行单独分开来 这样两个设计思路,需要读者注意的是,现在这两个都是跨平台的,安全的设计,而在后者中字节码作为了解释和执行之间的沟通桥梁,前者并没有字节码作为桥梁。

4. 解释和执行在一起的方案

我们先说前者,前者的优点是设计简单,不需要搞什么字节码规范,所以 UNIX 上早期的脚本语言,都是采用前者的设计方法。 我们以 UNIX 上大名鼎鼎的 AWK 和 Perl 两个脚本语言的解释器为例说明。 AWK 和 Perl 都是 UNIX 上极为常用的,图灵完全的语言,其中 AWK, 在任何 UNIX 系统中都是作为标准配置的,甚至入选 IEEE POSIX 标准,是入选 IEEE POSIX 卢浮宫的唯一同类语言品牌,其地位绝对不是 UNIX 下其他脚本语言能够比的。这两个语言是怎么实现解释和运行的呢? 我从 AWK 的标准实现中摘一段代码您一看就清楚了:

int main(int argc, char *argv[]) {
  ...
  syminit();
  compile_time = 1;
  yyparse();
  ...
    if (errorflag == 0) {
      compile_time = 0;
      run(winner);
    }
  ...
}

其中, run 的原型是
run(Node *a)   /* execution of parse tree starts here */

winner 的定义是:
Node    *winner ;    /* root of parse tree */

熟悉 Yacc 的读者应该能够立即看出, AWK 调用了 Yacc 解析源代码,生成了一棵语法树。按照 winner 的定义, winner 是这棵语法树的根节点。 在“解释”没有任何错误之后,AWK 就转入了“执行” (compile_time 变成了 0),将 run 作用到这棵语法树的根节点上。 不难想像,这个 run 函数的逻辑是递归的(事实上也是),在语法树上,从根依次往下,执行每个节点的子节点,然后收集结果。是的,这就是整个 AWK 的基本逻辑: 对于一段源代码, 先用解释器(这里awk 用了 Yacc 解释器),生成一棵语法树,然后,从树的根节点开始,往下用 run 这个函数,遇山开山,遇水搭桥,一路递归下去,最后把整个语法树遍历完,程序就执行完毕了。(这里附送一个小八卦,抽象语法树这个概念是 LISP 先提出的,因为 LISP 是最早像 AWK 这样做的,LISP 实在是属于开天辟地的作品!)Perl 的源代码也是类似的逻辑解释执行的,我就不一一举例了。

5. 三大缺点

现在我们看看这个方法的优缺点。 优点是显而易见的,因为通过抽象语法树在两个模块之间通信,避免了设计复杂的字节码规范,设计简单。但是缺点也非常明显。最核心的缺点就是性能差,需要资源多,具体来说,就是如下三个缺点。

缺点1因为解释和运行放在了一起,每次运行都需要经过解释这个过程。假如我们有一个脚本,写好了就不修改了,只需要重复的运行,那么在一般应用下尚可以忍受每次零点几秒的重复冗余的解释过程,在高性能的场合就不能适用了。

缺点2因为运行是采用递归的方式的,效率会比较低。 我们都知道,因为递归涉及到栈操作和状态保存和恢复等,代价通常比较高,所以能不用递归就不用递归。在高性能的场合使用递归去执行语法树,不值得。

缺点3,因为一切程序的起点都是源代码,而抽象语法树不能作为通用的结构在机器之间互传,所以不得不在所有的机器上都布置一个解释+运行的模块。 在资源充裕的系统上布置一个这样的系统没什么,可在资源受限的系统上就要慎重了,比如嵌入式系统上。 鉴于有些语言本身语法结构复杂,布置一个解释模块的代价是非常高昂的。本来一个递归执行模块就很吃资源了,再加一个解释器,嵌入式系统就没法做了。所以,这种设计在嵌入式系统上是行不通的。

当然,还有一些其他的小缺点,比如有程序员不喜欢开放源代码,但这种设计中,一切都从源代码开始,要发布可执行程序,就等于发布源代码,所以不愿意公布源代码的商业公司很不喜欢这些语言等等。但是上面的三个缺点,是最致命的,这三个缺点,决定了有些场合,就是不能用这种设计。

6. 分开解释和执行

前面的三个主要缺点,恰好全部被第二个设计所克服了。在第二种设计中, 我们可以只解释一次语法结构,生成一个结构更加简单紧凑的字节码文件。这样,以后每次要运行脚本的时候, 只需要把字节码文件送给一个简单的解释字节码的模块就行了。因为字节码比源程序要简单多了,所以解释字节码的模块比原来解释源程序的模块要小很多;同时,脱离了语法树,我们完全可以用更加高性能的方式设计运行时,避免递归遍历语法树这种低效的执行方式;同时,在嵌入式系统上,我们可以只部署运行时,不部署编译器。 这三个解决方案,预示了在运行次数远大于编译次数的场合,或在性能要求高的场合,或在嵌入式系统里,想要跨平台和安全性,就非得用第二种设计,也就是字节码+虚拟机的设计。

讲到了这里,相信对 Java, 对 PHP 或者对 Tcl 历史稍微了解的读者都会一拍脑袋顿悟了: 原来这些牛逼的虚拟机都不是天才拍脑袋想出来的,而是被需求和现实给召唤出来的啊!

我们先以 Java 为例,说说在嵌入式场合的应用。Java 语言原本叫 Oak 语言,最初不是为桌面和服务器应用开发的,而是为机顶盒开发的。SUN 最初开发 Java 的唯一目的,就是为了参加机顶盒项目的竞标。嵌入式系统的资源受限程度不必细说了,自然不会允许上面放一个解释器和一个运行时。所以,不管Java 语言如何,Java 虚拟机设计得直白无比,简单无比,手机上,智能卡上都能放上一个 Java 运行时(当然是精简版本的)。 这就是字节码和虚拟机的威力了。

SUN 无心插柳,等到互联网兴起的时候, Java 正好对绘图支持非常好,在 Flash 一统江湖之前,凭借跨平台性能,以 Applet 的名义一举走红。然后,又因为这种设计先天性的能克服性能问题,在性能上大作文章,凭借 JIT 技术,充分发挥上面说到的优点2,再加上安全性,一举拿下了企业服务器市场的半壁江山,这都是后话了。

再说 PHP。PHP 的历史就包含了从第一种设计转化到第二种设计以用来优化运行时性能的历史。 PHP 是一般用来生成服务器网页的脚本语言。一个大站点上的PHP脚本, 一旦写好了,每天能访问千百万次,所以,如果全靠每次都解释,每次都递归执行,性能上是必然要打折扣的。 所以,从 1999年的 PHP4 开始, Zend 引擎就横空出世,专门管加速解释后的 PHP 脚本, 而对应的 PHP 解释引擎,就开始将 PHP 解释成字节码,以支持这种一次解释,多次运行的框架。 在此之前, PHP 和 Perl, 还有 cgi, 还算平分秋色的样子,基本上服务器上三类网页的数量都差不多,三者语法也很类似,但是到了 PHP4 出现之后,其他两个基于第一种设计方案的页面就慢慢消逝了, 全部让位给 PHP。 你读的我的这个 WordPress 博客,也是基于 PHP 技术的,底层也是 Zend 引擎的。 著名的 LAMP 里面的那个 P, 原始上也是 PHP,而这个词真的火起来,也是 99年 PHP4 出现之后的事情。

第二种设计的优点正好满足了实际需求的事情,其实不胜枚举。比如说 在 Lua 和 Tcl 等宿主语言上也都表现的淋漓尽致。像这样的小型语言,本来就是让运行时为了嵌入其他语言的,所以运行时越小越好,自然的,就走了和嵌入式系统一样的设计道路。

7. 结语

其实第二种设计也不是铁板一块,里面也有很多流派,各派有很多优缺点,也有很多细致的考量,下一节,如果不出意外,我将介绍我最喜欢的一个内容: 下一代虚拟机:寄存器还是栈。

说了这么多,最后就是一句话,有时候我们看上去觉得一种设计好像是天外飞仙,横空出世,其实其后都有现实,需求等等的诸多考量。虚拟机技术就是这样,在各种需求的引导下,逐渐的演化成了现在的样子。

[养成习惯了, 每过段时间就推荐几本读过的书]
这次回国,蒙博文视点的周筠老师安排,在敏感词日,和博文的两位编辑徐定翔,许莹,还有微软亚研院的邹欣老师一起吃次饭(还有未鹏Tiny, Solrex, 刘江)。 当天晚上在霍炬婚礼上,邹欣老师托未鹏送给我一本他写的《移山之道》。在此要狠狠的谢谢邹欣老师。

一般我对微软开发路线上的书是不怎么感冒的,不过这本书的前言就非常吸引人,所以我拿起来就没放下,当天乘地铁的时候看,等飞机的时候看, 在飞机上也一直看。 这是一本非常引人入胜的技术书。虽然我对微软的技术和内部规约不太熟悉,但书中说的敏捷开发的那些规约和规范,还是让我深有共鸣的。

这本书最大的特点是那些有趣的小故事和对话,虽然都是杜撰,实际中原型可不少。 就像我前段时间在《读品选择标准》中说的, 这些一手的小故事,和精心提炼的对话,都是富矿,是具有非常高的挖掘价值的,各种水平的开发人员都能从这些小故事中,学到很多东西。当然我自己的团队项目开发的经验还是太少了,现在也就只对一小部分的故事有深刻同感。 对了,这本书中的漫画和人物设计也很有意思,我几乎都能在周围的人中找到了漫画人物的原型。

另一本书是最近淘到的,叫做 《China Road》, 是 NPR 中国记者 Rob Gifford 写的。 此人在中国 6 年,说一口流利的普通话。08年背起一个大背包,通过从上海,到新疆的 312 国道上的所见所闻,写成了一本书。作者认为, 312 国道就像 美国的 66 号公路一样,是中国大道,沿线风土人情最能反映当下中国的情况。书中关于天朝各处的人物,思想都有记述。我想,若干年后,此书必然成为西方记者观察天朝的经典,因为就连我这样的天朝人,看了之后都觉得作者见识思考高度深度都让人佩服。

我研究了一下,前一本书封面上的道,和后一本书每一张开头的道,是同一个字体,所以,我就把他们都叫做 “关于道的书”。 前一本书值得推荐给每一个雄心壮志实践敏捷方法的软件开发团队,后一本书推荐给对天朝未来走向感兴趣的知识青年。

106 comments

订婚了

这次不是愚人节新闻了,是真的。

前些日子在国内,让女友见了父母,父母非常高兴,也非常同意。

今天下午以倒时差为借口逛珠宝店,看到钻戒一枚,特漂亮,遂买之,趁着今天 6 月 6 日这个吉祥的日子,向女友求婚,得到了她的同意, 算是订婚成功 :)

遇到她,我很高兴,很幸福。

所有华文链接都成了死链接了。 其实这篇演讲有深度有内容, 对于认识伊拉克战争后美国和伊斯兰世界的关系很有启发。以下内容均来自 http://www.america.gov/st/peacesec-chinese/2009/June/20090604121534eaifas0.4368097.html (好像要穿墙)

奥巴马总统在埃及开罗大学讲话全文

美国总统巴拉克·奥巴马6月4日在埃及开罗大学发表讲话,阐明美国致力于寻求与穆斯林国家关系的新开端。以下是讲话文字记录中译文,由美国国际信息局(IIP)翻译。

—————–

(讲话文字记录开始)

白宫新闻秘书办公室

(埃及开罗)

2009年6月4日

奥巴马总统谈新的开端

(Remarks by the President on A New Beginning)

埃及开罗大学

Cairo University)

200964

当地时间下午110

奥巴马总统:非常感谢你们。下午好。我荣幸地来到永恒的开罗古城,荣幸地受到两所著名学府的邀请。爱资哈尔(Al-Azhar)一千多年来一直是一座伊斯兰 学术的灯塔,开罗大学(Cairo University)一百多年来一直是埃及发展的源泉。你们并肩而立,象征着传统与进步的和谐共进。我对你们的盛情邀请,对埃及人民的盛情邀请表示感 谢。我也自豪地带来美国人民的友好情谊,带来我国穆斯林民众的平安问候: “Assalaamu alaykum.”(”愿你平安。”)

我 们相聚在美国和穆斯林世界之间关系十分紧张的时期──这种紧张关系的历史根源远远超出了当前的任何政策辩论。伊斯兰教与西方世界之间的关系史既包括好几个 世纪的共存与合作,也包括冲突和宗教战争。在近代,剥夺众多穆斯林权利和机会的殖民主义,以及穆斯林占主体的国家往往被视为傀儡、对其自身意愿鲜有顾及的 冷战,加剧了这种紧张。此外,现代化和全球化带来的巨大变化致使很多穆斯林将西方视为伊斯兰传统的敌人。

暴力极端主义分子利用这种 紧张关系煽动穆斯林世界为数不多但很有影响的少数派。9.11袭击事件以及这些极端主义分子不断对平民百姓采用暴力的行径使得我们国家中的一些人认为,伊斯兰教注定不仅与美国和西方国家,而且与人权为敌。所有这一切导致滋生出更多的恐惧,更多的不信任。

只要我们之间的关系定位于我们的分歧,我们就会让那些播种仇恨而不是和平,宣扬冲突而不是合作的人得势,而合作会帮助将正义与繁荣带给所有人。我们必须打破这种怀疑与不和的恶性循环。

我来到这里是要在美国和穆斯林世界之间寻求一种以共同利益和相互尊重为基点的新开端──基于美国和伊斯兰教并不相互排斥、不必相互竞争的真情。不仅如此,它们相互重合,拥有一些共同原则──公正与进步的原则;容忍与全人类都有尊严的原则。

我 认识到,变化不会发生于一夜之间。一次讲话不可能排除多年来的不信任,我也不可能在我有限的时间里回答迄今摆到我们面前的所有复杂问题。但是我深信,为了 向前推进,我们必须公开说出内心深处的话,但我们往往关起门来才说这些话。这必须成为相互倾听、相互学习、相互尊重并寻求共同之处的持久努力。《古兰经》(Holy Koran)教诲我们:”明记真主,永吐真言。”这就是我将在今天努力做到的──尽最大努力说实话,兢兢业业面对使命,坚信我们同为人类的共同利益远比给 我们造成隔阂的力量强大得多。

这种信念一部分来源于我个人的经历。我是基督教徒。我父亲来自肯尼亚一个数代穆斯林家庭。我小时候在印度尼西亚生活过几年,听到过宣礼塔在破晓和日落时刻的召唤。我年轻时在芝加哥的社区工作,那里有很多人从他们的穆斯林信仰中找到了尊严与安宁。

作为一个研读历史的人,我还知道伊斯兰教对文明的重大贡献。正是伊斯兰教──在爱资哈尔这样的地方──让学术之光照亮了一个又一个世纪,为欧洲的文艺复兴和 启蒙运动铺平了道路。穆斯林群体不断创新,发明了代数学;磁性罗盘仪和导航工具;掌握了书写与印刷术;使我们了解了疾病的传播与治疗方式。伊斯兰文化为我 们创造了雄伟的拱顶和高耸的尖塔;永恒的诗篇和美妙的音乐;遒劲的书法和瞑思静想之所。纵观历史,伊斯兰教以言词和行动揭示了宗教容忍与种族平等的可能。

我也知道,伊斯兰教一直是美国历程的一个组成部分。第一个承认我的国家的是摩洛哥。我国第二任总统约翰·亚当斯(John Adams)在1796年签署《的黎波里条约》(Treaty of Tripoli)时写道,”美国自身对穆斯林的法律、宗教或安宁绝无任何敌意”。 自我国建国以来,美国穆斯林使美国丰富多姿。他们为国作战,担任公职,为民权奋斗,创办企业,在高等院校任教,在体育场上出类拔萃,赢得诺贝尔奖,建造我 国最高建筑,点燃奥林匹克火炬。当第一位当选国会议员的美国穆斯林在宣誓捍卫我国宪法时,他手抚的是来自我国建国先父之一──托马斯·杰斐逊 (Thomas Jefferson)──私人图书馆藏书中的那本《古兰经》。

因此,在来到伊斯兰教的最初降示之地以前,我已经在三大洲了解了伊斯兰教。这段经历使我确信不疑,美国和伊斯兰教的伙伴关系必须基于真实的伊斯兰教,而不是那些不实之词。身为美国总统,我认为我的职责之一是随时驳斥对伊斯兰教的消极成见。

然 而,同样的原则也必须适用于穆斯林对美国的态度。就像穆斯林不是一个模子里刻出来的一样,美国也不能被用妄自尊大的帝国模子定型。美国是世界历来所知的最 伟大的发展源泉之一。我的国家是在反抗一个帝国的斗争中诞生的。我们的建国理念是人人平等。几个世纪以来,我们不惜流血奋斗,实现那些话的含义──在我国 国内,以及在世界各地。我们受到来自地球四面八方的各种文化的影响,但笃信一个简单的理念:合众为一(E pluribus unum)。

对 一个名叫巴拉克·侯赛因·奥巴马的非洲裔美国人能够当选美国总统这一点已经议论繁多。但我的个人经历并不是那么独特。虽然人人都有机会的这个理想还没有在 美国每一个人身上实现,但对于登陆我国的所有人来说,这个希望是存在的──其中包括属于我国今天80多个族裔群体的近700万美国穆斯林。实际上,美国穆 斯林的收入及教育水平超过了我国的平均线。

而且,美国的自由与信奉宗教的自由密不可分。这就是为什么清真寺遍及我们合众国的每个州,在我们境内有着1200多座清真寺。这就是为什么美国政府为保护妇女和女童戴头巾的权利和为了惩罚那些想剥夺这项权利的人而诉诸司法手段。

所以,毋庸置疑:伊斯兰是美国的一部分。我认为美国自身坚信这样一个真理:我们大家,无论种族、宗教或生活地位,都有着共同的理想──和平安全地生活;受教育和有尊严地工作;热爱我们的家庭、我们的社区、我们的神主。这些是我们共享的东西。它是全人类的希望。

当然,认识到我们共同的人性还只是我们使命的开始。仅凭言语无法满足我们人民的需要。要做到满足这些需要,我们必须在今后的年月里大胆行动,我们必须理解,全世界人民面临的种种挑战是共同的,不能应对这些挑战将使我们所有人受害。

我们已经懂得,当一个国家的金融体系衰弱时,世界各地的繁荣都受损害。当一种新流感感染了一个人时,对所有人都有威胁。当一个国家寻求核武器时,所有国家都 面临核袭击的更大危险。当暴力极端分子在一个山区活动时,大洋彼岸的人受到威胁。当波斯尼亚和达尔富尔无辜的人民遭屠杀时,它给我们大家的良心留下污点。 这就是在21世纪共享世界的含义。这就是我们作为人类相互具有的责任。

这是一项艰难的责任;人类的历史常常是国家、部落甚至宗教为自身利益征服他方的历史。然而,在这个新时代,那种心态是自我消损。任何旨在让某一国家或某一群体提高地位的世界秩序都将注定失败。因此,无论我们如何看待过 去,我们绝不成为它的俘虏。我们的种种问题必须通过合作方式来处理,我们必须分享进步。

这并不意味着我们应忽视紧张关系的来源。恰恰相反,它需要我们必须严正面对。本着这一精神,请让我尽力明确和直率地谈谈某些我认为我们最终必须共同面对的具体问题。

我们必须面对的第一个问题是一切形式的极端主义。

我在安卡拉明确表示,美国并非──也绝不会──与伊斯兰教交战。但我们会无情抗击对我国安全构成严重威胁的暴力极端主义分子。因为我们绝不接受所有宗教的信众都会拒绝的同样的行为:杀害无辜的男子、妇女和儿童。保护美国人民的安全是我作为总统的首要职责。

阿 富汗的形势既说明了美国的目标,也说明我们必须进行合作。7年多前,美国在广泛的国际支持下追剿“基地”组织和塔利班。我们毫无选择的余地,因为我们必须 这样做。我知道,有人仍对9.11事件有疑问或为其找借口。但我们必须清楚地认识到:2001年9月11日,“基地”组织杀害了将近3000人,受害者是 美国和许多其他国家的无辜男子、妇女和儿童,他们未曾伤害任何人。他们与“基地”组织政治上的嫌怨或仇恨意识形态毫不相干。然而,“基地”组织蓄意残忍地 杀害了这些人,声称这一袭击行动系其所为,并一再表明打算再次进行大规模屠杀的狼子野心。他们在很多国家都有同伙,并企图扩大他们的影响。这些都不是可以 辩论的看法问题,而是必须正视的事实。

不要有任何误解:我们不希望保持在阿富汗的驻军。我们不在阿富汗寻求军事基地。失去我国青年男女的生命是美国十分痛苦的事。继续这场冲突要付出昂贵的代价,在政治上也是困难的决定。一旦我们可以确定在阿富汗和巴基斯坦已经不存在要尽可能多地杀害美国 人的丧心病狂的暴力极端主义分子,我们会很高兴地撤回每一名美军士兵。但目前还不是这种情况。

因此我们在与46个国家结成合作联盟。尽管需要付出代价,美国的决心不会减弱。的确,我们任何人都不应容忍这些极端主义分子。他们在很多国家杀人。他们杀害了持有各种宗教信仰的人──杀害最多的是穆斯林。他们的行为与人类的权利、国家的进步和伊斯兰教的教义是不相容的。《古兰经》教导说,谁杀害一个无辜者就好比杀害了整个人类;《古兰经》还说, 谁拯救了一个人就好比拯救了整个人类。有超过10亿人口的这一永恒信仰之宏大是一小撮人狭隘的仇恨之心无法比拟的。我知道,在打击暴力极端主义的斗争中, 伊斯兰教并不是一个问题──伊斯兰教必须是解决问题的途径之一。

我们也知道,仅凭军事力量无法解决阿富汗和巴基斯坦的问题。正是因为这个原因,我们打算在今后5年内每年投入15亿美元,与巴基斯坦合作建造学校、医院、道路和企业,另投资1.7亿美元帮助流离失所的人。也正是因为这个原 因,我们提供超过28亿美元帮助阿富汗人发展经济和提供人民赖以生存的服务。

我再来谈谈伊拉克问题。不同于阿富汗的是,伊拉克战争是一 场可以选择不打的战争,在美国国内和国际上引起了巨大分歧。虽然我相信没有萨达姆·侯赛因的暴虐政权,伊拉克人民最终会获益良多,但我也相信,伊拉克发生 的事件提醒我们,有必要通过外交手段和建立国际共识解决我们的问题。确实,我们可以回想一下托马斯·杰斐逊曾经说过的话:“我希望我们的智慧会随我们的力 量而增长,并告诫我们,我们的力量使用得越少,它就越有力。”

今天,美国承担着双重责任:帮助伊拉克人打造更美好的未来,同时要将伊拉 克交给伊拉克人。我明确地向伊拉克人民表示,我们不寻求基地,对领土或资源没有要求。伊拉克的主权属于伊拉克自己。正是出于这个原因,我已下令在明年8月 前撤出我们的作战部队。也正是出于这个原因,我们将履行与伊拉克民选政府达成的协议,在7月前从伊拉克城市撤出作战部队,在2012年年底前将所有的部队 撤出伊拉克。我们将帮助伊拉克训练安全部队和发展经济。但我们是以伙伴的身份,而绝不是以保护人的身份支持伊拉克的安全与统一。

最后, 美国绝不能容忍极端主义分子的暴力,同样我们也绝不能改变或忘记我们的原则。9.11事件给我国造成了巨大的创伤。这一事件引起的忧惧和愤怒是可以理解 的,但在某些情况下,这一事件也使我们采取了与我们的传统和理想相悖的行动。我们正在采取具体行动改变路线。我明确禁止美国使用酷刑,我已下令明年初关闭 关塔纳摩湾监狱。

因此,美国将进行自卫,同时尊重其他国家的主权和法治。我们在这样做的时候,将与同样受到威胁的穆斯林社区结成伙伴。早一天使极端主义分子在穆斯林社区受到孤立和丧失人心,我们就能早一天获得更大的安全。

我将讨论的紧张关系的第二大根源是以色列人、巴勒斯坦人和阿拉伯世界之间的局势。

美国与以色列之间的牢固关系众所周知。 这种关系坚不可摧。它基于文化和历史的纽带以及这样一个认识:对犹太家园的渴望有着一个悲哀的历史源头,这个历史是无可否认的。

犹 太人在世界各地经受了很多世纪的迫害,反犹太主义被前所未有的大屠杀推到顶峰。明天,我将参观布痕瓦尔德,那里曾是犹太人遭受纳粹奴役、折磨、杀害和被毒 气致死的集中营之一。600万犹太人惨遭杀害──这超过了今天以色列的全部犹太人口。否认这一事实是站不住脚的,无知的,仇视性的。威胁毁灭以色列──或 不断重复有关犹太人的恶意成见──是极其错误的,而且只会在以色列人心目中唤起这一最痛苦的记忆,同时阻碍这个地区人民应得的和平。

然 而,同样不能否认的是,巴勒斯坦人民──穆斯林和基督徒──在寻找家园的过程中历经苦难。60多年以来,他们承受了流离失所的痛苦。许多人在西岸、加沙以 及邻国土地的难民营里等待着他们从不曾过上的和平与稳定的生活。他们每天忍受着由占领带来的大大小小的羞辱。所以,毋庸置疑:巴勒斯坦人民的境况是不能容忍的。美国对巴勒斯坦人追求尊严、机会和自身国家的合理抱负不会置之不理。

几十年来,一直存在着一种僵持局面:有着合理追求的两族人民,因各自的痛苦历史而使妥协可望不可及。相互指责并不难——巴勒斯坦人指责由以色列建国而造成的流离失所,以色列人指责贯穿其全部历史的来自境内外的敌 意和袭击。然而,如果我们仅仅从一方或另一方来看待这一冲突,我们将无视事实:实现双方愿望的惟一出路是以色列人和巴勒斯坦人和平安全共存的两国解决方 案。这符合以色列的利益,符合巴勒斯坦的利益,符合美国的利益,符合世界的利益。因此我将亲自致力于取得这一结果。各方根据“路线图”已同意承担的义务是 明确的。为了实现和平,现在是他们──以及我们各方──应该履行自己职责的时候了。

巴勒斯坦人必须放弃暴力。暴力抵抗和屠杀不能达到目 的。在几个世纪里,美国黑人奴隶遭鞭打,受种族隔离的凌辱。然而,最终导致获得全面平等权利的不是暴力,而是对美国建国核心理想的和平与执著的坚持。同样 的经历也可在从南非到南亚,从东欧到印度尼西亚的其他国家人民的历史中看到。这个经历揭示了一个简单的真理:暴力是死路一条。向睡梦中的以色列儿童发射火 箭炮或炸死公共汽车上的老妪,既非胆识也非力量的表现。它不是在申明道义权威,而是在丧失道义权威。

现在是巴勒斯坦人致力于如何进行建设的时候了。巴勒斯坦权力机构必须发展治理能力,建立为人民的需求服务的机制。“哈马斯”确实在一些巴勒斯坦人中拥有支持,但他们也有责任。要为实现巴勒 斯坦的抱负而发挥作用,“哈马斯”就必须停止过去的暴力,遵守过去的协议, 承认以色列的生存权。

与此同时,以色列人必须意识到,正如以色列的生存权不能被剥夺一样,巴勒斯坦的生存权也不能被剥夺。美国不接受以色列继续建造定居点的合法性。这一做法违反了过去的协议,有损实现和平的努力。现在是停止这些定居点的时候了。

以色列也必须履行其义务,确保巴勒斯坦人能够生活、工作、建设其社会。正如摧毁巴勒斯坦人的家庭一样,加沙持续的人道危机无益于以色列的安全,西岸缺乏机会也同样如此。巴勒斯坦人民日常生活的改善必须是通向和平之路的一个关键部分。

最 后,阿拉伯国家必须认识到,阿拉伯和平倡议(Arab Peace Initiative)是一个重要的开端,而不是责任的终止。阿-以冲突决不应再被用来转移阿拉伯国家人民对其他问题的视线。相反,它应成为一个行动的号 召,帮助巴勒斯坦人民发展维系国家的机制;承认以色列的合法性;选择进步,而不是自我消耗地向后看。

美国将使我们的政策与追求和平者的 政策协调一致。无论在公开场合还是非公开场合,我们将对以色列人、巴勒斯坦人和阿拉伯人说同样的话。我们不能把和平强加于人。但是,在非公开场合,许多穆 斯林承认以色列不会消失。同样,许多以色列人也承认建立巴勒斯坦国的必要性。时不我待,我们必须基于人所共知的事实行动起来。

眼泪已流 得太久;鲜血已洒得太多。我们大家都有责任为这样一天的到来而奋斗,那就是:以色列和巴勒斯坦的母亲能够看到自己的孩子毫无恐惧地长大,三大信仰的圣地 (Holy Land)成为天意属望的和平之地,耶路撒冷是犹太人、基督徒和穆斯林的安全和永久的家园,并像伊斯拉(ISRA)故事中摩西、耶稣和穆罕默德(颂安)共 同祈祷那样,成为亚伯拉罕所有子孙和平相处的地方。

第三个造成紧张关系的原因涉及国家在核武器问题上的权利和责任,对此,我们必须达成共识。

这 个问题是美国与伊朗伊斯兰共和国之间关系紧张的一个根源。多年来,伊朗在某种程度上用它与我的国家的对立来给其自身定位。伊朗与美国之间确实有着坎坷的历 史。在冷战期间,美国对伊朗的民选政府被推翻起了作用。自伊斯兰革命以来,伊朗在劫持人质和对美军及平民发动的暴力事件中扮演了角色。这一历史众所周知。 我没有选择自陷于过去,我已经向伊朗领导人和伊朗人民表明,我国已做好向前迈步的准备。对于伊朗而言,现在的问题不在于反对什么,而在于它希望建设什么样的未来。

消除数十年的不信任决非易事,但是我们有勇气、有正气、有决心向前迈进。我们两国之间有许多问题有待商讨,我们愿意在没有先决 条件的情况下基于相互尊重向前迈进。但是,有关各方都很清楚,在核武器方面我们已经处在一个决定性关头。它所关系到的不单纯是美国的利益,而是为了阻止一 场可能会使中东地区和全世界走上一条极其危险的道路的核武器竞赛。

我理解有些人针对一些国家拥有核武器而其他国家没有核武器而提出的抗议。任何一个国家都不应挑选哪些国家可以拥有核武器。因此,我坚决重申,美国承诺争取建立一个任何国家都不拥有核武器的世界。任何一个国家——包括伊朗 ——如果它履行对《不扩散核武器条约》(Non-Proliferation Treaty)承担的责任,就应当有权获取用于和平目的的核能源。这一承诺是这项条约的核心,应为条约各方全面遵守。我希望这个地区的所有国家都支持这一 目标。

我要讲的第四个题目是民主。

我知道,近几年来在推进民主方面存在争议,而且许多争议与伊拉克战争有关。所以,我要明确表示:没有任何一种政府体制能够或应该被一个国家强加给另一个国家。

但是,我并不因此而减少我对代表人民意愿的政府的承诺。每个国家以植根于本国人民传统的各自方式给这一原则赋予生命力。美国并不自认知道什么是对所有人最为有益的做法,正如我们不会主观选择和平选举的结果一样。但是我确实坚信,某些东西是所有人都渴望的:能够畅所欲言并对自己被管理的方式有发言权;对法治和 司法公正有信心;政府施政透明,不盗窃人民财富;以及有自由按自己选择的方式生活等。这些不是美国人的发明,这些是人的权利,因此美国在各地都支持这些权 利。

实现这一诺言没有直线可循,但是有一点是明确的:保护这些权利的政府最终会更稳定、更成功、更安全。压制思想决不会让这些思想消 失。美国尊重世界各地一切和平、守法人士的发言权,即使我们与他们意见不一。我们将欢迎所有民选的和平政府——只要这些政府在施政时尊重本国人民。

最后一点很重要,因为有些人只是在不当政时呼吁民主,一旦大权在握,他们就残暴压制他人的权利。无论植根于何处,民有和民治的政府为所有当权者设定了一个标 准:你必须通过人民的许可保持权力,而不是采用强迫手段;你必须尊重少数派的权利,本着宽容和妥协的精神参与;你必须把人民的利益以及合法的政治程序至于自己的政党利益之上。没有这些要素,单凭选举无法实现真正的民主。

我们必须共同解决的第五个问题是宗教自由问题。

伊 斯兰教拥有值得自豪的宽容的传统。这一点我们在宗教法庭时期安达鲁西亚(Andalusia)和科尔多瓦(Cordoba)的历史上看得很清楚。我童年时 在印度尼西亚亲眼所见,在这个穆斯林占人口绝大多数的国家,虔诚的基督教徒可以自由地从事礼拜活动。这种精神是我们今天所需要的。每一个国家的人民都应能 听从自己的思想、感情和灵魂的驱使,自由地选择宗教信仰和过自己的宗教生活──无论他们选择的是何种宗教。这种宽容精神对宗教的兴旺是必不可少的,但现在 受到了来自多方面的挑战。

在某些穆斯林中,有一种令人不安的倾向:通过排斥他人的信仰来显示对自己的信仰之忠诚。丰富的宗教多样性必须 得到维护──无论是黎巴嫩的马龙派教徒(Maronites)还是埃及的科普特教会成员(Copts)。另外,如果我们能够诚实地对待这个问题,穆斯林内 部的裂隙也必须弥合,因为逊尼派和什叶派的分歧在某些地方已导致悲惨的暴力,特别是在伊拉克。

宗教自由对各族人民能否和睦相处至关重要。我们必须经常认真地考虑我们保护宗教自由的方式。例如,在美国,有关慈善捐款的规定加大了穆斯林履行宗教捐助义务的难度。为此,我承诺与美国穆斯林共同努力,以确保他们能够施行天课(zakat)。

同样,西方国家必须避免妨碍穆斯林公民按照自己的意愿从事宗教活动—例如,不能对穆斯林妇女的着装进行强制规定。我们不能以自由主义为幌子敌视任何宗教。

的 确,信仰应有助于我们休戚与共。因此,我们正在美国制订一些新的服务计划,使基督徒、穆斯林和犹太人共同参与。因此,我们欢迎阿卜杜拉国王倡导的宗教间对 话和土耳其在文明联盟(Alliance of Civilizations)中发挥的领导作用。在全世界各地,我们可以使宗教间对话发展成宗教间服务,通过各种连接各族人民的桥梁促使我们采取行动推进 共同的人道精神──不论是在非洲抗击疟疾, 还是在自然灾害后提供救援。

我要谈的第六个问题是妇女的权利。

我知道在这个问题上存在着争论,在座的各位就是例证。西方某些人认为一位妇女选择遮盖自己的头发即说明不那么平等,我反对这种看法。但我确实认为剥夺妇女的教育权利就是剥夺了妇女的平等权利。妇女受到良好教育的国家有极大的可能实现繁荣,这种情况决非偶然。

我希望明确表示:妇女的平等权利绝不仅仅是伊斯兰教的问题。在土耳其、巴基斯坦、孟加拉国和印度尼西亚,我们看到这些穆斯林人口占多数的国家选举了妇女领导人。与此同时,在美国社会生活的许多方面以及在世界上其他国家,争取妇女平等的斗争仍在持续。

我 深信,我们的女儿们也能像我们的儿子们一样为社会作出很大贡献。让全人类—包括男人和女人—充分发挥其潜力将促进我们的共同繁荣。我并不认为,妇女为了获 得平等必须作出与男人相同的选择,我尊重在生活中选择承担传统角色的妇女。但是,这应当是她们自己的选择。因此,美国愿意与任何一个以穆斯林为主体的国家 进行合作,支持提高女童识字率,并通过小型信贷帮助年轻妇女创业,实现自己的梦想。

我要谈的最后一个问题是经济发展和经济机会。

我 知道对许多人来说,全球化的景象充满着矛盾。因特网和电视能传播知识和信息,但同时也会展示露骨的性行为和肆无忌惮的暴力。贸易可以带来新的财富和机会, 但也会造成巨大的分化和社区的演变。在所有的国家──其中也包括美国──这种变化可以引起恐惧,担心现代化会意味着我们失去对自己的经济选择、对政治,最 重要的是对自身特征的控制──那些我们挚爱的有关我们的社区、我们的家庭和我们的宗教信仰的方方面面。

但我知道,人类的进步不可阻挡。发展与传统并不矛盾。日本和韩国等国家在保持自己特有文化的同时发展了经济。在从吉隆坡到迪拜的穆斯林占主体的国家内,也出现了同样惊人的经济进步。无论在古代还是现代,穆斯林社区都站在创新和教育的前列。

这一点十分重要,因为发展战略绝不能仅仅建立在地下资源的基础之上,在年轻人失业的情况下,发展也不可能持续。很多海湾国家因丰富的石油资源而享有富足的生 活,其中有些国家已开始专注于更广泛的发展。但是,我们大家都必须认识到,教育和创新将成为21世纪的资本,而太多穆斯林社区对这些领域投资不足。我正在 我的国家强调这一点。过去,美国特别重视这一地区的石油和天然气资源,如今,我们将寻求更广泛的接触。

在教育领域,我们将扩大交流项目,增加奖学金,就像我父亲,当年就是靠奖学金有机会去美国的。与此同时,我们将鼓励更多的美国人到穆斯林地区学习。我们将安排有前途的穆斯林学生到美国 实习,为世界各地的教师与儿童投资发展在线教学,创造新的在线网络,让堪萨斯的青少年能够即时与开罗的青少年进行网上沟通。

谈到经济发展,我们将建立新的商务志愿队,与穆斯林为主体的国家中的同行结成伙伴。我将在今年主持一次创业峰会( Summit on Entrepreneurship),以确定我们如何能够深化美国与全世界穆斯林社区中的工商领导人、基金会及社会企业家之间的关系。

在 科学技术领域,我们将发起一项新的基金以支持穆斯林为主体的国家中的技术发展,帮助将创意投入市场,以创造更多就业机会。我们将在非洲、中东及东南亚地区 开设促进科学事业中心,并任命新的科学事务特使,就有关计划进行合作,以开发新型能源、创造有利环保的工作机会、使档案数字化、使水资源洁净化,并种植新 型作物。今天我宣布与伊斯兰会议组织(Organization of the Islamic Conference)的一项新合作,旨在根除小儿麻痹症。我们还将谋求扩大与穆斯林社区的合作关系,以促进儿童和妇女健康。

所有这一切必须通过合作关系来实现。美国人已准备与各国政府及公民、社区组织、宗教领袖及穆斯林社区的公司企业携手努力,帮助人们追求更好的生活。

我 所谈到的这些问题并不能轻易解决。然而,我们有责任携手努力建设一个我们所追求的世界——一个极端主义分子不再威胁我们的人民、美国军队返回家园的世界; 一个巴勒斯坦人和以色列人在各自国家中和平安全、核能仅用于和平目的世界;一个政府服务于人民、上天所有子民的权利都得到尊重的世界。这些是共同的利益。 这是我们所追求的世界,但我们只有携手共进才能如愿以偿。

我知道有很多人──穆斯林和非穆斯林──怀疑我们是否能创造这个新的开端。有 些人急于煽风点火制造隔阂,成为前进路上的绊脚石。有些人认为不值得付出这样的努力──他们说我们注定要有分歧,文明的冲突在劫难逃。还有很多人只是对变 化是否真能发生疑虑重重。有太多的恐惧感,太多的不信任。但我们若甘于被过去束缚,就永远无法前进。我特别要对各国各个信仰的年轻人说——你们,比任何人 都有能力重建这个世界。

我们所有人都不过是这个世界的匆匆过客。问题在于,我们是把这段时间花在导致我们分裂的东西上,还是全心致力于一种努力──一种持久努力──以寻求共同之处,以我们争取为子孙后代创造的未来为重,并尊重全人类的尊严。

结束战争比发动战争要难。看到与别人的共同之处比看到不同之处要难。我们应该选择正确的道路,而不只是容易的道路。而这正是信仰给我们指明的方向。所有宗教 都有同一个核心原则──已所不欲,勿施于人。这条真理超越国家与民族──这一信念不是新出现的;不是黑色的、白色的或棕色的;也不代表基督教、伊斯兰教或 犹太教。这种信仰孕育于文明的摇篮,至今跳动在亿万民众的心间。它是对他人的信任,它是促使我今天来到这里的原因。

我们有能力把世界变成我们所希望的那样,但前提是我们必须勇于开创新的开端,同时谨记经文的训导。

《古兰经》告诉我们:“人类!我们创造了你男人和一个女人;我们让你们成为国家和部落以便彼此相识。”

《塔木德经》(Talmud)告诉我们:“全部《托拉》(Torah)都是为倡导和平。”

《圣经》(Holy Bible)告诉我们:“使人和睦的人有福了,因为他们必称为神的儿子 。”

世界人民能够和平共处。我们知道这是主的旨意。现在,这必须是我们在地球上的使命。

谢谢你们,愿主赐予各位平安。非常感谢你们。谢谢你们。

(完)

当地时间下午2时05分

黑体是我所加.