云APP,virtual appliance:unikernel与微运行时的绝配,统一本地/分布式语言与开发设想

简介: 本文关键字:云时代没有软件,只有服务,虚拟app,虚拟OS,虚拟APP开发,metarootfs as service,container as service,virtual appliance,可devops编程os,Redox OS,融合app

本文关键字:云时代没有软件,只有服务,虚拟app,虚拟OS,虚拟APP开发,metarootfs as service,container as service,virtual appliance,可devops编程os,Redox OS,融合app

我们知道,OS的选型,其实关乎着开发,因为它位于开发四栈中的平台栈部分,(系统开发语言对”系统平台“进行开发)平台与语言产生联系的方式首先是支持该OS开发中的toolchain language中的runtime(kernel space或user space中的libc),它以OS为宿主,将系统服务做成API件,将系统实现系统开发接上语言和开发。

与之产生比对的,就是该OS上的各种应用开发层次上的开发语言的后端,比如脚本语言,它可以是各种port到该OS平台上的虚拟机平台作为runtime接入到os,这种软件"虚拟机os"+“虚拟机平台上的语言,包装来自原OS toolchain的API或OS可开发服务即可,照样可以作平台上的系统开发。(比如c,cpp虽然可以桌面应用开发,但是它有开发效率不快学习曲线问题和内存泄漏问题而桌面开发不要求指令密集且不能跨平台,那就可以完全可以另起灶炉发明语言和一整套开发系统换成py这些)。甚至最后,虚拟机语言和脚本更多面向WEB,因为这种“API服务可以来自不同OS不同进程。的虚拟平台,不是OS也可以“。,云时代没有软件,只有服务。在《编程语言选型之技法融合,与领域融合的那些套路》和《一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想》中,我们都谈到,传统OS和语言是面向nativedev的提供语言系统和开发API的。,对于web和分布式来说,因为API和语言都不需要来自这类平台。更适用这些虚拟机平台和服务开发。----- 平台,语言后端,这二者的界限模糊了,语言可对虚拟,脱节平台进行开发。

后来又出现了容器,“语言后端即服务”。(baas,容器化,对语言来讲容器其实还是OS或虚拟机,它类似一种wsl,只不过它可视为分出来的子OS,这种子OS作用是为语言提供分离服务,而不是其它目的,比如pyenv,和serverless后端)。当然它们不是语言后端仅可视为后端包装器 ---- 只是这次,os平台,后端,容器,这三者的界限又变得模糊了。

以上这些都是平台与语言可完全脱节存在的例子。实际上,只要是脱离平台,该应用语言能对任何系统进行开发,甚至架空平台。

但是,它们本质上,它们都没有做到完全脱离。语言后端作为语言在这种具体平台上的实现支持语言在这种平台上存在,就是关系的纽带,不管何种形式存在(是对OS作后端还是OS上的虚拟机作后端),都有一个后端,都有一个OS存在:无论这种开发体和托管体,是single OS和APP之间,还是云服务时代,容器这种单元,只要它装配了语言后端,就可以解释为RUNTIME与OS的关系,这样这种后端与APP之间存在完备的运行支持关系才使之成为可能。即,它们是多平台而不是真正的跨平台,语言也并不是跨web/native开发,至少存在一种toolchain lang和一种appdev lang。(这里要明白一点:web不是平台是业务,lamp-l=amp才是runtime targetee,browser也是)

那么有没有完全脱离平台的语言呢,或者极大可能这样做的语言呢,这样做的好处又是什么呢?能给最终的开发(尤其分布式,WEB)带来帮助或颠覆性好处吗?

语言与平台脱离:极小化语言,微语言

这需要从语言运行时本身进行。

这种语言和开发生态就是go和rust,这种极小运行时的语言。这就是我在《Golang,一门独立门户却又好好专注于解决过程式和纯粹app的语言》谈到的。go为每一个它生成的APP都内置了一个“go runtime as os”,而这种go runtime是不依赖任何平台甚至最初级的libc。

