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

VSCode配置C/C++语言环境(小白专用保姆教程)(超细) 阅读详情

本文关键字:云时代没有软件,只有服务,虚拟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省事。


(此处不设回复,扫码到微信留言,或直接点击到原文)
在这里插入图片描述

什么是 Agent 的 Context Window?为什么它是 Agent 工程中最核心的约束之一? 阅读详情

相关推荐

Ubuntu22.04通过DKMS包安装Intel WiFi系列适配器(网卡驱动)

Ubuntu安装Intel WiFi系列适配器(网卡驱动)

lu_linux的博客 2602

Uniapp核心基础(一)

uni-app 的基础语法主要基于 Vue.js,同时提供了一些特有的语法和功能来支持跨平台开发。开发者需要熟练掌握 Vue.js 的基础语法,并了解 uni-app 的特有语法和功能,以便更好地进行跨平台应用开发。对于无法通过rpx单位或条件编译解决的样式差异,可以通过编写自定义的样式适配逻辑来处理。例如,可以使用CSS媒体查询(Media Queries)来根据屏幕尺寸、分辨率等条件设置不同的样式规则。此外,还可以根据uni-app提供的全局变量(如)来判断当前运行的平台,并据此设置不同的样式类。

警警的博客 1732

无线网卡选购指南:哪些型号支持Kali Linux的监听模式?附免驱动网卡推荐

本文详细解析了如何在Kali Linux下选购支持监听模式的无线网卡。核心在于选择兼容的芯片组,如Atheros AR9271和Ralink RT3070等经典型号,并提供了免驱动网卡推荐与实战配置指南,帮助安全研究人员和爱好者快速搭建无线测试环境。

wind6的博客 1559

Virtual Appliance-vapp

http://en.wikipedia.org/wiki/Virtual_appliance#cite_note-1 What is a Virtual Appliance? Virtual appliances are 'ready to run' software stacks (made of operating systems and applications) package

blade2001的专栏 1450

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1179

别再纠结选哪个向量库了!我用Spring AI + Redis Stack 7.2,5分钟搞定企业知识库RAG原型

本文介绍了如何利用Spring AI和Redis Stack 7.2快速构建企业级RAG应用,解决向量数据库选型难题。Redis Stack 7.2集成了RediSearch模块,支持向量相似性搜索,具备高性能、低成本、零学习成本等优势,特别适合中小团队快速搭建知识库系统。通过实战代码示例,展示了从环境准备到核心功能实现的完整流程。

weixin_29061041的博客 272

uni-app中如何判断浏览器内核

getBrow(){ var u = navigator.userAgent;        var ua = navigator.userAgent.toLocaleLowerCase();        var app = navigator.appVersion;        return {         trident: u.indexOf('Trident') &g...

alkq42061的博客 2148

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2784

到底什么是Unikernel?

本文转载至:http://dockone.io/article/855?utm_source=tuicool&utm_medium=referral 【编者的话】本文介绍了一种新的应用虚拟化技术,它让应用及其所依赖的运行环境、甚至是连内核一起打包,直接运行在硬件或是Hypervisor上,从而更加高效的利用计算机资源。非常有意思,推荐给大家。 如果你持续关注DevOps周刊,DevOps主

闲云孤鹤 3773

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

C++ Qt6 qml CMakeLists.txt如何添加qrc文件

本文介绍了在Qt6项目中如何通过CMake管理QML图片资源。相比Qt5的qmake,CMake需要手动创建qrc文件并配置CMakeLists.txt。关键步骤包括:1)创建resources.qrc文件并添加图片资源;2)在CMakeLists.txt中设置CMAKE_AUTORCC为ON开启自动资源处理;3)使用qt_add_resources将qrc文件绑定到项目。配置完成后,可通过"qrc:alias"方式引用资源图片,解决了相对路径管理复杂的问题。

琅嬛福地 1453

DockerCon 2016:阿里专家解读unikernel

最近一段时间,unikernel这个词的曝光率越来越高,到处都可以看到,让人不禁好奇,unikernel到底是什么呢? Wikipedia上有定义,我们把第一段摘抄过来: Unikernels are specialised, single address space machine images constructed by using library...

weixin_33736048的博客 425

C语言读取CSV文件的方法1

逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法

白马负金羁 1万+

[Cloud Computing]Mechanisms: Virtual Appliance

Virtual Appliance A virtual appliance is a pre-installed and pre-configured software solution on one or more virtual machines that is optimized for a specific function. A virtual appliance is cre

zjysource的专栏 445

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

一个设想:什么是真正的云,及利用树莓派和cloudwall打造你的真正云中心

本文关键字:datasyner,syncbox,datahub,mypcmate,myphonemate,p2pcloud 谈到云,可以从好多方面去表征它,比如它是计算机资源的虚拟化,它是软件的服务化,它是APP和APP DEVSTACK的一种仿本地化和去远程化(参见我们一直追求的uniform native/web appstack),可是我们结结实实忽略了最重要的一点,它还应是新的应用方式和用户习惯养成方式,仅仅是WEB所定义的那样吗?不,那只是云综合应用形式中极为简单简陋的一支,现在的web已级慢慢实

minlearn's techrepos 2552

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

hyperkit:一个full codeable,full dev support的devops及cloud appmodel

本文关键字:app level vm,hypervisor as component, hypervisor as api, langsys as api,cloud infrastructure as code,Devops is only tools but not appmodel, Lua as configuration language 在bcxszy和bcxszy demos的历史选型上我们一直希望得到一个在native上面改良云/分布式程序/cloud的设想,接上学习,开发和应用的断层,实现

minlearn's techrepos 735

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

一种追求高度融合,包容软硬方案的云主机集群,云OS和云APP的架构全设计

本文关键字:兼容多主机硬件设计,兼容多os,兼容native/cloud程序模型,兼容本地程序/分布式程序。网络操作系统,不是x11,不是远程桌面,不是web nas,不是pouch存储同步。不是远程投屏。 云在人们的观念中就是远端,它承诺将计算发展成水电煤一样的可被直接利用的资源,与内容和我们本地的客户端或终端接入(所以有了云存储,云GPU等各种传统资源的云化,以及一些或细分或复用的云资源,如云验证,云游戏,etc…),虽然云技术的背后是一层一层的虚拟化,可是它并没有将这种工作进行到我们日常使用APP方面

minlearn's techrepos 565

Plan9 : 一个从0开始考虑分布式,分布appmodel的os设计

本文关键字:plan9,Inferno,limbo,Plan 9 from User Space:plan9port 在《除了UNIX,我们真的有可选的第二开源操作系统吗?》中,我们讲到那些传统的os之争是集中于游戏好不好支持,桌面好不好体验,发行够不够流行,总体好不好用这些方面。而从x86 cpu从0开始的抽象全栈,他们都是一样的 ------- 换言之,某种意义上他们都是一样的OS。 这种共同点在于哪里呢?对于最终的APP和APP开发来说,它们都是基于单PC+单PC下网络程序设计的。于是在这种架构下有

minlearn's techrepos 531

在tinycolinux上安装和使用cloudwall

本文关键字:在tinycolinux上安装和使用cloudwall,同步器as webos,uniform native web appstack 在《cloudwall:一种统一nativeapp和webapp的appstack》中我们讲到,cloudwall是一种构建在counchdb+counchdbapp之上的管理层APP可直接作为personal cloud hosting 文档和支持cloudwall plugin开发,然而它产生的奇妙效用在于它能作为webos,提供webappstack的效用

minlearn's techrepos 523

一种设想:为linux建立一个微内核,融合OS内核与语言runtime设想

本文关键字:os之争。微内核,language based os,language on bearmetal not on os,华为鸿蒙,语言即OS,类脚本语言,把原生应用变语言模块。 我们知道,OS兼容跟语言兼容一样,是一项几乎不太可能完成的事情,因为OS的使命就是作为闭环竞争的商业产品出现,成就造出它他们的公司。从文件系统的多样化和存在的互访鸿沟就知道,见《一个设想:基于colinux,去厚重虚拟化,共盘直接文件系统安装运行的windows,linux》。

minlearn's techrepos 517

一种matecloudos的设想及一种单机复杂度的云mateapp及云开发设想

本文关键字:可编程的os/os kernel/os rootfs,os as service,os as service,mateos。cloudsubos,,客服同体,api/runtime共体,将os api化,headless os core for cloud api,融合云app matecloudos,matecloudapp:开发接口与程序本身合一 在前面我们谈到《enginx,engitor》系列,还谈到《Plan9:一个从0开始考虑分布式,分布appmodel的os设计》,这些文章共同点都

minlearn's techrepos 456

cloudwall:一种真正的mixed nativeapp与webapp的统一appstack

本文关键字:在数据库中安装程序。以数据库直接为后端托管程序,文档数据库管理器直接为云文件存储程序。无backend webapp,在web中开发webapp 大约在很久以前,我开始放弃追求统一化分布式应用程序和本地程序为同一个appstack的努力,这二者之间似乎天然存在鸿沟,像是应用的使用方式决定的,这种人为的界限并不是用来跨越的,拿web来说,它作为一种分布式架构和分布式appstack架构,不能做到像本地GUI程序或硬件加速程序一样灵活,比如web强调将一切放在broswer端渲染导致需要采用html

minlearn's techrepos 443

比WEB更自然,jupyter用于通用软件开发的创新意义:使任何传统程序秒变WEB

本文关键字:online language,在线语言系统,jupyter,ipython jupyter,在线编译器,在线解释语言,engitor 在《engitor:基于jupyter,一个一体化的语言,IDE及通用分布式架构环境》一文中我们提到,jupyter不止是一个分布式IDE它还是个分布式架构,更准确地说,它使任何使用engitor开发的程序变成WEB架构下的程序,而这个“WEB”,是jupyter webiz之后的web,然而它比web更自然,更强大。 jupyter作为一个极具创新的普通的产品

minlearn's techrepos 439

一个matepc,mateos,mateapp的goblinux融合体系设计

本文关键字:将桌面环境,toolchain设计为subsystem,rootfs as Xaas,rootfs层次的虚拟化,非Virtual OS Infrastructure,第二PC,模块化机箱,第二PC,存储,计算分开机箱,nas另置主机,mirror os,mateos,自建icloud,本地远程通用的云os,云app 在《bcxszy:applvl programming》整个选型中,虽然我们经常强调xaas,langsys,appstack,app四栈一体的开发,但xaas跟其它部分在本书中一直

minlearn's techrepos 430

engitor:基于jupyter,一个一体化的语言,IDE及通用分布式架构环境

关键字:工具层devops 很难为jupyter这样的一个东西定性,它最初只是一个增强的python repl环境,后来变成了CS架构并支持了多语言,S为语言kernel,C为notebook,console,qtconsole这样的东西,可以分开部署使用。 IPython 3.x was the last monolithic release of IPython, containing the notebook server, qtconsole, etc. As of IPython 4.0, t

minlearn's techrepos 382

enginx基于openresty,一个前后端统一,生态共享的webstack实现

本文关键字:openresty,enginx webstack的前世今生就是一个重复造轮的过程,它的目标是将本地程序栈弄成分布式b/s web,其实这在语言端可以做(比如语言模块的http unit,然后是一层层我们从桌面时代开发最基本的socketapp开始,http封装之后也许是一个aysn网络io库,最终到达语言库级的webframework直到专门的独立程序支持,也许这个时候人们发现那个网络io库可以独立出来作为一个server,再比如第三方容器在这种需求下很容易出现,流控安全等需要也会泛滥),于是

minlearn's techrepos 343
上一篇: 编程语言选型之技法融合,与领域融合的那些套路
下一篇: 我为什么选择rust
Minlearn
博客等级 码龄18年 20粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值