Javascript PC 模拟器运行 Linux

作者:Michael Reed

Fabrice Bellard,QEMU(多架构模拟器)和 FFmpeg(以及其他开源项目)的创建者,已经发布了他的 Javascript 驱动的 PC 模拟器。 在当前状态下,它启动一个精简的、文本模式的 Linux 实现,并在现代浏览器中运行。 有趣的玩意儿还是潜在的有用工具?

要说它是用 Javascript 编写的,一种 解释型语言,通常用于网页上的客户端脚本,但该模拟器运行速度非常快。 在这台机器上(Sempron 3000, FF 4.1),它大约在一分钟内启动到命令提示符。 [更新:在我的 CoreDuo 上速度快得多] 顺便说一句,该模拟器需要像 Firefox 4 或 Chrome 这样的现代浏览器才能运行。

事情仍处于概念验证阶段,但已经有足够的东西可以玩了。 坐在命令行提示符下,我尝试的第一件事是输入ls。 这样做显示存在一个单独的文件,一个名为hello.c的 C 源代码文件。 尝试用 GCC 编译将不起作用,因为 GCC 没有安装。 检查文件的内容让我明白了事情的真相

~ # cat hello.c
/* 此 C 源代码可以使用以下命令编译
tcc -o hello hello.c
*/
#include <tcclib.h>
int main(int argc, char **argv)
{
printf("Hello World\n");
return 0;
}
~ #

该系统包含Tiny C Compiler(不要与Small-C混淆)是有道理的,因为那是 Bellard 启动的另一个项目。 您可以通过键入以下命令来了解系统支持的其他实用程序

ls /bin

那么,你可能会问,这东西实际上可以用来做什么呢? 就目前而言,没有那么多。 首先,网络尚未被模拟。 要在主机和访客环境之间执行任何类型的文件传输,必须使用系统剪切和粘贴缓冲区以及虚拟/dev/clipboard设备。 除此之外,没有办法将数据导入或导出系统。 这可能是系统的优点,因为它确实是在本地运行,而不是在服务器上运行,所以在隐私方面相当不错。 您只需点击刷新即可擦除整个系统。

它可以用来提供某种培训环境,教人们如何使用 Linux 命令行。 目前,如果您发现自己卡在没有安装编译器的机器上,该系统可以用来编译简单的 C 代码片段。

[更新:似乎我的一个朋友 Chris Williams 正在使用它来演示他的业余微内核项目Diosix]

实现完整的机器模拟器并不是 Javascript 创建的目的。 如果您真的需要一个无需在主机上安装任何东西即可访问的 Linux 命令行,那么最好通过 SSH 连接到远程盒子或在本地运行虚拟机。 如果必须是基于浏览器的,那么基于 Java 的 PC 模拟器可能会很慢,但它仍然比用 Javascript 编写的模拟器运行得更快。JPC网站甚至托管了一些您可以尝试的 Linux 演示示例,但当然,它们要求您安装了 Java。

Bellard 的 Javascript PC 模拟器是一项有趣的编程壮举,但它不太可能看到太多实际用途。 不过还是很酷。

Javascript PC 模拟器网站

加载 Disqus 评论