这种极小化生态,可以让语言更容易跨平台,甚至集成到浏览器(这是一种除了硬件嵌入开发的WEB嵌入式开发)。比如rust micro runtime之于wasm开发。而带GC的语言,往往不能用于嵌入式。

它带来的更大的好处之一,还可以使得virtual appliance成真。

virtual os与virtual appliance: 内置OS与language runtime的app

在云计算机和虚拟化领域,有virutal iaas,就会有virtual os,和virtual appliance。见《一个隔开hal与langsys,用户态专用OS的设想》,《一个设想基于colinux,the user mode osxaas for both realhw and langsys》。
.
上面谈到容器,作为language backend包装器存在,它也包装了OS。比如docker,实际上每个docker实例都共享着一套OS模板在最开头,其aufs文件系统的开头,也引用着一个OS rootfs。而现在,随着unikernel的出现。这种专门为OS kernel进行虚拟化(而不是在OS内部共享内核针对rootfs虚拟化的docker)的方案出现了,它使带OS的容器可以真正变得极小。它针对解决的问题是针对容器每一个模板过大的问题,就如同rust之于runtime一样,从源头解耦。

再来谈virtual app,最初的virtual appliance是本地虚拟机跨OS出现的一种APP管理机制,如vmlite的那种,pd的融合APP那种。而rust的微内核,使得用这种语言这种开发出来的APP,是无须调用或依赖任何OS导出的API或服务作为宿主的:不是可不可移殖,是根本无须移殖(OS与APP可脱离且最小化,这就给APP虚拟化提供了基础)。

如果说应用开发领域,OS可以虚拟化,模糊它作为app backend的意义,那么app为什么就不呢?关键是这二者一旦结合,将带来真正的virutal appliance和开发。

1)首先,Unikernel才能促成application virtual,微内核将容器做到os管理的级别跟openvz和docker方案不一样。微内核可以集成到APP级别。使得virtual appliance真的跨OS有存在意义。

2)其次,使得虚拟OS可以被集成在APP内,见《hyperkit:一个full codeable,full dev support的devops及cloud appmodel》,实现真正的virtual appliance,meta rootfs中集成虚拟机管理器。

3)1,2相加,针对那个最终的问题,可以带来更好编程的OS和分布式开发,使分布式真正集成到OS,在《一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想》,我们谈到现在分布式app都是跨OS的,但也存在一种原生分布式,即plan9,x11这种类似的“os绑定式分布式APP”,

该如何理解这种新appstack呢?传统的app是完成了gui,db,net之后在这上面,面向本地,堆应用,作为应用件,传统webapp是提出一系列关于db.gui,net的新规范(其中net部分固定为http)实现真正跨端,而新appstack是os限定的。跟传统os一样(受限于os透出的api/分布api)。新app是gui,db,net这三者,每一个都api化。且面向分布api化。作为开发件复合堆net关于分布网络。这里的思想类似于直接利用原生的os存储功能提供API和网盘服务。开发上,os即客服一体机器。语言库即os组件,见《一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想》第二节。

1,2,3可以使得nativedev适用于新的分布式开发,也使得传统web和web语言更容易拥有virtual appliance能力:webapp是初级的分布式和融合开发和融合栈的一种方式,因为它还没有涉及到virtual appliance和微内核容器化。任何应用编程,都是栈选型和归纳行为。归纳为有限几个栈。业务领域自有轮子。却没有真正的virtual appliance,因为web自身就是一种byond os的虚化平台,因此与web最搭的就是这种virtual appliance的appmodel。b端甚至可以不是浏览器直接是普通GUI。甚至结合rust microruntime和interpreter to js(这实现也是elmlang的特色),可以用rust统一前后端开发。


