张尧学院士在“透明计算/云计算产学研讨会”的发言中首先回顾了信息技术发展经历的几个历史阶段:一是从大型机向桌面机转型时期,出了微软和英特尔;然后是桌面机向网络转型时期,出了思科;再后来WEB时期又出了个Google;而现在正处于移动互联网时期,也是计算机、泛计算机等的大发展时期,将会出现什么样的企业、由什么样的技术来引导信息产业及其他各行业的发展,他提出这是值得大家思考也是个很有兴趣的问题。

中国工程院院士、国家科技重大专项核高基专项技术责任人、
国务院学位办主任张尧学院士
“核高基”作为国家科技重大专项为什么如此重要,有哪些东西要做,张院士做了详细阐述。他说,“核”是核心元器件;“高”是高端芯片;“基”是基础软件,简称为“核高基”, 其实就是操作系统和CPU。中国怎样发展自己的操作系统和CPU,一个是产业,一个是安全。对于这两个核心的操作系统和CPU的发展一直有两条路线:一条是收复失地的战略,通过分析微软的操作系统占据市场的百分比,其他的CPU占据市场的百分比,然后我们去收复,但是这种战略执行起来非常艰难。另一条路线是在信息产业或者信息技术新的发展点上,我们要去做人家没有而我们有同时又和国际兼容的东西,这个就是要中国特色、国际水平。中国特色就是我有而别人没有的,国际水平是指要与别人能够兼容的。这样才能取得在信息产业链上的话语权,可以去跟人家讨论,可以进行互换,这是知识产权问题。
这两条路线的斗争一直很激烈,反映在项目实施上也是两方面都有涉及,传统的收复失地在做,有新的机会我们也会按照国务院领导的指示抓紧做,但效果不是十分理想。我们互联网的操作系统在结构化、非结构化数据资源中心、搜索工具、搜索引擎和浏览器等方面设置了大批项目,这些项目中有的企业做得不错,有的不理想。我们怎样把项目实施的思路和企业的发展能够紧密地结合,这是一个大问题,我觉得我们首先要对这个问题进行交流和沟通解决。
二 什么是云计算--云计算概念剖析及存储和计算分离辨析
我现在是核高基的技术责任人,我首先从我们拟的第一个项目网络计算的操作系统,来具体谈一下透明计算、云计算的操作系统。
“云计算”这两年不仅在信息技术产业,在其他各个行业也比较热。但是究竟云计算是什么呢?每个人都有自己的理解,也有一些公共的理解。我在2008年10月31日与Google总部Alfred Spector副总裁交谈时,他们认为云计算首先是存储和计算分离,而清华大学的陈文光教授认为存储和计算是不可分离的。我认为陈教授所指的分离应该是两个概念,一是逻辑上的分离,一是物理上的分离。物理分离可以把数据包括程序放在服务器里面,可以根据需要去用计算程序进行计算,然后给用户提供相应的服务。逻辑分离是对原来数据库内的数据进行操作,那么这个数据库里面有哪些数据,在什么位置是清楚的而且是不可以扩展的,想要扩展必须要重新编辑。但是云计算或者说网络上的搜索是不一样的,因为Web可以任意扩展,它他与搜索引擎没关系,它他的程序跟计算工具和计算本身来讲,没有在程序上的引擎。比如我扩展了一个Web,你不用再去改我的搜索引擎。但是安装数据库这个需要修改,比如说我们扩展以后,我增加了一些东西,那么它他与搜索引擎没关系,他的程序跟计算工具和计算本身来讲,没有在程序上的引擎。比如我扩展了一个Web,你不用再去改我的搜索引擎。但是安装数据库这个需要修改,比如说我们扩展以后,我增加了一些东西,那么他对这些程序进行一些稍微的变动。
Google可以说从后端、从服务器怎么搜索、怎么找Web往前走来看待云计算,而微软对云计算的看法与Google不同,他是从用户这一端往后端走,所以微软提出来的是端和云的结合,微软主要强调的还是怎样用微软的操作系统内核的桌面+移动+家电来形成一个统一的前端的网络和服务平台。微软现在在手机上做了Mobile,在桌面上是Windows7,当然在家电方面他原来也有一个但不太成功,现在我估计还是在继续做,因为微软有一个但不太成功,现在我估计还是在继续做,因为他已经公布了3C合一的战略。
我个人总结为,云计算是在整个环境变化的条件下产生的一个新的技术概念。此处的环境变化就是指整个网络的出现使得原来资源管理以单机为主变成了以网络为主。再有就是原来的计算机是以计算为中心的,随着网络的出现和应用的不断变化现在是以数据为中心,甚至有人也提出来数据是核心竞争力。一个国家的核心竞争力有很多,但数据是核心竞争力,数据的变化会带来整个生活包括很多决策的变化,因为数据决策一不准确决策决策一不准确数据就不准确,如果数据准确一切都有变化,所以现在有一个特点就是以计算为中心正在向以数据为中心转移。
再有就是大家以前买软件强调的是资源共享,现在是在向一个“服务共享”为主转变。大家都在讲不要软件要服务,如果不要计算机只要一个服务器,可以提供给你所要的服务,根本不用管谁在后端给你做计算,这就是我们讲的透明计算。计算要对用户透明,不要去把计算的过程和计算的操作告诉用户,用户只需要服务就行了。
从这个角度看,我们认为云计算应该是存储和计算分离的,另外存储规模是要海量化、是要分布式的,而且这个数据是要结构化和非结构化都存在的。因为现在的Web都是半结构化的,是有结构的。所谓非结构就是不同的,比如每个图纸、每个讲话的声音、一些图像等比如每个图纸每个讲话的声音一些图像不经过特定的格式,能够存储到计算机或者存储到你的服务器里面去。再有运算应该是分布化、并行化的,再一个是我的前端应该是小型化的,就是你拿到外面去不要那么大,还有也不要带那么多,所以应该是小型化、跨平台或者是可移动的。再一个主要是应该是面向服务。
现在的云计算他是从后端向前端发展的,但是正如刚才我前面介绍的Google和微软,Google还有一个透明计算从前端往后端发展。英特尔的卢总会讲到平衡计算的问题,如果说后端往前端、前端往后端同时推的话,好这是一个平衡发展的一个问题。
三 什么是透明计算----透明计算概念剖析及特点、发展历程概括
透明计算实际上是我们国家自己提出的,是清华大学在1998年提出,透明计算的特点可以概括为以下几点:
第一,存储和计算分离。把存储放到中央服务器上,计运算由前端来做,用户只需要他的服务。
第二,软件和硬件分离。这点有别于PC机的一般只能运行一个操作系统,当软件平台和硬件平台分离后,能够装Windows操作系统,也能够运行Linux操作系统,而且不给用户带来更多的负担,同时还有可能运行其他系统。
我们希望在同一个硬件平台上可以支持不同的软件,在同一个软件平台上还有更下一层能够支持不同的硬件,这个有的现在已经做到了,但不是所有都能做到。支持不同的硬件是需要硬件和软件厂商的紧密结合,比如大家常用的Windows。但是Windows实际上底层在操作系统的接口,还有主板指令集的开发代码,实际上是两个厂商很密切的配合,如果没有得到授权要想让他支持不同的硬件是不可能的。我们希望在做透明同一计算的时候能在软件平台和硬件平台上像IT协议上那样能够分开,就是即使不得到授权,也能够做这件事情。
第三,程序的执行不在一个机器上,是一种流的模式,通过相应的管理和控制,发现哪个CPU是空的,就他能够流到哪个空CPU上去,执行完了再扔掉。简单举例来讲,比如绿坝软件,控制做得不错,但因为是装在用户的机器上,所以带来了很多争论,甚至变成国际问题。如果我们把这个绿坝软件装在服务器上,当用户买了机器在上网或访问页面时,绿坝能够自动地按流的方式送到机器端那里去执行,执行完后当用户关机软件就退出,这样用户并不知道也不会引起纠纷。这个软件其实美国已经做成。
我们在透明计算方面所做的努力和贡献主要有以下几方面:
1998年在信产部、规划司、科技司的支持下,在发改委的引领下做了SOPCA软件平台,主要是3C合一和家电的轻量化以及互联网服务。通过项目的不断发展,当时包括清华大学和信产部在内的研究组提出存储和计算分离的概念,在这个前端的单系统上我们把操作系统去掉,提出来一种没有操作系统的计算模式,最后在局域网上也得到了实现,同时开发出了相应的终端系统,当时主要是在桌面机上完成,可以支持多个操作系统运行。
到2004年,得到了微软的帮助提出了透明计算的概念,主要是进一步完成了跨终端、跨平台、跨操作系统平台的原则,然后提出按需服务的概念,同时也是进一步推动产业化,类似联想、国内有些PC公司的发展。
2006年时,我们又进一步针对网络化的操作系统是什么样提出初步概念,同时开始和英特尔合作,把英特尔做的EFI下一代BIOS引进到我们的透明计算中,这个从底层开始做网络化的操作系统,同时英特尔也开始研究透明计算的技术。
2009年,我们又把原来在局域网上做得透明计算技术进一步扩展,推向一种端到端的面向服务的一个体系结构。同时通过核高基的支持,把桌面的透明计算开始向无线、向移动互联网方向上开始研究,并在09年下半年、今年上半年做出来一个初步的在移动互联网上的模型。
四 什么是透明计算/云计算操作系统
通过对云计算和透明计算概念的阐述,我们可以简单比较下二者的区别。实际上无非是从前端推还是从后端推的问题。相同之处在于存储和计算分离。从把整个计算机给用户提供服务的角度,而不是做一个单一计算机,而是从面向网络的计算来看待这个技术。还有就是关于对计算的控制和管理采用中央管理,给用户提供服务而不要给他提示,这样也可以减少用户使用端的病毒中毒率。不同之处在于云计算是从整个互联网、从服务器开始,再往终端去,是广域网存储及搜索模式。而透明计算是从终端开始,从3C合一开始最早从终端开始往前端、往后端去推。我们有一个特点,就是我们的终端是强调一种可管理的虚拟的终端,然后要求前端是一个新的很小的,不要那么复杂多的,因为复杂多了无法覆盖多的,因为多了无法容纳更多用户。
OS的基本概念与变迁
操作系统是什么呢?他最早的定义是,管理和控制计算机系统中硬件和软件资源的系统软件。最早的计算机是没有操作系统的,是靠人工来设置,当然很慢。后来发展到批处理系统、多道程序系统、分时系统,有网络功能的操作系统这样的过程。到现在仍是以分时和实时为主,实时是嵌入式,分时包括Windows系列和Linux系列,在这个上面再加一些协议和管理。
以后的操作系统怎样发展呢?我认为有两条技术路线。第一条是传统操作系统,如Windows、Linux、Symbian等,既有台式也有移动的,主要是以管理一个单机为主,作为开发和运行平台,通过通信协议进行网络访问。它他有一个很大的特点,就是功能越做越大,越做越复杂,安全性也越来越低,一个操作系统可以做到10G,而最早的DOS只有640K。第二条是新型操作系统,如Chrome/云端操作系统、透明计算操作系统,这种是以网络作为开发和运行平台,他不再以单一的计算机作为管理对象,同时他而是要管理一整个网络自治体中间的所有资源,离开网络就不能工作。它他有一个很大的特点,就是功能越做越大,越做越复杂,安全性也越来越低,一个操作系统可以做到10G,而最早的DOS只有640K。第二条是新型操作系统,如Chrome/云端操作系统、透明计算操作系统,这种是以网络作为开发和运行平台,他不再以单一的计算机作为管理对象,同时他要管理一整个自治体中间的所有资源,离开网络就不能工作。他的特点是前端功能很少,很轻载化,根据用户的服务需求来提供什么样的客户端。
现在信息技术之快,大家最受益二件事情,一个是手机,这是改变所有人生活的最重要的一个东西。还有一个是电视机,从原来的高塔发射无线电波到现在的有线,到数字机顶盒的出现,可以接收几百个电视频道。这两件事情是跟技术发展同步的,电视和手机本来应该是有线的,但是由于技术进步,都变成了无线。由此,我悟出一个道理:技术进步要让生活变得简单就能得到大发展,如果把生活变得复杂就不会有发展。现在计算机碰到的问题就是,技术不断进步、却越来越复杂,导致人们的生活质量下降,所以网络化的操作系统也要变,变成简单的服务,将计算机的数据、安全还有复杂的系统全部去掉,没那么多复杂的操作,人们的生活质量也就提高了。
接下来我们来看下整个操作系统的发展实例。我们首先看微软的Vista,这么复杂的系统很影响用户的体验。到Windows7也是这样,请了很多人来做,系统越做越大、越做越复杂,不仅带来安全问题,还带来管理问题,比如Office的07版和03版,很多功能都不见了,做得太过复杂,启动也要花费更长时间。结果就出现CPU越来越快、越来越大,启动时间反而越来越慢,操作系统太大使然,而且不支持移动平台。
再看Android,大家都认为Android好,我却不这样认为。为什么,它他还是很大,尽管可以只装一个很小的内核,但要装在比较好的设备中才能使用,所以系统复杂就没有优越性,价格再也他还是很大,尽管可以只装一个很小的内核,但要装在比较好的设备中才能使用,所以系统复杂就没有优越性,价格再没有优势,启动再慢,同时在跨平台方面也没什么特点,不支持桌面软件。虽然有开源的代码,为PC和手机软件合一提供了技术支持,也只是在临时的产业发展上有所推动,从长远来看,可持续发展能力还是受到了影响。
Chrome/云端的操作系统是一个很好发展的例子,因为Chrome比较小,是一个前端的,前端桌面轻载,启动很快;我可以把它他后面的搜索、结构化程序的构成看作是操作系统的一部分,使得它他在后端的大规模数据存储在快速的搜索和服务管理方面都有很大的特点。如果把前端的轻载和后端的快速搜索以及大型的数据构件都做好,再加上跨平台,这就不是一个浏览器或者一个操作系统的事情,这个革命性的变化是巨大的。它他的问题就是不支持其他操作系统及应用,他只是给它他后面的搜索、结构化程序的构成看作是操作系统的一部分,使得他在后端的大规模数据存储在快速的搜索和服务管理方面都有很大的特点。如果把前端的轻载和后端的快速搜索以及大型的数据构件都做好,再加上跨平台,这就不是一个浏览器或者一个操作系统的事情,这个革命性的变化是巨大的。他的问题就是不支持其他操作系统及应用,他只是给他自己提供。
Chrome/云端的操作系统的结构,在前端有一个浏览器,有一个OS的内核,有一个Linux的小内核,然后通过相关的协议和后端服务器的内核以及他的文件系统、还有他的搜索引擎等构建起来形成的一个完整的体系结构。它们还有他的搜索引擎等构建起来形成的一个完整的体系结构。他们之间的运行是通过前后端的这种内核加上通信协议来完成。
五 透明计算操作系统应用
透明计算操作系统的特点
我们再看透明计算的操作系统,这他是一种在其他操作系统之下的管理其他操作系统的操作系统。特点之一就是它他管理其他的操作系统,也可以把他看作不是传统意义的操作系统,但是从操作系统的定义他的确又是操作系统。它他是管理资源,它我们再看透明计算的操作系统,他是一种在其他操作系统之下的管理其他操作系统的操作系统。特点之一就是他管理其他的操作系统,也可以把他看作不是传统意义的操作系统,但是从操作系统的定义他的确又是操作系统。他是管理资源,他管理软件资源比原来的应用程序要多,也管理操作系统,同时也管理硬件资源,甚至把机器和机器之间的比如网络上的缓存区带宽也进行管理。

