在浏览器中运行虚拟机

超越标签:探索现代网页功能

第1集

我们将在你的浏览器中运行一个完整的虚拟机!不仅仅是运行虚拟机——我们还会启动 FreeDOS 和 Alpine Linux。“等一下,什么?我们已经有 VirtualBox、VMware 和 DOSBox 来处理这些东西!” 那么,当你有浏览器时,谁还需要 VirtualBox?(开个玩笑!)

但说真的,让我们来展示现代浏览器变得多么强大,特别是现在它们支持 WebAssembly(Wasm)。当然,传统的虚拟机软件很棒,但能够在浏览器中运行整个操作系统?那简直太酷了!

如果你想跳到成品,可以在这里找到完成的代码:https://github.com/nadchif/in-browser-virtual-machine

在本指南中,我们将使用 React.js,但我会保持内容通用,以便你可以将其适应为普通 HTML 或任何你喜欢的框架。

你需要的东西

  • 基本的 HTML、Javascript 和 CSS 知识
  • 支持 WebAssembly 的网页浏览器。别担心,你现在使用的浏览器可能就能工作。
  • 安装了 Node.js。你可以在 这里 下载并按照安装步骤进行。

好吧,让我们开始构建这个东西吧!

1. 设置我们的 Web 应用

如果你已经是 React 专家,可以跳过设置,直接跳到组件部分!

首先,使用 Vite 创建我们的应用(它超级快速和现代):

npm create vite@latest

当它问你时:

  • 选择一个项目名称(我选择“browser-vm”)
  • 选择 React 作为框架。
  • 选择 Javascript 作为变体。(保持通用,正如我承诺的)
  • 然后运行:
cd browser-vm
npm install

组件

现在让我们设置我们的虚拟机显示。打开 App.jsx,将所有内容替换为以下内容:

function App() {
    return (
        <div id="screen_container">
            <div id="screen" style={
  { overflow: 'hidden' }}>初始化模拟器…</div>
            <canvas style={
  { display: 'none' }}></canvas>
        </div>
    );
}
export default App;

打开 index.css,将内容替换为:

#screen_container {
   
    white-space: pre;
    font-family: Courier, monospace;
    font-size: 14px;
    line-height: 14px;
    background-color: #000;
    color: #fff;
}
2. 准备我们的虚拟机

我们使用一个很酷的项目叫 V86,它将你的浏览器变成一个真正的计算机模拟器。它使用 WebAssembly 即时翻译计算机指令——相当不错,对吧?更多信息请见 这里

从 V86 的 GitHub 发布页面 下载以下文件:

接下来,从 V86 仓库的 bios 文件夹 下载以下 BIOS 文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻想多巴胺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值