大家好,我是 conardli。
最近在 Github 上发现了一个有趣的项目:可以在浏览器环境中运行的虚拟机 WebVM。
传统的虚拟机(VM)是建立在物理硬件系统上,模拟了一套完整的硬件环境,包括 CPU、内存、网络接口和存储器,需要在服务器上运行。
然而,WebVM 与我们常见的传统 WebShell 不同,它不需要服务器,仅依赖 HTML5/WebAssembly 就能在浏览器客户端运行一个基于 Debian 的完整虚拟机。
WebVM 是基于 CheerpX 实现的,而 CheerpX 则是基于 Cheerp 编译器实现的... 我们先从 Cheerp 开始了解,~
Cheerp 是能够生成 WebAssembly 的 C/C++ 编译器。
WebAssembly 是一种二进制指令格式,简称 Wasm,它可以在基于堆栈的虚拟机上运行。其存在的意义是作为编程语言的可移植编译目标,使得在 Web 上部署客户端和服务端应用成为可能。简单来说,它允许我们在 Web 环境中运行服务端代码。

CheerpX 是一种将 x86 转换为 WebAssembly 的虚拟化技术,声称可以在客户端完全运行任意 x86 应用程序。

CheerpX 构建了一个基于 WebAssembly 的虚拟机,用于在浏览器中运行 x86 二进制文件。您可以用它来运行任何 REPL 环境。例如:https://repl.leaningtech.com/?python3
WebVM 是一个在浏览器中运行的基于 Debian 的完整虚拟机,由 CheerpX 支持,由以下几部分组成:
CheerpX 作为 JavaScript API 执行引擎,特别是 cx.run(…) 这样的代码,用于启动 bash 进程。然后 bash 可以在用户输入命令时启动其他进程。Xterm.js 作为主要的 UI 组件:Xterm.js 负责解释 vim 等应用程序使用的终端转义,并将用户输入发送回 CheerpX。输入通过应用程序的标准输入文件描述符提供给应用程序。一个 Debian buster 磁盘映像,采用 ext2 格式并安装了一堆软件包。它们被放在 CDN 上,这可以最大限度地提高可扩展性。WebVM 的使命和愿景是让程序运行:
无需修改;无需重新编译;完全客户端模式。你可以在 WebVM 上尝试以下操作:
拍客竞拍系统是一款免费竞拍网站建设软件,任何个人可以下载使用,但未经商业授权不能进行商业活动,程序源代码开源,任何个人和企业可以进行二次开发,但不能以出售和盈利为目的。安装方法,将www文件夹里面的所有文件上传至虚拟主机,在浏览器执行http://你的域名/install.php或者直接导入数据库文件执行。本次升级优化了一下内容1,程序和模板完美分离。2,优化了安装文件。3,后台增加模板切换功能。
代码语言:javascript代码运行次数:0运行复制```javascript
运行一个简单的 Python 程序
python3 examples/python3/fibonacci.py
代码语言:javascript代码运行次数:0运行复制```javascript # 使用 gcc 编译一个简单的 C 示例 gcc -o helloworld examples/c/helloworld.c
代码语言:javascript代码运行次数:0运行复制```javascript
运行!
./helloworld
代码语言:javascript代码运行次数:0运行复制```javascript # 转储代码,验证这实际上是一个 x86 二进制 objdump -d ./helloworld
代码语言:javascript代码运行次数:0运行复制```javascript
编辑 helloworld.c 文件,然后再试一次
vim examples/c/helloworld.c
在
examples目录中提供了各种语言的示例文件。尽管这个应用距离生产环境还有很长的路要走,但它确实让我看到了
Web的无限可能。
Web平台正逐渐成为应用程序分发的主要平台。特别是自从WebAssembly标准化以来,这种趋势变得更加明显。想象一下:一种新的编程语言一旦被开发出来,就会被所有现代浏览器支持,这可以持续满足大型Web应用程序的性能需求。
WebAssembly为浏览器世界带来了真正的创新,以及视角和责任的转变。对此,你怎么看?