图一:跨硬件平台,不同硬件平台,同一操作系统,同一服务
另外一个特点,就是跨硬件和软件平台的操作系统。比如我有不同的硬件平台,PC机、手机、MID、数字家电等,我们在透明计算的客户端装了一个透明计算的操作系统,那么就他有客户端、有服务器端,然后通过协议挂在一起,比如我要把Linux都装在其他不同的平台上,通过透明计算操作系统是可以装上去的,装上去以后他就可以为用户提供相同的服务,比如要进行电话或者上网,我都可以在不同的硬件平台上通过这个统一的操作系统完成用户所需要的服务,而且用户他根本不知道你提供的服务是由什么样的操作系统来完成的。

图二:跨软件平台,同一硬件平台,不同的操作系统,不同服务
再一个就是跨软件平台。比如说我有同样一个硬件平台英特尔开发的一个新的MID,他可以连接有线或无线的多种网络,那么在这个硬件平台上我同样也装了透明计算的操作系统,他有客户端、服务器端,可以支持不同的操作系统,使不同的操作系统同时可以得到多种不同的服务,这都是可以完成的。

图三:基于块流调度执行的OS
另外一个特点,它他不是运行在其他操作系统之上,而是运行在BIOS之上IOS之下的OS。这个BIOS选择用的是EFI,EFI带有标准化的结构,这他是一个扩展的硬件,在这上面可以支持不同的硬件,比如ARM、X86、Linux,然后在这上面可以支持我们相应的客户端包括里面的操作系统。还有就是他可以做到终端非常轻、非常小,甚至做到虚拟终端,这个终端是中央管理的一个可管理的终端,所他执行的是一个基于块流调度的操作系统。
另外一个特点,他不是运行在其他操作系统之上,而是运行在BIOS之上IOS之下的OS。这个BIOS选择用的是EFI,EFI带有标准化的结构,他是一个扩展的硬件,在这上面可以支持不同的硬件,比如ARM、X86、Linux,然后在这上面可以支持我们相应的客户端包括里面的操作系统。还有就是他可以做到终端非常轻、非常小,甚至做到虚拟终端,这个终端是中央管理的一个可管理的终端,他执行的是一个基于块流调度的操作系统。
透明计算操作系统的应用
下面介绍一下透明计算的应用,先讲一下桌面应用的情况。桌面应用这几年在各个行业都有比较多的应用,比如在中南海的警卫局、国旗班、总参、东盟边境、南沙群岛等很多都在用这种简单的机器,因为它他比较完整,不需要重新装操作系统,维护也很简单,死机只要关机重启就行了,所以只要管一台服务器就够了,用起来比较方便。我们曾经有一台机器在贵州用了10年现在还在使用,不用花太多的钱和精力来维护。另外在教育系统,大学、中学、小学都有用到。还有就是政府、企业机关、农村,只要用网络能构建的平台基本上都能够做起来。
再讲下移动应用。比如我们手机中的短信,大家都是存在自己的手机上,如果把这些短信放到你服务器的个人手机虚拟机上,当你从手机上看完就扔掉,需要再查时又点一下,然后再从服务器上下载下来,就是不看短信时不在手机上,这样手机就轻载很多。还有电话簿也同样。我们希望把有关的应用和存储全部或者部分地放到后面去,常用的在前端,不常用的、特别是操作系统上一些不需要的功能全部扔到后端,使手机轻载,然后用户就可以用手机没有那么烦琐了。这个中间这块我们把它叫做透明计算操作系统。
还有就是家电应用,交互式电视一直没有太大拓展,因为交互没多少人用,以后如果说把管理不仅仅是搞一个交互点播,还包括很多诸如计算机的功能也转到家电上去,估计交互电视的发展才会比较好一些。比如电视台查收视率,我可以通过在电视台安装一个软件,当你打开电视机看电视时,他就可以自动下载一个小模块,然后把你看的内容和时间动态地传回去,这样收视率就不用再打电话查了。现在美国搞互联网管理的已经可以用这个方法来调整你的带宽。当你使用体验不好时,会马上作出做出调整,实际上它他有一个程序可以把你的信息全部反馈回去,这个反馈的过程就相当于装了绿坝,当它他发现你看的节目不对时也可以卡住。自动下载一个小模块,然后把你看的内容和时间动态地传回去,这样收视率就不用再打电话查了。现在美国搞互联网管理的已经可以用这个方法来调整你的带宽。当你使用体验不好时,会马上作出调整,实际上他有一个程序可以把你的信息全部反馈回去,这个反馈的过程就相当于装了绿坝,当他发现你看的节目不对时也可以卡住。所以这个就是现在的三网合一,有线网、电视网还有移动网的三网合一,然后把个人数据和公共数据进行分开,公共数据可以点播节目可以进行很多公共服务,个人数据是你私密的东西,我们也是可以通过透明计算操作系统来完成。
六 透明计算/云计算操作系统研究课题
再讲下需要研究的课题,也是我们关于项目或者核高基需要支持的。第一新型网络化操作系统的概念;第二,跨软/硬件平台的资源管理;第三,超大规模非结构化数据的一致性;第四,数据的深度:快速搜索与浏览;第五,面向用户的服务主动重组/重构;第六,支持服务重组的相关工具;第七,面向用户的新型终端。