全世界是台电脑(3-3)

全世界是台電腦(3/3)

横跨在网际网路上的作业系统,让人亲炙全球数百万台个人电脑连结后的威力。

(续前文)

基本架构

关于ISOS的设计,我们提倡两个基本原则:最小的作业系统核心,以及由中央伺服器发号司令。只提供核心功能的电脑作业系统称为微核心。较高阶的功能则以使用者程式的型式建立在微核心之上,这样一来,能让除错与置换的工作更容易进行。这个方式首见于学术研究系统,并影响了某些商业系统,像是视窗NT。不过,最有名的作业系统都不是微核心。

ISOS具备的核心功能包括资源分配(主机处理能力与储存空间的长期安排)、排程(透过系统与个别主机将工作放进序列)、资源使用状况的统计,以及分发和执行应用程式等基本机制。ISOS应该和主机上执行的个别作业系统,扮演不同的角色。

ISOS提供者所操作的伺服器负责协调系统的所有动作,这些提供者有可能是政府赞助的组织,或是买卖资源的主要公司所组成的协会(虽然可以有多家ISOS提供者进行竞争,不过为了简化起见,我们假设只有一家提供者)。集中式不利于某些点对点系统中盛行的平等主义,不过我们需要中央伺服器来确保某些敏感资料的私密性,像是会计资料以及其他关于资源主机的资讯。表面上,集中式需要的控制系统,会因为连结ISOS主机的数目增加而变得过于庞大笨拙,而且随时会面临因无法联繫而系统阻塞的瓶颈。不过这样的忧虑是毫无事实根据的:具备合理数目的伺服器,就能轻易储存所有连网主机的相关资讯,并定期与这些主机沟通。举例来说,Napster只用了一台中央伺服器,就能处理高达6000万个用户。伺服器丛可随时扩充,而且即使伺服器短暂失去联络,大部份的ISOS线上服务仍能持续运作。

全世界是台电脑(3/3)

ISOS伺服器丛会维护存有资源描述、使用政策以及任务性质的资料库。举例而言,资源描述包括:主机的作业系统、处理器款式与速度、所有与可用的磁碟空间、记忆体容量、网路连线的性能统计,以及开机与连线时间的统计数据。使用政策则详加说明了所有者指定的资源使用规则。任务性质则包括指派给线上服务的资源,以及资料处理任务的工作顺序。
要让电脑能为网路所用,资源卖方需联络伺服器丛(例如,透过网站),下载并安装ISOS代理人程式,将资源连上ISOS帐户,并进行相关的后续动作。ISOS代理人负责管理主机资源的使用状况,并且不定期从ISOS伺服器丛取得要执行的任务清单。

资源买方则送给伺服器任务需求,以及(在主机上执行的)应用程式代理人程式。线上服务提供者可以向ISOS要求一组可执行任务的主机,指定其资源需求(例如,分散式备份服务可使用只偶尔连线的资源主机,像是玛莉的笔记型电脑,这会比持续连线的主机花费更低)。ISOS则负责提供指定主机的位址与性质,并让应用程式代理人程式能在执行的主机间直接沟通。当某些主机无法使用时,服务可以要求新的主机。ISOS并不会规定用户要如何使用线上服务、服务该如何回应,或者服务怎幺向用户收费(资源使用者付给主机所有者的款项并不是由ISOS所控制)。

应用程式工具套件

原则上,以ISOS的基本功能(像是资源分配、排程与通讯),要建立各式各样的应用程式已绰绰有余。然而,大部份的应用程式都有重要的共通次元件。因此,有个软体工具套件就大有助益,可进一步协助软体工程师设计新的应用程式。这些套件的程式码可整合进资源主机上的应用程式里。以下提供一些工具套件的例子:

独立位置路由:配合ISOS的应用程式会在几百万个资源主机之间散播资讯副本与运算实体,它们必须能再次存取这些资讯。为了达成这个目标,应用程式会在权限之内利用全域唯一识别码(Globally Unique Identifiers, GUIDs)为物件命名。这些名称能让应用程式在不知道物件位置的情况下,向物件提出查询,也就是所谓的「独立位置路由」。做到独立位置路由的简单方法,就是指定一台机器专门处理GUIDs的资料库,但系统并无法处理来自数百万台主机的查询。所以ISOS工具套件採取相反的作法,将GUIDs的资料库分散到各个资源主机。目前有研究计画在开发这样的分散式系统,像是美国加州大学柏克莱分校的「海量仓库」永久资料储存计画。

永久资料储存:ISOS所储存的资讯必须能通过各式各样的考验。永久资料储存工具有资料编码、重组与修复机制,有助于完成此项任务。为求最大的存活能力,资料会以 “m-of-n” 码的方式进行编码。原则上,m-of-n码类似全像术,只要一小片就足以重建整个影像。编码的方式是将资讯分成n个片段(放到n个资源主机上),而其中的m个就足以重建资料。例如,永久资料储存工具可能会将文件编码成64个片段,其中的16个就足以重建这份文件。连续修复也相当重要。如果有片段失效了,修复工具能再重製。如果设计完善,永久资料储存工具套件能保存资讯达数百年。

安全更新:当应用程式需要更新本来储存的资讯时,会产生新的问题。例如,所有的资讯副本都必须更新,而物件的GUID必须指向最新的副本。存取控制机制必须防止未经授权的人更新资讯。安全更新工具仰赖拜占庭通讯协定(Byzantine agreement protocols),这样一来,即使有1/3的资源主机想要偏离正轨,整群主机仍能作出正确的决定。

其他工具:工具套件的协助还包括提供额外的工具,像是格式转换(以处理性质各异的主机),以及程式库同步化(以帮助主机间的协同合作)。

ISOS面临熟悉的矛盾情况,延缓了许多新技术的採用:在客户群未达一定规模之前,合理可行的应用程式寥寥无几。反之,应用程式的数目无法增加,客户群就将维持小众。不过,只要说服足够多的程式开发人员与用户了解ISOS本身的价值,让客户群能达到关键规模,系统就会快速发展。

网际网路仍是广大无垠但尚未开发的资源。全球资讯网的使用人口虽然有爆炸性的成长,但并未改变这项事实,反而只是让这个资源库更加庞大。网际网路规模的作业系统能让程式设计师自由挥洒,设计出在全球电脑上执行的应用程式,但不用担心基础的硬体设备。天知道会有什幺样的结果?玛莉和她的电脑所要做的事,是我们无法想像的。(完)

上一篇: 下一篇: