一直有网友要求讲讲LAXCUS分布式操作系统是怎么实现的,其实LAXCUS分布式操作系统的设计研发,涉及各种基础技术和底层架构,研发过程很漫长,一直在坚持,实现过程也非常复杂,尤其重要的是要保证运行过程,大量异构计算机之间的协调统一。把这么多东西融合在一起,不是一篇文章能够说清楚的,所以咱们不如换一个角度,介绍一下LAXCUS分布式操作系统的主要构成,这样也能让各位快速掌握了解LAXCUS分布式操作系统。
如果对标微软的Windows的发展过程,早期是Windows 1.0 Windows 2.0 Windows 3.0,这些版本依赖DOS运行,后来才是Windows 95 Windows 98 Windows NT Windows XP,直到最新的Windows 11,Windows95是一个跨时代的版本,提供了全新的图形界面,摆脱对DOS依赖,直接在硬件设备上运行。LAXCUS分布式操作系统的发展也大致是这个情况,早期的版本寄居在LINUX平台上运行,主要是验证各种分布式技术,包括相关的分布式编程接口、分布式运行框架、分布式命令,分布式应用软件,后期的LAXCUS分布式操作系统将进入对标Windows 95的版本,提供基于硬件设备的系统软件,也就是完全体状态。下面就是这个版本为基础,谈谈LAXCUS分布式操作系统的总体构成。
全状态的LAXCUS分布式操作系统主要由这样四大块组成:(1)分布式运行环境 (2)分布式命令 (3)DSDK (4) 分布式应用软件,下面咱们逐一介绍。
1)分布式运行环境
分布式运行环境的作用是通过网络,把大量计算机连接组织起来,形成一个物理分布逻辑统一的多机系统环境,即实际的计算机集群。同时分布式运行环境还要给应用软件,包括分布式应用软件和单机应用软件,提供一个稳定可靠的运行支持,LAXCUS上的单机应用软件,目标是兼容LINUX应用软件,未来可能考虑兼容Windows软件。分布式环境又由五大部分构成,它们从底向上,依次是:系统内核、本地Shell、多模通信网络、松耦合架构、分布式Shell。
系统内核
内核是所有操作系统的核心部分,LAXCUS也不例外,它是硬件之上的第一层软件扩充,提供操作系统的工作基础。内核的主要职责包括管理系统中的各种硬件设备(CPU、GPU、内存、磁盘)、进程(应用软件)、设备驱动程序、文件和网络系统,直接决定着系统的性能和稳定性,也是连接应用程序和硬件的桥梁。内核设计主要可以分为宏内核和微内核两种类型,LAXCUS是宏内核。
本地Shell
本地Shell也是程序,它是用户与操作系统之间的交互介质,我们可以把它视为一种命令语言,帮助用户向操作系统发出指令,同时也是一种程序设计语言,允许用户编写脚本来自动执行一系列指令。
在LAXCUS 本地Shell连接了用户和系统内核,它是内核外层的接口,负责管理与操作系统之间的交互,等待用户输入,向操作系统解释用户的输入,并处理各种各样的操作系统的输出结果。,超过之外的工作不属于本地SHELL的工作范围。 特别注意的是,本地Shell本身不属于内核,而是内核之上一个应用程序。当系统启动后,本地Shell会启动并呈现在用户面前。
多模通信网络
Laxcus多模通信网络基于FIXP协议,在此之上实现了多种网络连接方式,包括但不限于类似5G网络的Massive MIMO通信和RDMA的BI网络。在通信方面,多模通信网络支持TCP、UDP、KEEP UDP,还可以在本地嵌入接口并隐藏网络流程以实现RPC调用处理。多模通信网络还具备极高的安全性,包括对量子加密技术的支持,以及对称加密、非对称加密、数字签名、自定义加密技术的支持。这些密码技术可以保证传输过程中,数据的绝对安全可靠,避免数据传输过程中被窃取和窃听。目前,许多复杂且安全性要求高的网络通信都可以采用多模通信网络方案执行。
松耦合框架
Laxcus松耦合架构是一种为适应不稳定的网络环境,被临时组织起来和动态调配的工作模型。在松耦合架构中,所有硬件设备和软件模块,以及其上运行的分布式应用软件和分布处理任务,都被抽象成为一个个独立的"服务",并通过标准的接口进行交互。
这种设计方式虽然相比紧耦合架构更为复杂,各个模块采用的策略也不尽相同,但都遵循了"客户机-代理-服务器"三层模型,这是Laxcus分布式操作系统各个模块松耦合共同的特点。同时,Laxcus内置一套资源管理方案,基于三种机制来管理计算机集群和集群中的各种资源,包括计算机集群的网络通信、资源分配、任务调度、数据流量控制、应用软件的运行等都在其管理范围内。
LAXCUS松耦合架构还实现了计算机资源的聚合和重组,即以软件的方式,将服务器硬件资源和软件资源聚集起来,形成一个巨大的资源池,在这上基础,实现超大规模的存储和计算工作,这一点是单机操作系统不具备的。基于物理计算机资源的不同,LAXCUS分布式操作系统的算力处理能力,通常是单机操作系统是几个数量级,轻松处理各种大型计算业务。
分布式Shell
顾名思义,分布式SHELL是用户与LAXCUS分布式操作系统之间,在多台计算机上分布运行的交互介质,它的出现,主要是解决本地SHELL不能跨越计算机节点运行的不足。分布式Shell遵循Invoke/Produce分布框架,用户可以通过分布式Shell,通过一个脚本,去多台计算机上执行各种复杂的分布式任务,如并行计算、数据处理等。为了方便开发者进行编程,Laxcus分布式操作系统提供了一套详细的分布式SHELL编程规范,它不仅具有高效的计算能力,还具有良好的扩展性和稳定性,能够满足大规模、高并发的计算需求。
(2) 分布式命令
分布式命令是LAXCUS分布式操作系统的重要组成部分,是管理计算机集群和处理分布式业务的主要手段。分布式命令具有单点操作和多点执行的特点,它根据用户要求,从某一个节点发出,分散到不同的节点上处理,并从这些节点收集处理结果,把处理结果反馈到出发节点上显示 。在LAXCUS分布式操作系统里,相对单机系统的命令,有很多对应的分布式命令。比如在LINUX中,"ls"命令显示当前目录下的文件和子目录,而LAXCUS的"nls"命令会显示计算机集群所有节点当前目录下的文件和子目录,如果加上一些参数,能够执行更复杂的处理。又比如Linux的"kill"命令是杀死单机系统中的一个进程,而Laxcus的"nkill"命令可以杀死某一个进程和分散在多台计算节点上的所有相关进程。
分布式命令的特点是单点出发多点,这样它可以充分利用计算机集群软硬件资源,提高作业效率,简化用户操作,也是大规模计算业务的主流发展方向。
目前LAXCUS分布式操作系统有200多个命令,其中96%属于单点发出多点执行的分布式命令,它们涵盖了网络通信、应用软件、边缘计算、数据处理、资源智能管理、作业调度的工作。分布式命令和分布式SHELL结合,基本满足了用户管理计算机集群、处理大型计算业务的需要。
(3) DSDK
DSDK是Distributed Software Development Kit的首字母缩,对应中文是"分布式软件开发工具包"。不同于单机系统的API编程接口和软件开发工具,LAXCUS分布式操作系统的DSDK是一个完整的分布式编程方案,也和超算普遍采用的MPI编程大不一样。在DSDK里面,包含了大量可选用的分布式编程框架,并且计算机集群的底层工作都被隐藏保护起来,开发者只需要调用接口。比如节点之间的网络通信、调度、资源协同、分布式处理等操作,都可以直接通过软件包的分布式编程接口来解决。这种模式有利于开发更有效地构建和管理分布式应用,充分发挥了分布式操作系统的优势 ,满足大规模、超大规模的计算需要。
(4) 分布式应用软件
在LAXCUS分布式操作系统里,分布式应用软件处理具体的计算工作。编写LAXCUS分布式应用软件需要遵循DSDK中定义的分布式编程规范。通过分布式命令部署到需要的计算节点上,运行时,用户通过图形或者字符界面启动计算工作,把计算工作分成任意数量的计算片段,分散到大量的计算机节点上运行,通过网络来共同完成一项任务,最后把计算结果反馈回图形界面或者字符界面。
不同于传统的客户机/服务器模式,LAXCUS分布式操作系统基于客户机/集群模式。通过增加分布式应用软件在计算节点上的并行规模,单机操作系统上巨量的计算任务,都可以通过分布式操作系统和分布式应用软件快速解决,从而提高计算效率。目前随着各行各业算力需求的急速增加,各种计算业务越来越依赖这种新型的分布式应用软件来提高它们工作的处理效率。
以上就是LAXCUS分布式操作系统的几个核心模块,总结一下,它们的大致作用是:分布式运行环境做为基础底座,为所有分布式作业提供基础服务;分布式命令用来管理计算机集群,维护计算机集群的正常运行;DSDK辅助开发者编写开发分布式应用软件,简化开发流程;分布式应用软件结合业务需求,执行各种具体的分布式计算工作。它们组合起来,形成完整的LAXCUS分布式操作系统。在此基础上,我们正在打造未来的LAXCUS分布式应用生态。
目前LAXCUS分布式操作系统仍在发展中,对于有兴趣致力于分布式应用技术、分布式操作系统、分布式应用产业的朋友,欢迎大家加入。这是一个新的市场,随着产业业务需求变化,特别是AI大模型、大数据、高性能计算、科学计算的涌现,各个行业的算力需求正在急速增加,LAXCUS顺应了时代需求,必然像曾经图形操作系统Windows、Macintosh,和手机操作系统IOS、Andorid一样,在接下来的二三十年,在商业TO B领域取得自己的地位,大放异彩。