如何在此处本地托管网络浏览器虚拟机:http://bellard.org/jslinux/

问题描述 投票:0回答:4

我不太了解 Javascript,我想托管集成 Linux 的 Web 浏览器(可以在 here 找到)。原因是我并不总是连接到网络,想知道它是如何工作的。无意不尊重作者的许可。

我尝试将三个文件(

term.js
cpux86.js
和 HTML 文件本身)的源复制到一个文件夹中,并运行 HTML,但它不起作用。

有什么办法让它发挥作用吗?
另外:如果它不起作用,为什么会这样?目录结构是我复制的,几乎是一样的

PS:我还使用了 Firefox 的 Javascript deobfuscator 插件,但这也没有多大帮助。我确实缩进了所有代码以使其更具可读性,但仍然无法理解:P

javascript operating-system
4个回答
1
投票

JS 代码本身不是“Linux 克隆”,它是一个适当的 x86 虚拟机加载 Linux 内核。

因此,您需要至少包含已编译的Linux内核的文件才能正常工作。

查看源码发现(至少)从

cpux86.js
加载了3个文件,分别是:
vmlinux26.bin
(Linux内核)、
root.bin
(可能是根文件系统)和
linuxstart.bin
(这似乎是引导加载程序)。


1
投票

这些是您需要的文件:

将它们与此文件一起放入文件夹中,然后就可以开始了:

<html>
<head>
<title>Javascript PC Emulator</title>
<style>
.term {
    font-family: courier,fixed,swiss,sans-serif;
    font-size: 14px;
    color: #f0f0f0;
    background: #000000;
}

.termReverse {
    color: #000000;
    background: #00ff00;
}
#note {
    font-size: 12px;
}
#copyright {
    font-size: 10px;
}

</style>
</head>
<body onload="start()">
<script src="term.js"></script>
<script src="cpux86.js"></script>
<div id="copyright">&copy; 2011 Fabrice Bellard - <a href="tech.html">Technical notes</a></div>
</body>

</html>

1
投票

除了给出的答案之外,您还可以尝试查看我在 jsmodem 项目中的本地服务器上托管 jslinux 的方式,网址为 http://github.com/ewiger/jsmodem(允许互联网连接)。

如果您安装了 python,只需启动本地 Web 服务器即可

python -m SimpleHTTPServer

0
投票

我尚未检查该页面,但您所需要做的就是确保正确引用了所需的所有资产。 js 资源在页面中引用,linux 二进制文件从这些脚本中的某个位置加载。您必须深入研究它们并找到位置,并适当地更改 URL。

至于弄清楚仿真等是如何工作的,这个项目是一项相当不错的黑客壮举,祝你好运:)

© www.soinside.com 2019 - 2024. All rights reserved.