说到操作系统,每个人都不会陌生,我们现在每天都在使用各种计算机,接触到各种各样的操作系统。比如手机操作系统有iOS和安卓,PC操作系统有Windows、Macintosh,服务器现在的主流操作系统是Linux,更高端的还有小型机操作系统AIX、Solaris。但是对于新兴崛起的分布式操作系统,大家普遍比较陌生,因为这种操作系统只存在于计算机集群和网络的云端环境中,也就是说,它在我们看不到的地方运行着。不过它的重要性,不亚于任何一款其它操作系统。我们的各种日常生活生产,大到国防军工科研生产,小到家庭生活,都离不开它的支持。下面就以发展了10年的LAXCUS分布式操作系统为例,来说一说分布式操作系统应该具备的一些特征。
首先需要明确的是,所有的分布式操作系统,它一定也是多机操作系统,这是目前所有的传统操作系统,包括iOS、Windows、Linux根本不一样的地方。传统的操作系统,本质属于单机操作系统,一套系统管理一台计算机。而多机操作系统可以同时管理很多的计算机,让所有的计算机接受一套系统的管理运行。所以相比单机操作系统,分布式操作系统已经发生了本质的变化。作为操作系统家族的新生力量,分布式操作系统的主要工作是管理分散环境下的计算机硬件资源,控制分布式应用软件运行,从体系结构上为应用提供超大规模的算力支持。这种超大规模并行处理能力,是传统的单机操作系统无法具备的。
如果看具体的指标,以LAXCUS分布式操作系统,它管理的计算机节点规模可以达到百万级别,应用软件并行运行规模做到千万级别,在线用户人数亿级,这些参数是所有单机操作系统根本不能达到的层次。
分布式操作系统出现的原因,和其它操作系统一样,仍然是因应了社会的变化。
比如在计算机的早期,社会的计算需求是有限的,典型的如编辑文字,制作电子表格,或者PPT等的一些工作,这些PC操作系统就足以胜任。后来手机出现,大家也只是需要一个提供交互能力的随身浏览器而已。在一些小众领域,比如国防工程,因为超级计算机的存在,也足以支撑这些算力任务。但是到了这10余年间,由于网络连接,各种智能业务的兴起,传统的计算模式已经无法满足巨大的存储和计算需求,分布式操作系统才逐渐应运而生,为大家提供服务的同时,向着更强计算性能、更快计算效率、更少计算时间的方向前进。
分布式操作系统相比传统的单机操作系统,虽然从质和量上已经发生的巨大的变化,但是它的技术体系,尤其是系统内核,仍然有传统单机操作系统影子,是在传统操作系统上进行的思想变革和技术延伸。以LAXCUS分布式操作系统为例,它的底层是分布式内核,分布式内核又分为两块,一块是本地内核,只处理单台计算机上的本地工作,本地内核的形态与单机系统大体一致。其上是分布式管理模型,它采用网络通信把巨量的计算机连接起来,加上冗余容错和智能感知等能力,形成一个松耦合的动态稳定架构,处理整个计算机集群的工作。来自上层的各种分布式指令,经过分布式Shell的处理,在分布式内核里面逐一分解,通过网络一直传导到每台计算机的本地内核,变成单机指令,执行本地作业。
如果宽维度解释,分布式内核已经提供了分布式操作系统的基本形态,所有业务都可以在其上实现,相当于一个基础版的分布式操作系统。
实际上,一套标准的分布式内核,应该具备以下一些要素:
1. 经济性:在资源共享情况下,让分布式计算效率拥较高的性价比。
2. 高速网络:网速越高,数据等待时间越短,计算效率越高。这一点在处理超大规模存储计算工作时尤其重要。
3. 系统动态适应性:即无论分布式环境发生何种故障,分布式系统总能够保持在相对稳定的运行状态。
4. 可扩展能力:即支持计算机节点的动态增加或者减少,任何单点的增加或者减少不影响系统的整体稳定。
5. 业务调度和负载平衡能力:即系统能够将计算业务动态分配到不同的节点处理计算工作,实现分布式环境的动态平衡。
6. 安全性:因为分布式操作系统支持多人共享,用户的数据和计算业务必须只对用户本人可见,同时还要保证存储计算工作在可控环境下运行,控制越权行为。
以上这些功能在LAXCUS分布式操作系统都已经实现,比如通过集群虚拟化和容器保证计算业务的经济性和安全性;多模通信网络支持多种通信模式,包括TCP、UDP、KEEP UDP、RPC,其中最重要的是Massive MIMO。这是一种超大规模的数据传输,采用支持多个收发单元,能够最大限度利用网络带宽,在不改变网络基础设施情况下,将数据传输效率提升5-20倍;使用可调CAP策略,结合冗余容错和智能感应机制,保证系统的稳定和动态平衡。
拥有一套分布式内核,虽然可以使计算机集群运行起来,但是仍然远远不够。有了让分布式操作系统整体有效运转起来,在分布式内核之上,还要结合各种具体的功能实现。而在LAXCUS分布式操作系统里,这时候就是功能节点发挥作用了。
节点是LAXCUS分布式操作系统里面的逻辑独立单元,它的主要任务是提供某一类的具体服务。比如有负责集群管理工作的节点,有支持数据库的节点,有负责计算工作的节点,有提供日志服务的节点,有支持存储业务的节点。节点之间存在级连关系,即下一级有节点服从上一级节点的领导,接受上一级的指令,从而形成一种主从关系(master/slave)。在LAXCUS分布式操作系统,这些节点存在以下联系。
目前LAXCUS提供了上述节点,做为LAXCUS分布式操作系统的基本单位,节点仍然是可以继续增加。比如近期国外某家使用LAXCUS分布式操作系统的用户,他们需要支持AR/VR功能,这个时候,他们就可以在分布式内核和节点参量的基础上,增加一类AR/VR节点,运行时接入到Home集群,为用户提供在线的AR/VR服务。
为了提供更友好的交互界面,GUI技术也被LAXCUS分布式操作系统引入进来,成为FRONT/WATCH节点的一部分,在桌面窗口中操作各种应用软件。在使用上,Laxcus分布式操作系统的图形界面和Windows、Macintosh等主流图形界面完全一致。
除了上述这些功能,LAXCUS分布式操作系统还首次创新性提出了分布式应用软件的概念,并付诸实现,现在已经LAXCUS分布式操作系统的标准功能之一。
由于适配LAXCUS分布式操作系统,LAXCUS分布式应用软件与所有单机操作系统的应用软件完全不同,它是分布和并行方式运行在很多计算机上,因为这个特点,使得LAXCUS分布式应用软件特别擅长处理大规模、超大规模的存储和计算业务,这是所有单机操作系统的应用软件无法比拟的地方。具体运行计算机的数量,则由系统运行时和用户申请的运行规模来动态确定。
需要注意的是,编写基于LAXCUS分布式操作系统的应用软件,需要遵循LAXCUS分布式编程规范。这些规范目前是以分布式编程接口(DSDK)的形式出现,提供给开发者使用。LAXCUS分布式应用软件和目前的各种应用软件一样,经过编译打包后,安装到系统里中运行。
说完LAXCUS分布式操作系统,还要再说说LAXCUS分布式编程接口(DSDK)。这是一套分布式编程工具组件,除了支持本身的分布式编程开发工作,还把云端、边缘端、终端连接起来了。在LAXCUS分布式规范里,计算机集群属于云端,服务器为边缘端,终端是PC、手机的范畴。基于DSDK开发的应用软件,可以直接从终端或者边缘端调用云端的业务,降低大型业务的开发难度和计算成本,实现了让每个人都拥有一台超级计算机的目标。
写到这里,一个分布式操作系统的基本要素都已经具备了:分布式内核、功能节点、图形用户界面、分布式编程接口、分布式应用软件。如果再让更多的人参与到分布式编程开发和使用的过程,那么一个完整的分布式应用产业生态就会形成。物理世界,在传统的单机操作系统的产业生态之外,增加了一个分布式操作系统产业生态。
结束语:分布式操作系统是操作系统家族一个新的分支,它专注的是超大规模的存储和计算业务。随着科技和社会的进步,已经有越来越多的应用场景需要超大规模的数据和算力支持。典型如最近大火的chatGPT,它近乎海量的数据和算力需求,将带动整个分布式产业上下游的共同发展。做为信息基础设施的分布式操作系统,也将在这一轮科技进步大潮中进入黄金时期,迎来自己的春天。