rust的生态在慢慢涵盖我上面提到的那些rust coreboot,redox os微内核,User-space drivers 用户空间驱动,wasm,都在慢慢成真。目前这些只有molliza在做。感觉技术也是烧钱割韭菜。不过这套方案也确定是够slim省事。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关文章
|
18天前
|
数据管理 API 调度
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
HarmonyOS Next 是华为新一代操作系统,专注于分布式技术的深度应用与生态融合。本文通过技术特点、应用场景及实战案例,全面解析其核心技术架构与开发流程。重点介绍分布式软总线2.0、数据管理、任务调度等升级特性,并提供基于 ArkTS 的原生开发支持。通过开发跨设备协同音乐播放应用,展示分布式能力的实际应用,涵盖项目配置、主界面设计、分布式服务实现及部署调试步骤。此外,深入分析分布式数据同步原理、任务调度优化及常见问题解决方案,帮助开发者掌握 HarmonyOS Next 的核心技术和实战技巧。
161 76
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
|
9天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
99 18
|
5天前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
23 5
|
5天前
|
移动开发 安全 搜索推荐
圈子社交系统APP,同城本地圈子论坛开发,让身边的人沟通更加紧密
圈子社交系统APP是一款基于社交网络的移动应用,用户可创建、加入和管理兴趣圈子。主要功能包括:动态分享与交流、实时聊天、会员体系与身份认证、活动策划等。该APP注重个性化定制、社交关系深化、隐私安全及跨平台互联,提供丰富的社交体验。
|
8天前
鸿蒙语言开发 几十套鸿蒙ArkTs app毕业设计及课程作业
鸿蒙语言开发 几十套鸿蒙ArkTs app毕业设计及课程作业
18 1
|
17天前
|
JSON 缓存 前端开发
HarmonyOS NEXT 5.0鸿蒙开发一套影院APP(附带源码)
本项目基于HarmonyOS NEXT 5.0开发了一款影院应用程序,主要实现了电影和影院信息的展示功能。应用包括首页、电影列表、影院列表等模块。首页包含轮播图与正在热映及即将上映的电影切换显示;电影列表模块通过API获取电影数据并以网格形式展示,用户可以查看电影详情;影院列表则允许用户选择城市后查看对应影院信息,并支持城市选择弹窗。此外,项目中还集成了Axios用于网络请求,并进行了二次封装以简化接口调用流程,同时添加了请求和响应拦截器来处理通用逻辑。整体代码结构清晰,使用了组件化开发方式,便于维护和扩展。 该简介概括了提供的内容,但请注意实际开发中还需考虑UI优化、性能提升等方面的工作。
76 11
|
14天前
|
前端开发 数据库 UED
uniapp开发,前后端分离的陪玩系统优势,陪玩app功能特点,线上聊天线下陪玩,只要4800
前后端分离的陪玩系统将前端(用户界面)和后端(服务器逻辑)分开开发,前者负责页面渲染与用户交互,后者处理数据并提供接口。该架构提高开发效率、优化用户体验、增强可扩展性和稳定性,降低维护成本,提升安全性。玩家可发布陪玩需求,陪玩人员发布服务信息,支持在线聊天、预约及线下陪玩功能,满足多样化需求。[演示链接](https://www.51duoke.cn/games/?id=7)
|
20天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
99 6
|
21天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
67 3
|
13天前
|
安全 算法 机器人
双重防护!红娘相亲app搭建开发,婚恋交友系统登录方式,密码+验证码的优势
在婚恋交友系统中,密码和验证码是两种重要的安全措施。密码用于验证用户身份,应设置为复杂组合以防止未经授权的访问;验证码则通过图形或字符识别,防止自动化攻击如暴力破解和注册机器人。两者同时开启可显著提高安全性,防止暴力破解和自动化注册,提升用户信任感。建议要求强密码、定期更新验证码样式,并在可疑登录时增加验证码复杂性。这样既能保障用户信息安全,又兼顾了用户体验。 ![交友11111.jpg](https://ucc.alicdn.com/pic/developer-ecology/hy2p6wcvgk4oe_c9eb8d6eb8144866b0cd1d96ffb0c907.jpg)

热门文章

最新文章