草庐IT

异构操作系统的“融合计算”

姓赵名大奇 2023-03-28 原文
近些年,由随着应用场景日益丰富和多样化,计算工作越来越复杂,传统的计算方式(单机计算/分布式计算)已经不能满足,需要一种新的更强大的计算模式来解决这些问题,这是融合计算产生的背景。

融合计算涉及两个层面:操作系统和应用场景,先说操作系统。

目前的操作系统,都有自己的产品定位和应用边界。比如Windows对标的是个人电脑,通常处理个人编辑类业务。iOS和安卓因为移动性强,多用于社交娱乐方面的交互工作。Linux面向服务器领域,处理高并发业务是它的强项。Laxcus作为一种分布式的多机操作系统,尤其擅长处理大规模、超大规模的存储和计算工作。

不同操作系统的产品定位


第二要说的就是应用软件。

在传统的语义里,应用软件必须基于特定的操作系统。比如Windows上的软件,只能在Windows上跑,不可能在iOS上运行,或者Linux/Laxcus上的指令,Windows也无法识别。这个问题是它们的局限。

那么,有没有办法,让一套应用软件根据业务需求,跨越多种操作系统,在不同的操作系统上无缝运行呢?

这就是“融合计算”要做的事情。

“融合计算”的本质,在操作系统和应用之间,插入一层运行环境和接口。向下,把各种操作系统连接起来;向上,对应用软件屏蔽操作系统差异,发挥不同操作系统的比较优势,使应用软件在各种操作系统上无缝运行。

融合计算充分发挥不同操作系统的比较优势,实现软件在不同操作系统的无缝连接运行


在“融合计算”的体系里,Windows、iOS的比较优势在于终端(客户端),它们可以发挥自己图形界面的优势,为用户提供良好的交互能力,Linux定位是服务器,它的角色地位是边缘端,承接一些高并发、简单、中小规模的计算工作,Laxcus面向计算机集群(很多服务器组成的阵列),它的定位是云端,这里可以充分发挥它存储规模大,计算能力强的优势,承接大规模、超大规模的计算工作,把大型和复杂的计算工作瞬间化解。

“融合计算”中,终端、边缘端、云端的连接关系有三种:

终端端连接云端

边缘端连接云端

终端连接边缘端,再由边缘端去连接云端

三端中,云端是最终的受理方,所有大规模、超大规模的存储和计算工作在这里聚集,由云端的操作系统会统一分配系统资源,把存储计算工作切分成小的单元,分散到大量的计算机节点上并行处理,最终完成多操作系统协同的分布式存储计算工作。

把不同的操作系统整合到一起,打破操作系统的物理封闭限制,重组应用软件的运行边界,实现云端、边缘端、终端软件的互连互通互操作,拓展应用软件的应用范围,提高应用业务的计算能力,这就是“融合计算”的优势和魅力。

实现了融合计算的DSDK支持两个维度的操作

基于指令

基于分布式应用软件

基于指令的“融合计算”提供多不同操作系统之间的互操作。比如当我们选择Windows或者Laxcus桌面作为终端时,它可以操作Linux或者 Laxcus的指令,它通常是系统管理人员的使用工具,普通的用户不需要。优势在于完全不需要开发者开发,是由DSDK和Laxcus操作系统的开发商直接提供。

从Laxcus终端桌面去操作Linux的指令


基于分布式应用软件的工作则服务普通用户,它需要开发者调用DSDK里面的API接口编写应用软件,如果应用软件位于终端,你需要使用图形界面,如果应用软件位于边缘端,通常是一种字符界面或者后台进程的存在。

分布式应用软件还可以和本地系统深度整合,比如Tomcat这类的服务器软件在处理WEB业务时,可以和 DSDK绑定,让前端的浏览器通过Tomcat直接处理云端的存储计算工作,从而扩展Tomcat的WEB功能。​

基于融合计算的应用软件以图形界面方式,去操作云端的Laxcus集群


写到最后,说说“融合计算”的未来前景。

如果回顾人类这一百年的发展,世界上主要发达国家基本都经历了机械化时代、信息化时代,到现在的智能化时代。机械化时代的特点是“动”,大机器大工厂是代表。信息化时代是“联”,不同的软硬件被连接到一起,打破了物理区域限制,实现人与人,人与物、物与物之间的快速沟通交流,典型如互联网、物联网。智能化时代是“算”,未来的社会,更多的工作一定是在无人状态运行,支撑它们的,是背后庞大算力和基于数据的大量计算。这个工作,正是“融合计算”重点解决的问题。



“融合计算”的分布计算模型第一个版已经集成在Laxcus分布式操作系统,在官网发布,新的版本也在推进和深化。一旦成熟,它很可能重新定义计算机产业生态和计算体系。

对“融合计算”有兴趣的朋友可以联系我,一起探讨这项工作!


有关异构操作系统的“融合计算”的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  3. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  4. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  5. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  6. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  7. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  8. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  9. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  10. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

随机推荐