- 注册
- 2008-10-02
- 消息
- 27,023
- 荣誉分数
- 7,154
- 声望点数
- 373
上面标题是我加的,原来的标题和链接:
小兵张三:透明计算的前世今生——缘起
015年1月29日 墙外楼
起疑
听说2014年度国家自然科学一等奖没有空缺,先是高兴,毕竟这是代表国家实力的奖项,可看完新闻,感觉完全不是那么回事了:“网络路由器之父”、“颠覆冯·诺依曼体系”、“透明计算”这些大词以前怎么从来没听说过?
众所周知,路由器就是网络设备,不存在什么“网络路由器”,而路由器进入中国是以思科为代表的。查查维基百科【1】,多协议路由器首次出现于1981年的Stanford和MIT,发明人分别为William Yeager和Neol Chiappa,而作为路由器功能的设备,更可追溯到ARPANET建设时期的Interface Message Processor,跟中国真是扯不上半毛钱关系。
冯·诺依曼体系提出了“存储程序”的概念,是现代计算机的基础。用大白话来说就是,计算机由中央处理器(CPU)、存储器和输入输出设备三部分构成,程序加载存放于存储器之中,并通过CPU来执行。此体系的提出,是因为早期的计算机类似于现在的计算器,只能为单一的用途服务,而基于冯·诺依曼体系设计的计算机,可以通过编写不同的软件,让计算机具备多样的功能。多年来,有一些突破冯·诺依曼体系的尝试,都没有形成气候,要说颠覆,那估计也要等量子计算或DNA计算成熟以后了吧。
至于“透明计算”,恕我孤陋寡闻,此前从未听说。
由于对电脑还有点小兴趣,看完新闻后,赶紧找资料补课。这一补,有些东西就明白了。原来张尧学教授参与研制了最早的国产路由器桑达SED-08,而获奖材料里也没写“颠覆”。这是被媒体“捧杀”了。但是对于“透明计算”,还是不太明白是个什么东东。
没过两天,质疑的声音开始冒出来,尤其是知乎上有了不少讨论。有人认为透明计算是无盘工作站,有人认为透明计算跟云计算没什么关系,有人认为透明计算没有什么大的理论创新,总之一句话,“透明计算”与自然科学一等奖的要求是有差距的。然而正如方舟子所言,虽然有很多质疑,但没有系统性的分析。方舟子发出号召也有几天了,新语丝上仍然没有挂出相关文章。也许是知情者不愿意透露消息,也许是大牛们不屑于此,也许是从论文上看不出什么道道吧。总之,随着质疑的帖子陆续被删,这事估计又要像许多事情一样,慢慢地淡出公众的视线,仿佛从来没发生过一样。既然高手都不露面,小兵我就抛砖引玉,先放一枪吧。
查证
透明计算这个名词最早出自《电子学报》2004年第12期刊登的论文《透明计算:概念、结构和示例》【2】(以下简称《透明计算》),该文只有一名作者:清华大学计算机系教授张尧学。透明计算被定义为:“一种用户无需感知计算机操作系统、 支撑工具以及应用程序的所在, 并能根据自己的需求,从所使用的各种设备( 包括固定和移动以及家庭的各类设备)中找到相关计算服务, 而这些服务又是存储于位于分布式网络的服务器中的计算模式.用户使用的设备( 统称为客户机)与服务器之间的连接依靠内部的通信协议完成.”在与普通的客户/服务器模式的比较中,张教授强调了透明计算体系的几个主要优点,归纳如下:
1、透明计算的客户机多样化,可以是PC、NC、PDA,甚至是数字家电;
2、透明计算的客户机不预装任何操作系统和应用程序
3、透明计算可根据用户的需求加载不同的操作系统和应用程序;
4、透明计算的服务器只用于资源的存储,不用于计算;
5、基于以上的特点,对于服务器和客户机的配置要求都不高;
6、基于2-4,系统的整体安全性更高;
由上我们可以判断:早在1990年代就大行其道的无盘工作站网络完全具备上述2、4、5、6的特点;无盘站系统也可以根据菜单选择不同的操作系统【3】,从字面上来说,部分具备特点3;无盘站系统不支持1所说的PDA和数字家电。
文中给出的透明计算体系结构如下:
+————-+
|应用计算层| +————–+
+————-+ | |
| |虚拟OS和 |
+————-+ |应用计算层|
|Multi-OS层| | |
+————-+ +————-+
| |
+————-+ +————-+
|透明计算层| |透明计算层|
+————-+ +————-+
| |
+————-+ +————-+
|物理驱动层| |物理驱动层|
+————-+ +————-+
| |
+——————–+
服务器端 客户机端
并强调:
1、物理层“对应于无所不在的通信”,可以支持有线、无线各种方式的网络连接,以太网、红外、蓝牙、有线电视无所不包。
2、多操作系统启动协议MRBP完成客户机启动,并下载操作系统内核镜像。
3、通过虚拟网络交换与调度技术VNSS,客户机可以使用服务器上的文件及应用程序。
4、使用优先级管理用户请求。
5、服务器管理用户资源和用户权限。
6、使用并行计算技术,解决服务器增加存储容量的问题。
文中还给出了一个透明计算系统的实例:可管理的多媒体网络计算机(MMNC)系统。从描述上看,MMNC是一种基于Cyrix处理器的兼容无盘电脑。按文中的图例,一个局域网内有一台Windows服务器、一台Linux服务器和若干台MMNC。MMNC启动后,用户可以选择使用Windows系统或Linux系统,并可使用各种应用软件。同时强调,多个MMNC用户可共享使用单机版软件。文章最后给出了一个MMNC系统的测试报告,一方面“证明”该系统运行软件的广泛性,一方面“证明”系统的高性能。
从MMNC系统的实例来看,这个系统跟基于无盘工作站的网络没有本质上的差别,但从体系结构来看,跟无盘工作站技术又似乎不太一样。为一探透明计算的究竟,必须解释清楚如下几个问题:
1、根据用户需求加载不同的操作系统的具体含义是什么;
2、MRBP协议的实现细节;
3、透明计算层的具体实现方式;
4、VNSS是一种什么样的技术;
5、论文中没有具体陈述的Multi-OS层是什么东西;
6、用户和资源管理涉及哪些具体内容;
7、解决服务器增加存储容量问题时提到的并行计算是何种含义
8、除了通用的部件外,MMNC有何专门的设计。
为解答上述问题,首先想到的是看看张教授此前发表的论文。CNKI查询结果显示,在这篇文章之前,张尧学教授等人只在2013年发表过一篇与此相关的文章,这就是《可管理多媒体网络计算机》【4】。该文的引言中对网络计算机NC、NetPC、无盘工作站和Windows终端(WBT)的缺点进行了分析,然后介绍了一种基于普适计算的MMNC系统,并为这一系统提出了前述MRBP协议和一种基于网络的虚拟交换和调度算法VSSA。MMNC系统设计所遵循的普适计算平台称为SOPCA(Software Platform for Connected Appliances)。
在此文中,MMNC客户机由SOPCA boot Agent、MMNC OS、SOPCA Platform、Application四层体系构成,服务器由General OS、SOPCA Platform、服务程序三层体系构成。MRBP在启动代理Boot Agent中实现,启动代理主要由四部分组成:网卡驱动及相关协议; 扩展的DHCP 客户端代码; APTP 客户端代码; OS加载器。网卡驱动及协议为远程启动提供通讯支持;DHCP协议做了扩展,增加防干扰的鉴别选项和多播支持;主动程序传输协议(APTP)采用MD5摘要的方式来“命名”程序,并支持多播,以降低并发启动时对网络的冲击;MRBP获得系统镜像后,OS加载器负责加载并转移控制权。为支持多种操作系统的加载,还设计了一种解释型脚本语言,通过使用该语言编写的脚本与用户交互。
文中详细介绍了VSSA,从描述中可以看出,这就是《透明计算》一文中所说的VNSS。从文中的表述看,该算法实现的功能是:
1、因客户机无硬盘,进程执行过程中,如所需的数据或指令页面不在物理
内存中,按照一定算法从通过网络映射的位于服务器上的存储中调用信息;
2、多个客户机可以映射服务器上的同一拷贝,达到共享单机版软件的目的;
3、为解决共享拷贝写访问冲突,采用写拷贝技术,在MMNC的“物理内存”中分配一块新的物理空间,复制相应数据,断开此前的网络映射关系,对本地拷贝进行改写。
4、为应对多客户机共享访问造成的大量并发请求,采用缓存和优先队列的方法处理客户机请求。
对于MMNC的管理,采用在服务器上集中管理的方式,分为两块:系统管理和用户管理。系统管理方面,“MMNC所使用的操作系统是经过定制的, 一方面裁减冗余功能,精简系统,以提高性能;另一方面禁掉系统攻击时常用到的一些协议(如ICMP、SNMP等)和系统相关服务, 以增强系统安全”。同时,“为保障系统的安全和稳定,我们将服务器上的系统数据区和用户数据区进行隔离,系统数据区对用户都是只读的,客户无权对系统数据区的数据进行修改”。用户管理包括用户增删、权限、磁盘配额、用户分组几方面,“用户数据区分为公有数据区和私有数据区,公有数据区为所有用户共享,私有数据区存放用户的私人信息. 各组分别享有自己的共享数据区, 组内用户又拥有自己的个人私有数据区.各个数据区根据用户角色和身份进行逻辑隔离”。
MMNC的硬件设计方面,仍然是一台无盘兼容PC机,只不过处理器不同。实施实例是在一台PC服务器上支持Win98、RedFlag 4.0两套系统的MMNC网络。
通读这篇论文,基本可以明确的是:
1、SOPCA平台即为一年后的透明计算;
2、VSSA即为一年后的VNSS;
3、MMNC使用了扩展的DHCP协议;
4、MMNC的启动流程与无盘工作站类似,但使用的具体协议不同。
增加的新问题是(接上顺序编号):
9、DHCP协议做了何种扩展;
10、主动程序传输协议APTP的实现细节是什么;
11、OS加载器和Multi-OS层是什么关系;
12、那个听上去非常高大上的VSSA真的是一种新算法吗。
可能因为对CNKI系统不熟悉的缘故,几次检索之后再没找到相关论文,小兵一度以为这些问题找不到答案了,对于透明计算到底是何的追问,也只能到此为止了。当小兵无聊地访问张教授清华大学的个人简历主页时,意外地迎来了柳暗花明。该主页显示,张教授申请的专利中有多项与上述问题相关,以申请日时间顺序排列分别是:
2001.09.07 张尧学,周悦芝,王勇,等。一种网络环境下的计算机远程启动方法。专利号: ZL01442033.2【5】
2002.05.22 张尧学,陈勐。一种由多台网络电脑组成的网络系统。专利号: ZL02117909.3【6】
2003.04.22 张尧学,周悦芝,彭玉坤。一种本地无操作系统的网络计算机。专利号: ZL03122022.3【7】
2004.07.09 张尧学,彭玉坤,周悦芝,等。一种共享资源访问的调度控制方法及装置。专利号: ZL200410062763.5【8】
2004.11.12 张尧学,徐广斌,郭关飞。网络计算机的协作式启动方法。专利号: ZL200410009789.3【9】
2005.01.07 张尧学,徐广斌,杨华杰,等。主从式网络计算机服务器群自组织方法。专利号: ZL200510011123.6【10】
2005.04.06 张尧学,徐广斌,周悦芝,等。基于透明计算的计算设备和方法。专利号: ZL200510063064.7【11】
2005.06.17 张尧学,匡文渊,韦理,等。基于本地无操作系统的网络计算机的预防病毒方法。专利号: ZL200510011956.2【12】
2005.8.26 张尧学,徐广斌,王晓辉,等。基于龙芯架构的透明计算设备的远程引导芯片及方法。专利号: ZL200510086290.7【13】
2006.05.18 张尧学,徐广斌,匡文渊,等。透明计算系统中端设备间数据的传送方法。专利号: ZL200610084757.9【14】
还有几项专利与软件构件有关,跟透明计算是否有联系,因跟本文想说明的问题关系不大,就不列了。
在【5】中,详细介绍了PXE(Preboot Execution Environment)启动流程,认为PXE的缺点是:使用TFTP协议传输文件不够安全,文件易被篡改;不但扩展了选项,还扩展了交互过程;不能让用户选择加载的操作系统。然后提出了MRBP和APTP协议的具体设计,并对RPL和PXE协议进行了比较。(注:PXE是INTEL公司1998年提出的远程启动技术,一般用于无盘工作站通过网卡ROM引导加载操作系统,支持Windows98;RPL(Remote Initial Program Load)是IBM公司1990年开发的无盘工作站引导技术,在1990时代应用广泛。)
专利说明书清晰描述了MRBP如何对DHCP协议进行扩展:针对DHCP协议的选项字段,自定义了138、139、140、141、142、143、165选项,以支持多操作系统加载和多播传输。同时清晰描述了APTP协议的具体内容:一种类似于TFTP基于UDP的传输协议,可选用文件名的MD5摘要作为传输文件的标识,支持多播。在引导的过程中,客户机通过扩展DHCP协议获得标识后,会下载一个脚本语言解释执行程序和脚本文件,“客户端通过对语言脚本的解释执行让用户选择需要加载的操作系统”。引导最终是通过在网卡上安装包含上述功能代码的ROM程序的方式实现。最后,专利说明了两个局限:1、不支持多DHCP服务器;2、系统内核需要限制在1M以内,WIN98太大,因此使用WIN98时,是加载DOS后通过DOS加载WIN98的。
通过【5】可以判断,张教授的团队确实做了以下工作:实现了MRBP协议和APTP协议;通过脚本让用户选择需使用的操作系统。这就解决了疑问1根据用户需求加载不同的操作系统的具体含义是什么、2MRBP协议的实现细节、9DHCP协议做了何种扩展、10主动程序传输协议APTP的实现细节是什么。但是这些工作是在已有标准的基础上进行的扩展,理论原创性并不高。DHCP协议128-255号选项后来做了规范【15】,其中138-143已被占用,特别是138选项被用于无线访问点协议的DHCP发现,即WIFI联网方面,导致这种扩展方案存在先天缺陷。1997年出台的RFC2090已描述了一种实验性的TFTP多播选项,虽然张教授的方法与之不同,但也提示支持多播传输并不是一种原创性方法。
文献【6】在历数了NC、NetPC、无盘工作站和Windows终端等方式的不足之后,描述了一种网络,该网络由启动服务器、文件服务器、代理服务器和无盘网络电脑组成。服务器操作系统可以是WindowsNT/2000、Linux或者Netware,无盘网络电脑的操作系统可以是Win9x或者Linux。启动服务器以只读方式存储网络电脑启动所需的操作系统内核文件,文件服务器存储操作系统内核以外的其他文件和应用程序,代理服务器用来连接互联网。该网络支持以太、SDSL和HomeDNA协议,可以通过网线或电话线组网。
在文献提供的实施例中,启动服务器安装Netware,文件和代理服务器安装WindowsNT/2000,“在本发明的系统应用中,为了完成多客户机的并发启动以及效率, 采用了NOVELL的RPL远程启动方式,因为NOVELL网络对文件的传输效益极高,从而解决了多用户并发启动的问题”。对于客户机使用Windows系统的情形,因为Windows的虚拟内存是本机磁盘,而客户机本身无硬盘,所以“采用了在网络服务器上虚拟磁盘”。
由于本专利在文献【5】描述的专利之后,原本以为会出现MRCP和APTP协议的身影,然而很遗憾,该文通篇所讲的与普通无盘工作站的工作方式没有明显差别。虽然文中提到了SDSL和HomeDNA协议,但这两个协议主要用途并不是远程引导,除了一副图,文中也没有描述如何使用这两个协议完成远程引导和系统加载。而所谓的“采用了在网络服务器上虚拟磁盘”,明眼人一看就知道只是简单的网络驱动器映射,这是所有无盘站系统的标准配置。这样就有一个大问题:一种早已普及的无盘工作站网络被包装成了一个新专利!
文献【7】在分析了NC、NetPC、无盘工作站和Windows终端等方式的种种不足之后,提出了“一种本地无操作系统的网络计算机,包括网络计算机主板及其相应的外部设备,所说 的主板包括低功耗CPU,内存及其它辅助芯片,其特征在于,所说的主板还包括一个储存有 实现远程启动协议代码用于操作系统远程加载的远程启动芯片,当操作系统远程加载后,再 利用网络文件系统、程序按需加载、分布式计算或终端技术之中的一种或多种技术访问存放 在服务器上的文件、程序或数据,实现传统PC的桌面功能”,“本发明不但能在网络计算机上真正实现PC的桌面应用,而且真正做到 了全面兼容不同的主流操作系统(Windows,Linux)”。
虽然文中再三强调此网络计算机与类似设备的不同,但文中举的五个例子,让人惊掉了大牙。
“实施例1:利用PXE远程启动协议,远程加载嵌入式Linux。
在本实施例中,将PXE(Preboot Execution Environment)远程启动协议代码存放在网络 计算机主板辅助芯片的BIOS芯片中形成扩展BIOS芯片。
服务器的操作系统为Redhat Linux7.3。在服务器上安装和配置动态主机配置协议 (Dynamic Host Configuration Protocol,DHCP)服务,小型文件传输协议(Trivial File Transfer Protocol,TFTP)服务以及PXE服务。并在服务器上放置相应的内核镜像和根文件系统镜像(其中包含相应的应用软件,比如RDP协议终端软件)。”
这是什么意思呢?通过固化了启动ROM的网卡引导Linux无盘工作站!
“实施例2利用Etherboot远程启动协议和NFS技术,远程加载Linux,在NC上实现Linux 桌面应用。
Etherboot是根据TCP/IP协议来实现对远程启动的支持的。它主要根据的协议是 RFC1531(Dynamic Host Configuration Protocol,DHCP)协议,RFC1350(The TFTP Protocol, TFTP)协议。本实施例在主板上设置一个独立ROM。该ROM中存放Etherboot远程启动协议的代码构成远程启动芯片。
本实施例中服务器采用的操作系统为Redhat Linux7.3。在服务器上安装和配置DHCP 服务,TFTP服务,NFS服务。”
这是什么意思呢?通过固化在主板上的启动ROM引导Linux无盘工作站。
“实施例3利用RPL远程启动协议远程引导DOS或Windows32,在NC上实现Windows2000 或XP终端功能。
在本实施例中,将RPL(Remote Program Load)远程启动协议代码存放在主板上一独立ROM 中构成远程启动芯片。
在服务器上安装RPL启动服务和MetaFrame终端服务。由于Windows2000服务器本身不 支持远程启动,本实施例将Windows NT4所带的远程启动服务安装到Windows2000服务器 上。”
这是什么意思呢?通过固化了启动ROM的网卡启动Windows无盘工作站,并通过MetaFrame软件实现Windows终端功能!
“实施例4利用PXE远程启动协议远程引导Windows98,并利用网络虚拟盘技术,在NC 上实现Windows桌面应用。
在本实施例中,将PXE远程启动协议代码存放在主板上一独立ROM中构成远程启动芯片。
服务器上安装Windows2000 Server。并在服务器上安装DHCP服务,PXE服务。本实施例中,在服务器上安装Intel PXE-PDK为NC提供基于PXE的远程启动服务(包括文件传输服 务)。
首先建立一样本NC,该NC具有硬盘接口并设置一个硬盘。按照常规方法在该NC上安装 Windows98系统和相关软件。此后,按照Litenet软件的要求进行设置并通过Litenet软件 将样本NC的Windows98安装上传到服务器并制作相应的启动镜像。
网络计算机启动后,利用PXE协议下载操作系统启动镜像并执行(此时为一个DOS环境), 然后再利用Net use命令将Windows2000 server的共享映射为相应的网络虚拟磁盘,为 Windows98提供文件存储服务。”
这是什么意思呢?通过固化在主板上的启动ROM引导Windows无盘工作站!而且这里明确指出了如何映射网络虚拟磁盘。
“实施例5利用“一种网络环境下的计算机远程启动方法”,在NC上实现动态加载多种 操作系统,从而支持更丰富的桌面应用。
本实施例中所采用的支持多操作系统启动的远程启动协议是“一种网络环境下的计算机 远程启动方法”(本申请人的申请专利,专利申请号为:01142033.2)。
本实施例在NC主板上设置一独立ROM,该ROM中存放远程启动协议代码构成远程启动芯片。
服务器上安装Linux Redhat7.3。在服务器上安装DHCP服务,为NC提供自动配置服务。 在服务器上安装并配置远程启动服务,为NC提供菜单选择、镜像下载服务等(参见专利 01142033.2)。并在服务器上安装和配置支持Linux运行的NFS服务以及支持Windows运行 的Samba服务。这两个服务为Linux和Windows的运行提供网络文件系统支持。
网络计算机启动后,首先从服务器上下载并执行一个脚本解释环境以及相应脚本,然后 根据用户要求下载相应的操作系统镜像并执行。此后,再利用网络文件系统(NFS,Samba) 为操作系统提供文件服务。为了实现应用的优化,使用程序按需加载技术来实现NC应用优 化,从而全面支持丰富的桌面应用。”
最后终于转到正题了。使用MRBP和APTP引导无盘网络计算机,通过Linux的NFS和Samba服务,为这两个系统的运行提供网络文件系统支持。
看到这里,对网络稍微了解的读者肯定都能明白,实施例1-4完全就是无盘工作站在不同系统下的使用方法【3】【16】,那实施例5说的是什么呢?结合文献【4】、【5】、【7】及他们的发布时间,可以推断,实施例5就是MMNC的使用案例。也就是说,MMNC通过一个额外的引导ROM启动后,通过菜单选择,下载相应的操作系统内核,使用常规网络文件系统访问磁盘上的共享文件。这就解释了疑问8:除了通用的部件外,MMNC有何专门的设计。
到这里,我们的问题还剩以下几个:
3、透明计算层的具体实现方式;
5、论文中没有具体陈述的Multi-OS层是什么东西;
6、用户和资源管理涉及哪些具体内容;
7、解决服务器增加存储容量问题时提到的并行计算是何种含义
11、OS加载器和Multi-OS层是什么关系;
12、那个听上去非常高大上的VSSA真的是一种新算法吗。
现在,我们来看看《透明计算》一文发表后,张教授等人于2005年4月申请的新专利“基于透明计算的计算设备和方法”【11】。该专利描述了:
“1、一种基于透明计算模式的计算设备,包括通过计算机网络连接的服务器和客户端,其 特征在于:客户端……没有硬盘,也不预置任何操作 系统,在主板上还带有一个远程启动芯片,其中存储了用于远程下载和加载操作系统的远程 启动协议代码,服务器上预置了各种启动支撑服务、各种操作系统镜像、应用程序、文档和 数据等资源,客户端和服务器根据以下步骤完成用户对计算的需求:
客户端加电后执行本机环境和网络初始化工作后,在CPU的控制下启动远程启动芯片被 检测到,开始网络启动过程;
远程启动芯片中的远程启动代码开始被执行,客户端在网络上进行广播;
服务器收到客户端的广播消息后向客户端发送响应消息,其中包括分配给客户端的网络 参数;
客户端向服务器请求下载操作系统选择菜单脚本程序;
服务器向客户端发送操作系统选择菜单脚本程序,其中带有自身所能提供的各种操作系 统镜像的描述;
客户端执行收到的操作系统选择菜单脚本程序,用户作出选择;
客户端向服务器发送下载所选的操作系统镜像的请求;
服务器向客户端传送其所需的操作系统镜像;
客户端接收操作系统镜像,并将其加载;
此后,客户端像普通PC那样完成用户发起的计算需求,计算在客户端本地进行,计算 过程中可从服务器上按需获取所需的程序、数据、文档等资源。
2、如权利要求1所述的计算设备,其特征在于:所述的启动支撑服务是NFS服务、PXE 服务、DHCP服务,TFTP服务、SAMBA服务。
3、如权利要求2所述的计算设备,其特征在于:所述客户端是网络计算机、PDA,家用 电器、或移动终端等。
4、如权利要求3所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个服务 器通过网络为客户端虚拟磁盘的客户端服务,服务器上也运行了一个相对应的虚拟磁盘的服 务器端服务,使得客户端上程序运行中和运行后所产生的任何数据都可被临时或永久地缓存 或存放于服务器的物理存储器中。”
“一种基于透明计算模式的计算设备的启动方法,该设备由通过计算机网络连接的服务 器和客户端构成,其特征在于:客户端不预置任何操作系统,服务器上存储了所有客户端启 动所需的操作系统和应用程序,当一请求客户端需要启动时使用包括以下步骤的方法完成启 动:
一、请求客户端被加电后在所述计算机网络上发出广播消息;
二、服务器收到请求客户端的广播消息,并向请求客户端发送回应消息,其中包括为请 求客户端分配的网络地址;
三、请求客户端收到回应消息,并向服务器发送下载操作系统请求,服务器收到该请求 后为请求客户端传输操作系统内核镜像;
四、请求客户端完成操作系统内核镜像下载并加载,启动文件请求侦听,向服务器发起 初始应用程序下载请求;
五、收到请求客户端的初始应用程序下载请求后,服务器根据本地保留的初始应用程序 文件在所有客户端上的分布信息,选择可为请求客户端传输这些文件的其他客户端作为指定 客户端,并告知请求客户端;
六、请求客户端和指定客户端之间建立连接并完成文件传输请求;
七、请求客户端向服务器发出更新消息告知服务器其本地已留存该文件;
八、每下载一个文件,请求客户端判断若属于一初始应用程序的所有文件均下载完则加 载该应用程序
九、若所有初始应用程序均已被加载,则请求客户端的启动完成。”
文中再次强调
“如图1,这种模式由服务器和客户机组成,在硬件系统上与传统的客户机/服务器相似。 所不同的是,在透明计算模式中,其客户机可以是多种不同的终端设备(PDA、移动终端、 家电等),与传统客户机/服务器等计算模式的另一个重要不同是,在其他任何计算模式中,每个不 同的计算设备都与一个特定的操作系统对应,这不仅是硬件设备的底层接口和操作系统内核 匹配的需要,也是迄今为止的传统模式;透明计算则使得用户可以透过一个设备去选择和使 用用户需要和喜欢的多个操作系统和应用程序,而且,这些操作系统和应用程序都不是固定 在该设备中,而是透过各种通信网络从存储有这些操作系统、工具和应用程序等的服务器中 下载得到。只要设备的硬件接口是支持这些操作系统的,用户就可根据需要动态下载和动态 安装这些操作系统、工具和应用程序等,并覆盖客户机中已有的系统和程序,从而大量节省 客户机的存储空间和计算时间。 透明计算的另一个长处是,它的服务器只用于各种资源的存储,而不从事应用计算。这减少了服务器的负载,提高了用户的响应速度。”
而图1就是本文开始部分画的框架图。文中并给出了五个实施例,这五个实施例与【7】中的实施例完全相同。也就是说,前边讨论的相关技术就是透明计算使用的技术。从而疑问3透明计算层的具体实现方式是什么也就清楚了,即:无盘工作站引导后,从服务器下载操作系统并运行。而所谓的Multi-OS层,就是通过菜单选择不同操作系统进行加载。那么OS加载器又是什么呢?无非是实现操作系统内核下载和执行的引导程序块。
既然以上的文献中多次强调客户端是包含PDA、家电及移动设备的,我们为什么敢断言上述的讨论就是透明计算的内容呢?很简单,在这些文献发布的时间点上,没有出现一个基于此类设备的实施例。
写到这里,对于透明计算是个什么东东,即便还有几个问题没彻底搞清,相信大家心中也基本有数了,但还不必这么早下结论。让我们看看这个专利具备哪些此前没有的新特性。
“可以看出的是,与传统的NC系统类似,在启动时上述MMNC系统的客户端完全依赖于 服务器:所有的客户端均要向服务器发送客户端启动的下载请求,并从服务器上下载操作系 统内核镜像和应用程序文件。服务器不仅要处理每个新收到的下载请求,并且要分配各种资源:内存,虚拟存储空间,I/O缓存,并占用CPU处理时间来进行文件的传输。
……
因此,本发明的另一方面提出了一种用于上述MMNC系统中客户端的协作式启动方法,它能缓解MMNC客户端对于服务器依赖过重、网络利用率不高、鲁棒性不佳的问题。
……
采用了这种客户端协作式启动方法的MMNC系统,在同等数量客户端成批启动时,服务器的负载明显降低,客户端的平均启动速度和网络利用率也得到较大提高,服务器具有更 好的鲁棒性”。
“上述的MMNC系统能提供很好的多媒体支持,具有高的可管理性,采用了客户端协作 式启动方法的MMNC系统又进一步提高了网络利用率、客户端启动速度和单服务器的负载 能力,但目前这两种系统基本上均基于一单服务器的系统结构,即由一个服务器为同网络上 的多个NC客户端同时服务,不仅系统的鲁棒性受制于该系统结构,更为关键的是:系统的 扩展性成为一个瓶颈。虽然一方面,服务器可以采用类似镜像的技术提高整个系统的鲁棒性 和容错性,避免由服务器故障造成整个系统无法使用的情况;另一方面,也可以通过提高服 务器硬件性能或改进服务器的运行算法来提高服务器整体性能和负载能力,但是却无法从根 本上突破系统的负载数量受单服务器结构限制的这个不足。事实上,我们发现在实际的应用 中,一台普通配置的PC服务器所能支持的客户端极难超过百台的限制,但在对MMNC系统 可能的应用场合进行需求分析后发现,许多NC系统的大中型应用对于客户端的需求数量都 要远高于这个限制。尽管我们可以采用静态划分客户端所属关系的方法,使用多个服务器分 别为各自所属部分客户端提供服务,但由于这种方法缺乏一个完整统一的架构,如何合理地 进行这种静态划分,在需求发生变化时如何调整划分等由静态划分所带来的一系列问题都将 成为棘手、却不得不解决的问题。另一方法是:采用高配置的高级专用服务器来满足大负载 数需求。这种方法将使得整个系统的造价将大幅提高,性价比大大降低。因此若能采用一个 完整、统一的多服务器的MMNC体系结构,使得多个普通PC服务器以群的方式动态、透明 地为客户端提供服务,则能在保留现有MMNC成本低、易管理、支持应用丰富等特点的情 况下,提供与服务器节点成正比的负载能力,同时拥有高的可用性、更好的系统可扩展性及 鲁棒性。
因此,本发明的另一方面还提供一种对MMNC服务器群的自组织方法,以为整个MMNC 系统提供更好的可扩展性和鲁棒性”。
专利文献【9】描述了协作式启动方法,【10】描述了服务器群的自组织方法。这两个方法对我们辨析透明计算的概念意义不大,但对我们的结论很重要,所以小兵不厌其烦地引用了大段文字。
故事应该是这样的
上述最后的大段引文将我们带回了20年前。那时候在需要电脑较多的场合,如相关专利和论文中都曾提到的多媒体教室,客户机多,服务器配置不高,学校等单位又没有足够的资金购置配置较高的电脑,系统管理也跟不上,无盘工作站就成了比较合适的选择。最初的无盘工作站只支持单一的系统,开机时因为各客户机争抢服务器资源和带宽,当一个网络里客户机过多时,系统效率会大大下降。
如何解决上述问题呢?
1990年代末期,PXE、Etherboot等技术逐渐成熟,Linux也能较好的支持多操作系统的引导了。虽然有这样的技术环境,但毕竟是新东西,国内掌握的人不是很多,大家也是在逐步摸索。同时,虽然这解决了多系统引导的问题,但并没有彻底解决资源争抢的问题。
这时候,以张尧学教授为首的团队也在研究这个问题。为了解决客户机过多导致的服务器过载问题,他们开发了“协作式启动方法”,一种类似P2P的技术。这种技术使得客户机在启动时互相传送已收到的文件,这就降低了对服务器的请求。即便如此,单一服务器支持的客户机还是难以超过百台,在大规模网络中,多服务还是很有必要的,所以有了“服务器群的自组织方法”。由于协作式启动方法涉及引导程序,通用的方法较难达到目标,对引导程序进行修改就是一种理所当然的思路。这些改进型技术随着开发的进展有了各种各样的称呼,但在2004年10月,张教授来了灵感,取了一个高大上的名字:“透明计算”。一种改进型的无盘工作站网络瞬时脱胎换骨,坐地成仙,张教授也与那些搞PXE、Etherboot的同行拉开了距离,自此走上了幸福的康庄大道。
后记
当我刚刚开始关注这个问题的时候,完全没想到这件事既非常简单又非常复杂。这篇文章够啰嗦、够长,可是看看题目,大家就应该知道,这里头的故事还多着呢,但精力有限,能不能继续写下去,也不好说。 一起来接我的棒吧。
参考文献:
【1】http://en.wikipedia.org/wiki/Router_(computing)
【2】《透明计算:概念、结构和示例》电子学报 2004年第12期,2004.10.30日收稿
【3】《etherboot无盘启动》2001.10.30 http://micro.ustc.edu.cn/Linux/text/wfg-etherboot.txt
【4】《可管理多媒体网络计算机》电子学报 2003年第12期,2003.09.30日收稿
【5】——【14】国家知识产权局专利检索数据库发明专利申请公开说明书
【15】http://www.networksorcery.com/enp/protocol/bootp/options.htm
【16】http://Fwww.macross7.info/members_space/fww8fb/Computer/PXE/13_263.doc 2001.2月左右
小兵张三:透明计算的前世今生——缘起
015年1月29日 墙外楼
起疑
听说2014年度国家自然科学一等奖没有空缺,先是高兴,毕竟这是代表国家实力的奖项,可看完新闻,感觉完全不是那么回事了:“网络路由器之父”、“颠覆冯·诺依曼体系”、“透明计算”这些大词以前怎么从来没听说过?
众所周知,路由器就是网络设备,不存在什么“网络路由器”,而路由器进入中国是以思科为代表的。查查维基百科【1】,多协议路由器首次出现于1981年的Stanford和MIT,发明人分别为William Yeager和Neol Chiappa,而作为路由器功能的设备,更可追溯到ARPANET建设时期的Interface Message Processor,跟中国真是扯不上半毛钱关系。
冯·诺依曼体系提出了“存储程序”的概念,是现代计算机的基础。用大白话来说就是,计算机由中央处理器(CPU)、存储器和输入输出设备三部分构成,程序加载存放于存储器之中,并通过CPU来执行。此体系的提出,是因为早期的计算机类似于现在的计算器,只能为单一的用途服务,而基于冯·诺依曼体系设计的计算机,可以通过编写不同的软件,让计算机具备多样的功能。多年来,有一些突破冯·诺依曼体系的尝试,都没有形成气候,要说颠覆,那估计也要等量子计算或DNA计算成熟以后了吧。
至于“透明计算”,恕我孤陋寡闻,此前从未听说。
由于对电脑还有点小兴趣,看完新闻后,赶紧找资料补课。这一补,有些东西就明白了。原来张尧学教授参与研制了最早的国产路由器桑达SED-08,而获奖材料里也没写“颠覆”。这是被媒体“捧杀”了。但是对于“透明计算”,还是不太明白是个什么东东。
没过两天,质疑的声音开始冒出来,尤其是知乎上有了不少讨论。有人认为透明计算是无盘工作站,有人认为透明计算跟云计算没什么关系,有人认为透明计算没有什么大的理论创新,总之一句话,“透明计算”与自然科学一等奖的要求是有差距的。然而正如方舟子所言,虽然有很多质疑,但没有系统性的分析。方舟子发出号召也有几天了,新语丝上仍然没有挂出相关文章。也许是知情者不愿意透露消息,也许是大牛们不屑于此,也许是从论文上看不出什么道道吧。总之,随着质疑的帖子陆续被删,这事估计又要像许多事情一样,慢慢地淡出公众的视线,仿佛从来没发生过一样。既然高手都不露面,小兵我就抛砖引玉,先放一枪吧。
查证
透明计算这个名词最早出自《电子学报》2004年第12期刊登的论文《透明计算:概念、结构和示例》【2】(以下简称《透明计算》),该文只有一名作者:清华大学计算机系教授张尧学。透明计算被定义为:“一种用户无需感知计算机操作系统、 支撑工具以及应用程序的所在, 并能根据自己的需求,从所使用的各种设备( 包括固定和移动以及家庭的各类设备)中找到相关计算服务, 而这些服务又是存储于位于分布式网络的服务器中的计算模式.用户使用的设备( 统称为客户机)与服务器之间的连接依靠内部的通信协议完成.”在与普通的客户/服务器模式的比较中,张教授强调了透明计算体系的几个主要优点,归纳如下:
1、透明计算的客户机多样化,可以是PC、NC、PDA,甚至是数字家电;
2、透明计算的客户机不预装任何操作系统和应用程序
3、透明计算可根据用户的需求加载不同的操作系统和应用程序;
4、透明计算的服务器只用于资源的存储,不用于计算;
5、基于以上的特点,对于服务器和客户机的配置要求都不高;
6、基于2-4,系统的整体安全性更高;
由上我们可以判断:早在1990年代就大行其道的无盘工作站网络完全具备上述2、4、5、6的特点;无盘站系统也可以根据菜单选择不同的操作系统【3】,从字面上来说,部分具备特点3;无盘站系统不支持1所说的PDA和数字家电。
文中给出的透明计算体系结构如下:
+————-+
|应用计算层| +————–+
+————-+ | |
| |虚拟OS和 |
+————-+ |应用计算层|
|Multi-OS层| | |
+————-+ +————-+
| |
+————-+ +————-+
|透明计算层| |透明计算层|
+————-+ +————-+
| |
+————-+ +————-+
|物理驱动层| |物理驱动层|
+————-+ +————-+
| |
+——————–+
服务器端 客户机端
并强调:
1、物理层“对应于无所不在的通信”,可以支持有线、无线各种方式的网络连接,以太网、红外、蓝牙、有线电视无所不包。
2、多操作系统启动协议MRBP完成客户机启动,并下载操作系统内核镜像。
3、通过虚拟网络交换与调度技术VNSS,客户机可以使用服务器上的文件及应用程序。
4、使用优先级管理用户请求。
5、服务器管理用户资源和用户权限。
6、使用并行计算技术,解决服务器增加存储容量的问题。
文中还给出了一个透明计算系统的实例:可管理的多媒体网络计算机(MMNC)系统。从描述上看,MMNC是一种基于Cyrix处理器的兼容无盘电脑。按文中的图例,一个局域网内有一台Windows服务器、一台Linux服务器和若干台MMNC。MMNC启动后,用户可以选择使用Windows系统或Linux系统,并可使用各种应用软件。同时强调,多个MMNC用户可共享使用单机版软件。文章最后给出了一个MMNC系统的测试报告,一方面“证明”该系统运行软件的广泛性,一方面“证明”系统的高性能。
从MMNC系统的实例来看,这个系统跟基于无盘工作站的网络没有本质上的差别,但从体系结构来看,跟无盘工作站技术又似乎不太一样。为一探透明计算的究竟,必须解释清楚如下几个问题:
1、根据用户需求加载不同的操作系统的具体含义是什么;
2、MRBP协议的实现细节;
3、透明计算层的具体实现方式;
4、VNSS是一种什么样的技术;
5、论文中没有具体陈述的Multi-OS层是什么东西;
6、用户和资源管理涉及哪些具体内容;
7、解决服务器增加存储容量问题时提到的并行计算是何种含义
8、除了通用的部件外,MMNC有何专门的设计。
为解答上述问题,首先想到的是看看张教授此前发表的论文。CNKI查询结果显示,在这篇文章之前,张尧学教授等人只在2013年发表过一篇与此相关的文章,这就是《可管理多媒体网络计算机》【4】。该文的引言中对网络计算机NC、NetPC、无盘工作站和Windows终端(WBT)的缺点进行了分析,然后介绍了一种基于普适计算的MMNC系统,并为这一系统提出了前述MRBP协议和一种基于网络的虚拟交换和调度算法VSSA。MMNC系统设计所遵循的普适计算平台称为SOPCA(Software Platform for Connected Appliances)。
在此文中,MMNC客户机由SOPCA boot Agent、MMNC OS、SOPCA Platform、Application四层体系构成,服务器由General OS、SOPCA Platform、服务程序三层体系构成。MRBP在启动代理Boot Agent中实现,启动代理主要由四部分组成:网卡驱动及相关协议; 扩展的DHCP 客户端代码; APTP 客户端代码; OS加载器。网卡驱动及协议为远程启动提供通讯支持;DHCP协议做了扩展,增加防干扰的鉴别选项和多播支持;主动程序传输协议(APTP)采用MD5摘要的方式来“命名”程序,并支持多播,以降低并发启动时对网络的冲击;MRBP获得系统镜像后,OS加载器负责加载并转移控制权。为支持多种操作系统的加载,还设计了一种解释型脚本语言,通过使用该语言编写的脚本与用户交互。
文中详细介绍了VSSA,从描述中可以看出,这就是《透明计算》一文中所说的VNSS。从文中的表述看,该算法实现的功能是:
1、因客户机无硬盘,进程执行过程中,如所需的数据或指令页面不在物理
内存中,按照一定算法从通过网络映射的位于服务器上的存储中调用信息;
2、多个客户机可以映射服务器上的同一拷贝,达到共享单机版软件的目的;
3、为解决共享拷贝写访问冲突,采用写拷贝技术,在MMNC的“物理内存”中分配一块新的物理空间,复制相应数据,断开此前的网络映射关系,对本地拷贝进行改写。
4、为应对多客户机共享访问造成的大量并发请求,采用缓存和优先队列的方法处理客户机请求。
对于MMNC的管理,采用在服务器上集中管理的方式,分为两块:系统管理和用户管理。系统管理方面,“MMNC所使用的操作系统是经过定制的, 一方面裁减冗余功能,精简系统,以提高性能;另一方面禁掉系统攻击时常用到的一些协议(如ICMP、SNMP等)和系统相关服务, 以增强系统安全”。同时,“为保障系统的安全和稳定,我们将服务器上的系统数据区和用户数据区进行隔离,系统数据区对用户都是只读的,客户无权对系统数据区的数据进行修改”。用户管理包括用户增删、权限、磁盘配额、用户分组几方面,“用户数据区分为公有数据区和私有数据区,公有数据区为所有用户共享,私有数据区存放用户的私人信息. 各组分别享有自己的共享数据区, 组内用户又拥有自己的个人私有数据区.各个数据区根据用户角色和身份进行逻辑隔离”。
MMNC的硬件设计方面,仍然是一台无盘兼容PC机,只不过处理器不同。实施实例是在一台PC服务器上支持Win98、RedFlag 4.0两套系统的MMNC网络。
通读这篇论文,基本可以明确的是:
1、SOPCA平台即为一年后的透明计算;
2、VSSA即为一年后的VNSS;
3、MMNC使用了扩展的DHCP协议;
4、MMNC的启动流程与无盘工作站类似,但使用的具体协议不同。
增加的新问题是(接上顺序编号):
9、DHCP协议做了何种扩展;
10、主动程序传输协议APTP的实现细节是什么;
11、OS加载器和Multi-OS层是什么关系;
12、那个听上去非常高大上的VSSA真的是一种新算法吗。
可能因为对CNKI系统不熟悉的缘故,几次检索之后再没找到相关论文,小兵一度以为这些问题找不到答案了,对于透明计算到底是何的追问,也只能到此为止了。当小兵无聊地访问张教授清华大学的个人简历主页时,意外地迎来了柳暗花明。该主页显示,张教授申请的专利中有多项与上述问题相关,以申请日时间顺序排列分别是:
2001.09.07 张尧学,周悦芝,王勇,等。一种网络环境下的计算机远程启动方法。专利号: ZL01442033.2【5】
2002.05.22 张尧学,陈勐。一种由多台网络电脑组成的网络系统。专利号: ZL02117909.3【6】
2003.04.22 张尧学,周悦芝,彭玉坤。一种本地无操作系统的网络计算机。专利号: ZL03122022.3【7】
2004.07.09 张尧学,彭玉坤,周悦芝,等。一种共享资源访问的调度控制方法及装置。专利号: ZL200410062763.5【8】
2004.11.12 张尧学,徐广斌,郭关飞。网络计算机的协作式启动方法。专利号: ZL200410009789.3【9】
2005.01.07 张尧学,徐广斌,杨华杰,等。主从式网络计算机服务器群自组织方法。专利号: ZL200510011123.6【10】
2005.04.06 张尧学,徐广斌,周悦芝,等。基于透明计算的计算设备和方法。专利号: ZL200510063064.7【11】
2005.06.17 张尧学,匡文渊,韦理,等。基于本地无操作系统的网络计算机的预防病毒方法。专利号: ZL200510011956.2【12】
2005.8.26 张尧学,徐广斌,王晓辉,等。基于龙芯架构的透明计算设备的远程引导芯片及方法。专利号: ZL200510086290.7【13】
2006.05.18 张尧学,徐广斌,匡文渊,等。透明计算系统中端设备间数据的传送方法。专利号: ZL200610084757.9【14】
还有几项专利与软件构件有关,跟透明计算是否有联系,因跟本文想说明的问题关系不大,就不列了。
在【5】中,详细介绍了PXE(Preboot Execution Environment)启动流程,认为PXE的缺点是:使用TFTP协议传输文件不够安全,文件易被篡改;不但扩展了选项,还扩展了交互过程;不能让用户选择加载的操作系统。然后提出了MRBP和APTP协议的具体设计,并对RPL和PXE协议进行了比较。(注:PXE是INTEL公司1998年提出的远程启动技术,一般用于无盘工作站通过网卡ROM引导加载操作系统,支持Windows98;RPL(Remote Initial Program Load)是IBM公司1990年开发的无盘工作站引导技术,在1990时代应用广泛。)
专利说明书清晰描述了MRBP如何对DHCP协议进行扩展:针对DHCP协议的选项字段,自定义了138、139、140、141、142、143、165选项,以支持多操作系统加载和多播传输。同时清晰描述了APTP协议的具体内容:一种类似于TFTP基于UDP的传输协议,可选用文件名的MD5摘要作为传输文件的标识,支持多播。在引导的过程中,客户机通过扩展DHCP协议获得标识后,会下载一个脚本语言解释执行程序和脚本文件,“客户端通过对语言脚本的解释执行让用户选择需要加载的操作系统”。引导最终是通过在网卡上安装包含上述功能代码的ROM程序的方式实现。最后,专利说明了两个局限:1、不支持多DHCP服务器;2、系统内核需要限制在1M以内,WIN98太大,因此使用WIN98时,是加载DOS后通过DOS加载WIN98的。
通过【5】可以判断,张教授的团队确实做了以下工作:实现了MRBP协议和APTP协议;通过脚本让用户选择需使用的操作系统。这就解决了疑问1根据用户需求加载不同的操作系统的具体含义是什么、2MRBP协议的实现细节、9DHCP协议做了何种扩展、10主动程序传输协议APTP的实现细节是什么。但是这些工作是在已有标准的基础上进行的扩展,理论原创性并不高。DHCP协议128-255号选项后来做了规范【15】,其中138-143已被占用,特别是138选项被用于无线访问点协议的DHCP发现,即WIFI联网方面,导致这种扩展方案存在先天缺陷。1997年出台的RFC2090已描述了一种实验性的TFTP多播选项,虽然张教授的方法与之不同,但也提示支持多播传输并不是一种原创性方法。
文献【6】在历数了NC、NetPC、无盘工作站和Windows终端等方式的不足之后,描述了一种网络,该网络由启动服务器、文件服务器、代理服务器和无盘网络电脑组成。服务器操作系统可以是WindowsNT/2000、Linux或者Netware,无盘网络电脑的操作系统可以是Win9x或者Linux。启动服务器以只读方式存储网络电脑启动所需的操作系统内核文件,文件服务器存储操作系统内核以外的其他文件和应用程序,代理服务器用来连接互联网。该网络支持以太、SDSL和HomeDNA协议,可以通过网线或电话线组网。
在文献提供的实施例中,启动服务器安装Netware,文件和代理服务器安装WindowsNT/2000,“在本发明的系统应用中,为了完成多客户机的并发启动以及效率, 采用了NOVELL的RPL远程启动方式,因为NOVELL网络对文件的传输效益极高,从而解决了多用户并发启动的问题”。对于客户机使用Windows系统的情形,因为Windows的虚拟内存是本机磁盘,而客户机本身无硬盘,所以“采用了在网络服务器上虚拟磁盘”。
由于本专利在文献【5】描述的专利之后,原本以为会出现MRCP和APTP协议的身影,然而很遗憾,该文通篇所讲的与普通无盘工作站的工作方式没有明显差别。虽然文中提到了SDSL和HomeDNA协议,但这两个协议主要用途并不是远程引导,除了一副图,文中也没有描述如何使用这两个协议完成远程引导和系统加载。而所谓的“采用了在网络服务器上虚拟磁盘”,明眼人一看就知道只是简单的网络驱动器映射,这是所有无盘站系统的标准配置。这样就有一个大问题:一种早已普及的无盘工作站网络被包装成了一个新专利!
文献【7】在分析了NC、NetPC、无盘工作站和Windows终端等方式的种种不足之后,提出了“一种本地无操作系统的网络计算机,包括网络计算机主板及其相应的外部设备,所说 的主板包括低功耗CPU,内存及其它辅助芯片,其特征在于,所说的主板还包括一个储存有 实现远程启动协议代码用于操作系统远程加载的远程启动芯片,当操作系统远程加载后,再 利用网络文件系统、程序按需加载、分布式计算或终端技术之中的一种或多种技术访问存放 在服务器上的文件、程序或数据,实现传统PC的桌面功能”,“本发明不但能在网络计算机上真正实现PC的桌面应用,而且真正做到 了全面兼容不同的主流操作系统(Windows,Linux)”。
虽然文中再三强调此网络计算机与类似设备的不同,但文中举的五个例子,让人惊掉了大牙。
“实施例1:利用PXE远程启动协议,远程加载嵌入式Linux。
在本实施例中,将PXE(Preboot Execution Environment)远程启动协议代码存放在网络 计算机主板辅助芯片的BIOS芯片中形成扩展BIOS芯片。
服务器的操作系统为Redhat Linux7.3。在服务器上安装和配置动态主机配置协议 (Dynamic Host Configuration Protocol,DHCP)服务,小型文件传输协议(Trivial File Transfer Protocol,TFTP)服务以及PXE服务。并在服务器上放置相应的内核镜像和根文件系统镜像(其中包含相应的应用软件,比如RDP协议终端软件)。”
这是什么意思呢?通过固化了启动ROM的网卡引导Linux无盘工作站!
“实施例2利用Etherboot远程启动协议和NFS技术,远程加载Linux,在NC上实现Linux 桌面应用。
Etherboot是根据TCP/IP协议来实现对远程启动的支持的。它主要根据的协议是 RFC1531(Dynamic Host Configuration Protocol,DHCP)协议,RFC1350(The TFTP Protocol, TFTP)协议。本实施例在主板上设置一个独立ROM。该ROM中存放Etherboot远程启动协议的代码构成远程启动芯片。
本实施例中服务器采用的操作系统为Redhat Linux7.3。在服务器上安装和配置DHCP 服务,TFTP服务,NFS服务。”
这是什么意思呢?通过固化在主板上的启动ROM引导Linux无盘工作站。
“实施例3利用RPL远程启动协议远程引导DOS或Windows32,在NC上实现Windows2000 或XP终端功能。
在本实施例中,将RPL(Remote Program Load)远程启动协议代码存放在主板上一独立ROM 中构成远程启动芯片。
在服务器上安装RPL启动服务和MetaFrame终端服务。由于Windows2000服务器本身不 支持远程启动,本实施例将Windows NT4所带的远程启动服务安装到Windows2000服务器 上。”
这是什么意思呢?通过固化了启动ROM的网卡启动Windows无盘工作站,并通过MetaFrame软件实现Windows终端功能!
“实施例4利用PXE远程启动协议远程引导Windows98,并利用网络虚拟盘技术,在NC 上实现Windows桌面应用。
在本实施例中,将PXE远程启动协议代码存放在主板上一独立ROM中构成远程启动芯片。
服务器上安装Windows2000 Server。并在服务器上安装DHCP服务,PXE服务。本实施例中,在服务器上安装Intel PXE-PDK为NC提供基于PXE的远程启动服务(包括文件传输服 务)。
首先建立一样本NC,该NC具有硬盘接口并设置一个硬盘。按照常规方法在该NC上安装 Windows98系统和相关软件。此后,按照Litenet软件的要求进行设置并通过Litenet软件 将样本NC的Windows98安装上传到服务器并制作相应的启动镜像。
网络计算机启动后,利用PXE协议下载操作系统启动镜像并执行(此时为一个DOS环境), 然后再利用Net use命令将Windows2000 server的共享映射为相应的网络虚拟磁盘,为 Windows98提供文件存储服务。”
这是什么意思呢?通过固化在主板上的启动ROM引导Windows无盘工作站!而且这里明确指出了如何映射网络虚拟磁盘。
“实施例5利用“一种网络环境下的计算机远程启动方法”,在NC上实现动态加载多种 操作系统,从而支持更丰富的桌面应用。
本实施例中所采用的支持多操作系统启动的远程启动协议是“一种网络环境下的计算机 远程启动方法”(本申请人的申请专利,专利申请号为:01142033.2)。
本实施例在NC主板上设置一独立ROM,该ROM中存放远程启动协议代码构成远程启动芯片。
服务器上安装Linux Redhat7.3。在服务器上安装DHCP服务,为NC提供自动配置服务。 在服务器上安装并配置远程启动服务,为NC提供菜单选择、镜像下载服务等(参见专利 01142033.2)。并在服务器上安装和配置支持Linux运行的NFS服务以及支持Windows运行 的Samba服务。这两个服务为Linux和Windows的运行提供网络文件系统支持。
网络计算机启动后,首先从服务器上下载并执行一个脚本解释环境以及相应脚本,然后 根据用户要求下载相应的操作系统镜像并执行。此后,再利用网络文件系统(NFS,Samba) 为操作系统提供文件服务。为了实现应用的优化,使用程序按需加载技术来实现NC应用优 化,从而全面支持丰富的桌面应用。”
最后终于转到正题了。使用MRBP和APTP引导无盘网络计算机,通过Linux的NFS和Samba服务,为这两个系统的运行提供网络文件系统支持。
看到这里,对网络稍微了解的读者肯定都能明白,实施例1-4完全就是无盘工作站在不同系统下的使用方法【3】【16】,那实施例5说的是什么呢?结合文献【4】、【5】、【7】及他们的发布时间,可以推断,实施例5就是MMNC的使用案例。也就是说,MMNC通过一个额外的引导ROM启动后,通过菜单选择,下载相应的操作系统内核,使用常规网络文件系统访问磁盘上的共享文件。这就解释了疑问8:除了通用的部件外,MMNC有何专门的设计。
到这里,我们的问题还剩以下几个:
3、透明计算层的具体实现方式;
5、论文中没有具体陈述的Multi-OS层是什么东西;
6、用户和资源管理涉及哪些具体内容;
7、解决服务器增加存储容量问题时提到的并行计算是何种含义
11、OS加载器和Multi-OS层是什么关系;
12、那个听上去非常高大上的VSSA真的是一种新算法吗。
现在,我们来看看《透明计算》一文发表后,张教授等人于2005年4月申请的新专利“基于透明计算的计算设备和方法”【11】。该专利描述了:
“1、一种基于透明计算模式的计算设备,包括通过计算机网络连接的服务器和客户端,其 特征在于:客户端……没有硬盘,也不预置任何操作 系统,在主板上还带有一个远程启动芯片,其中存储了用于远程下载和加载操作系统的远程 启动协议代码,服务器上预置了各种启动支撑服务、各种操作系统镜像、应用程序、文档和 数据等资源,客户端和服务器根据以下步骤完成用户对计算的需求:
客户端加电后执行本机环境和网络初始化工作后,在CPU的控制下启动远程启动芯片被 检测到,开始网络启动过程;
远程启动芯片中的远程启动代码开始被执行,客户端在网络上进行广播;
服务器收到客户端的广播消息后向客户端发送响应消息,其中包括分配给客户端的网络 参数;
客户端向服务器请求下载操作系统选择菜单脚本程序;
服务器向客户端发送操作系统选择菜单脚本程序,其中带有自身所能提供的各种操作系 统镜像的描述;
客户端执行收到的操作系统选择菜单脚本程序,用户作出选择;
客户端向服务器发送下载所选的操作系统镜像的请求;
服务器向客户端传送其所需的操作系统镜像;
客户端接收操作系统镜像,并将其加载;
此后,客户端像普通PC那样完成用户发起的计算需求,计算在客户端本地进行,计算 过程中可从服务器上按需获取所需的程序、数据、文档等资源。
2、如权利要求1所述的计算设备,其特征在于:所述的启动支撑服务是NFS服务、PXE 服务、DHCP服务,TFTP服务、SAMBA服务。
3、如权利要求2所述的计算设备,其特征在于:所述客户端是网络计算机、PDA,家用 电器、或移动终端等。
4、如权利要求3所述的计算设备,其特征在于:所述的操作系统镜像中预置了一个服务 器通过网络为客户端虚拟磁盘的客户端服务,服务器上也运行了一个相对应的虚拟磁盘的服 务器端服务,使得客户端上程序运行中和运行后所产生的任何数据都可被临时或永久地缓存 或存放于服务器的物理存储器中。”
“一种基于透明计算模式的计算设备的启动方法,该设备由通过计算机网络连接的服务 器和客户端构成,其特征在于:客户端不预置任何操作系统,服务器上存储了所有客户端启 动所需的操作系统和应用程序,当一请求客户端需要启动时使用包括以下步骤的方法完成启 动:
一、请求客户端被加电后在所述计算机网络上发出广播消息;
二、服务器收到请求客户端的广播消息,并向请求客户端发送回应消息,其中包括为请 求客户端分配的网络地址;
三、请求客户端收到回应消息,并向服务器发送下载操作系统请求,服务器收到该请求 后为请求客户端传输操作系统内核镜像;
四、请求客户端完成操作系统内核镜像下载并加载,启动文件请求侦听,向服务器发起 初始应用程序下载请求;
五、收到请求客户端的初始应用程序下载请求后,服务器根据本地保留的初始应用程序 文件在所有客户端上的分布信息,选择可为请求客户端传输这些文件的其他客户端作为指定 客户端,并告知请求客户端;
六、请求客户端和指定客户端之间建立连接并完成文件传输请求;
七、请求客户端向服务器发出更新消息告知服务器其本地已留存该文件;
八、每下载一个文件,请求客户端判断若属于一初始应用程序的所有文件均下载完则加 载该应用程序
九、若所有初始应用程序均已被加载,则请求客户端的启动完成。”
文中再次强调
“如图1,这种模式由服务器和客户机组成,在硬件系统上与传统的客户机/服务器相似。 所不同的是,在透明计算模式中,其客户机可以是多种不同的终端设备(PDA、移动终端、 家电等),与传统客户机/服务器等计算模式的另一个重要不同是,在其他任何计算模式中,每个不 同的计算设备都与一个特定的操作系统对应,这不仅是硬件设备的底层接口和操作系统内核 匹配的需要,也是迄今为止的传统模式;透明计算则使得用户可以透过一个设备去选择和使 用用户需要和喜欢的多个操作系统和应用程序,而且,这些操作系统和应用程序都不是固定 在该设备中,而是透过各种通信网络从存储有这些操作系统、工具和应用程序等的服务器中 下载得到。只要设备的硬件接口是支持这些操作系统的,用户就可根据需要动态下载和动态 安装这些操作系统、工具和应用程序等,并覆盖客户机中已有的系统和程序,从而大量节省 客户机的存储空间和计算时间。 透明计算的另一个长处是,它的服务器只用于各种资源的存储,而不从事应用计算。这减少了服务器的负载,提高了用户的响应速度。”
而图1就是本文开始部分画的框架图。文中并给出了五个实施例,这五个实施例与【7】中的实施例完全相同。也就是说,前边讨论的相关技术就是透明计算使用的技术。从而疑问3透明计算层的具体实现方式是什么也就清楚了,即:无盘工作站引导后,从服务器下载操作系统并运行。而所谓的Multi-OS层,就是通过菜单选择不同操作系统进行加载。那么OS加载器又是什么呢?无非是实现操作系统内核下载和执行的引导程序块。
既然以上的文献中多次强调客户端是包含PDA、家电及移动设备的,我们为什么敢断言上述的讨论就是透明计算的内容呢?很简单,在这些文献发布的时间点上,没有出现一个基于此类设备的实施例。
写到这里,对于透明计算是个什么东东,即便还有几个问题没彻底搞清,相信大家心中也基本有数了,但还不必这么早下结论。让我们看看这个专利具备哪些此前没有的新特性。
“可以看出的是,与传统的NC系统类似,在启动时上述MMNC系统的客户端完全依赖于 服务器:所有的客户端均要向服务器发送客户端启动的下载请求,并从服务器上下载操作系 统内核镜像和应用程序文件。服务器不仅要处理每个新收到的下载请求,并且要分配各种资源:内存,虚拟存储空间,I/O缓存,并占用CPU处理时间来进行文件的传输。
……
因此,本发明的另一方面提出了一种用于上述MMNC系统中客户端的协作式启动方法,它能缓解MMNC客户端对于服务器依赖过重、网络利用率不高、鲁棒性不佳的问题。
……
采用了这种客户端协作式启动方法的MMNC系统,在同等数量客户端成批启动时,服务器的负载明显降低,客户端的平均启动速度和网络利用率也得到较大提高,服务器具有更 好的鲁棒性”。
“上述的MMNC系统能提供很好的多媒体支持,具有高的可管理性,采用了客户端协作 式启动方法的MMNC系统又进一步提高了网络利用率、客户端启动速度和单服务器的负载 能力,但目前这两种系统基本上均基于一单服务器的系统结构,即由一个服务器为同网络上 的多个NC客户端同时服务,不仅系统的鲁棒性受制于该系统结构,更为关键的是:系统的 扩展性成为一个瓶颈。虽然一方面,服务器可以采用类似镜像的技术提高整个系统的鲁棒性 和容错性,避免由服务器故障造成整个系统无法使用的情况;另一方面,也可以通过提高服 务器硬件性能或改进服务器的运行算法来提高服务器整体性能和负载能力,但是却无法从根 本上突破系统的负载数量受单服务器结构限制的这个不足。事实上,我们发现在实际的应用 中,一台普通配置的PC服务器所能支持的客户端极难超过百台的限制,但在对MMNC系统 可能的应用场合进行需求分析后发现,许多NC系统的大中型应用对于客户端的需求数量都 要远高于这个限制。尽管我们可以采用静态划分客户端所属关系的方法,使用多个服务器分 别为各自所属部分客户端提供服务,但由于这种方法缺乏一个完整统一的架构,如何合理地 进行这种静态划分,在需求发生变化时如何调整划分等由静态划分所带来的一系列问题都将 成为棘手、却不得不解决的问题。另一方法是:采用高配置的高级专用服务器来满足大负载 数需求。这种方法将使得整个系统的造价将大幅提高,性价比大大降低。因此若能采用一个 完整、统一的多服务器的MMNC体系结构,使得多个普通PC服务器以群的方式动态、透明 地为客户端提供服务,则能在保留现有MMNC成本低、易管理、支持应用丰富等特点的情 况下,提供与服务器节点成正比的负载能力,同时拥有高的可用性、更好的系统可扩展性及 鲁棒性。
因此,本发明的另一方面还提供一种对MMNC服务器群的自组织方法,以为整个MMNC 系统提供更好的可扩展性和鲁棒性”。
专利文献【9】描述了协作式启动方法,【10】描述了服务器群的自组织方法。这两个方法对我们辨析透明计算的概念意义不大,但对我们的结论很重要,所以小兵不厌其烦地引用了大段文字。
故事应该是这样的
上述最后的大段引文将我们带回了20年前。那时候在需要电脑较多的场合,如相关专利和论文中都曾提到的多媒体教室,客户机多,服务器配置不高,学校等单位又没有足够的资金购置配置较高的电脑,系统管理也跟不上,无盘工作站就成了比较合适的选择。最初的无盘工作站只支持单一的系统,开机时因为各客户机争抢服务器资源和带宽,当一个网络里客户机过多时,系统效率会大大下降。
如何解决上述问题呢?
1990年代末期,PXE、Etherboot等技术逐渐成熟,Linux也能较好的支持多操作系统的引导了。虽然有这样的技术环境,但毕竟是新东西,国内掌握的人不是很多,大家也是在逐步摸索。同时,虽然这解决了多系统引导的问题,但并没有彻底解决资源争抢的问题。
这时候,以张尧学教授为首的团队也在研究这个问题。为了解决客户机过多导致的服务器过载问题,他们开发了“协作式启动方法”,一种类似P2P的技术。这种技术使得客户机在启动时互相传送已收到的文件,这就降低了对服务器的请求。即便如此,单一服务器支持的客户机还是难以超过百台,在大规模网络中,多服务还是很有必要的,所以有了“服务器群的自组织方法”。由于协作式启动方法涉及引导程序,通用的方法较难达到目标,对引导程序进行修改就是一种理所当然的思路。这些改进型技术随着开发的进展有了各种各样的称呼,但在2004年10月,张教授来了灵感,取了一个高大上的名字:“透明计算”。一种改进型的无盘工作站网络瞬时脱胎换骨,坐地成仙,张教授也与那些搞PXE、Etherboot的同行拉开了距离,自此走上了幸福的康庄大道。
后记
当我刚刚开始关注这个问题的时候,完全没想到这件事既非常简单又非常复杂。这篇文章够啰嗦、够长,可是看看题目,大家就应该知道,这里头的故事还多着呢,但精力有限,能不能继续写下去,也不好说。 一起来接我的棒吧。
参考文献:
【1】http://en.wikipedia.org/wiki/Router_(computing)
【2】《透明计算:概念、结构和示例》电子学报 2004年第12期,2004.10.30日收稿
【3】《etherboot无盘启动》2001.10.30 http://micro.ustc.edu.cn/Linux/text/wfg-etherboot.txt
【4】《可管理多媒体网络计算机》电子学报 2003年第12期,2003.09.30日收稿
【5】——【14】国家知识产权局专利检索数据库发明专利申请公开说明书
【15】http://www.networksorcery.com/enp/protocol/bootp/options.htm
【16】http://Fwww.macross7.info/members_space/fww8fb/Computer/PXE/13_263.doc 2001.2月左右
最后编辑: