`
zwhc
  • 浏览: 262271 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

jslinux 简单分析:用JavaScript写出一个PC模拟器,上面运行Linux。

阅读更多
jslinux 简单分析

jslinux:用JavaScript写出一个PC模拟器,上面运行Linux

1、主页面 (http://bellard.org/jslinux/) 很简单,主要调用了 如下两个 js 文件。

http://bellard.org/jslinux/term.js
http://bellard.org/jslinux/cpux86.js

2、term.js 里也没有发现什么特殊的地方;

3、cpux86.js 使用到一个 load_binary 的函数,查看了一下实现,是通过 XMLHttpRequest 来取如下三个 bin 文件:
http://bellard.org/jslinux/vmlinux26.bin
http://bellard.org/jslinux/root.bin
http://bellard.org/jslinux/linuxstart.bin

通过迅雷来看,这三个文件,总大小 3.6M 以上。因为网站在国外,很卡。

通过代理下载成功。在本地试了一下,不错。
分享到:
评论
6 楼 ww2000e 2011-10-18  
打开只有一个光标闪
5 楼 javavsnet 2011-05-25  
才知道javascript也能访问二进制代码
4 楼 kran 2011-05-24  
感谢博主 :)
3 楼 zwhc 2011-05-23  
最下方有个链接,点开后进入
http://bellard.org/jslinux/tech.html

The code is written in pure Javascript using Typed Arrays which are available in recent browsers. It was tested with Firefox 4 and Google Chrome 11 on Linux, Window and Mac (it does not work with Chrome 12 beta. As far as I know, it is a bug in the browser). In any case, a fast Javascript engine is needed to have good performance.

Typed Arrays 就是用于操作二进制文件的。

http://www.khronos.org/registry/typedarray/specs/latest/


Abstract

This specification provides an API for interoperability with native binary data. It defines a generic fixed-length buffer type, as well as accessor types that allow access to the data stored within the buffer.

The functionality described here originated in the WebGL specification [WEBGL].
2 楼 kran 2011-05-22  
不清楚 到底 通过js怎么操作二进制文件。
代码又不能读。
博主清楚吗?
1 楼 topcss 2011-05-18  
确实不错。。。

相关推荐

    javascript写的模拟器运行linux--jslinux

    JavaScript编写的Linux模拟器,即JSLinux,是由著名的程序员Fabrice Bellard创作的一个创新项目。Fabrice Bellard是一位多产的开发者,以其在计算机领域的多项杰出贡献而闻名,包括FFmpeg、QEMU虚拟化软件以及...

    Javascript写的PC模拟器,正常运行Linux

    Javascript写的PC模拟器,正常运行Linux; 作者:Fabrice Bellard 你甚至能在此Linux中用Vi编辑一个C程序,然后编译运行之! 此包可以离线工作。 你还可以用它来测试你浏览器的脚本速度,你的电脑要几秒启动Linux?...

    Chip-8-JS-emulator:用JavaScript编写的Chip-8模拟器

    一个用JavaScript编写的Chip-8模拟器,具有多个游戏和演示。特征完整的Chip-8仿真加载各种经典的Chip-8游戏重置选项完全支持60 fps 经典的8位声音离线支援控制项CHIP-8键盘使用以下键盘映射: 1 2 3 4Q W E RA S D ...

    pdp11-js:用 JavaScript 实现的 PDP-11 模拟器。 UNIX V6 在您的 chrome 上运行

    这是一个用 JavaScript 实现的 PDP-11 模拟器。 UNIX V6 在您的 chrome 上运行。 演示 截屏 这是我的 PDP-11 模拟器在山景城计算机历史博物馆物理 PDP-11 前面的 Android Chrome 上运行的图片。

    Javascript 虚拟机 跑 Linux

    "cpux86.js"可能是一个JavaScript实现的x86处理器模拟器,因为x86是许多个人计算机上使用的指令集架构,也是Linux支持的常见平台之一。这个模拟器允许JavaScript虚拟机理解和执行原本需要真实CPU硬件才能处理的指令...

    SnesJs:使用JavaScript的SNES模拟器

    斯内斯一个SNES模拟器,使用javascript 在线尝试。注意我不确定我要进一步使用此模拟器。 尽管这是一个很好的概念证明,但无法全速运行(在我的硬件上)使进行这项工作非常烦人。 我之所以开始创建它,是因为我的...

    JavaScript随机数字键盘模拟器

    JavaScript随机数字键盘模拟器是一种常见的前端开发功能,用于在网页上模拟手机或计算器的数字输入键盘,常见于移动设备上的密码输入、数字选择等场景。本文将深入探讨如何使用JavaScript来实现这样的功能,包括基本...

    用JavaScript编写的ARM模拟器.zip

    JavaScript编写的ARM模拟器是一个独特的项目,它允许开发者在浏览器环境中模拟ARM处理器的指令集,以便于学习、测试和调试ARM代码。这个项目的核心在于利用JavaScript的灵活性和跨平台特性,将复杂的硬件操作抽象到...

    LatticeMico平台的Javascript模拟器.zip

    2. **构建项目**:根据项目文档,使用合适的工具(如Node.js的npm)来构建和运行模拟器。 3. **编写或加载代码**:你可以编写LM32汇编语言代码,或者使用已有的二进制文件。 4. **启动模拟**:在模拟器界面加载...

    vice.js, 面向JavaScript的多功能 Commodore 模拟器.zip

    vice.js, 面向JavaScript的多功能 Commodore 模拟器 VICE.js面向JavaScript的多功能 Commodore 模拟器使用of的端口的JavaScript端口。演示工具副总裁。浏览器版本状态说明Firefox39: )行Chrome43:

    Js99er:用 JavaScript 编写的 TI-994A 模拟器

    JS99er是一个基于JavaScript编写的TI-99/4A计算机模拟器。这个项目旨在为那些怀念过去经典计算机体验的人们提供一个在线平台,让他们能够在现代浏览器上重温这款1970年代末到1980年代初的家用电脑的魅力。通过...

    newton-8080:用JavaScript编写的Intel 8080模拟器

    【标题】"newton-8080"指的是一个基于JavaScript实现的Intel 8080微处理器模拟器项目,其名称可能来源于物理学家艾萨克·牛顿和8080芯片的组合。Intel 8080是1974年Intel公司发布的一款8位微处理器,对早期个人...

    js-zx8x:用javascript编写的ZX80模拟器。 包括完善的Z80仿真核心(无约束的指令,memptr)

    标签中的"emulation"指的是仿真技术,这在软件开发中用于重现硬件或系统的功能,而"EmulatorJavaScript"强调了这个模拟器是用JavaScript编写的,展示了JavaScript在跨平台应用和复杂计算任务上的潜力。 在"js-zx8x-...

    js-pdp8:用Javascript编写的PDP 8(简体)模拟器

    用Javascript编写的PDP 8(简体)模拟器。 信息 仿真器库位于lib文件夹中。 在那里,您可以找到有关如何在NodeJS中使用仿真器的说明。 您还可以构建兼容的js代码,以将其导入浏览器中。 文件夹app一个Web App的...

    禁止电脑端模拟手机网页js脚本

    标题"禁止电脑端模拟手机网页js脚本"指的是这样的情况,它描述了一种技术手段,用于阻止电脑端通过模拟手机浏览器来访问和运行网页中的JavaScript脚本。 首先,我们需要理解这个场景的核心问题。当用户在电脑上使用...

    ktnes:用Kotlin编写的多平台NES模拟器

    如果您想使用Gradle,请运行: ./gradlew android:installDebugJavaScript实现要构建/运行模拟器的Javascript版本,请运行: ./gradlew web:run然后,在浏览器上打开http://localhost:8080 。状态仍在积极发展中。 ...

    js-debug-page-for-nowcoder:用于nowcoder网站的javascript运行时模拟器

    用于牛客网 v8引擎评测...最终写了这么一个小玩意出来 UI根本没画没设计,做这玩意初衷只是为了能够有个可控的输入输出而已,笑 可能需要的环境 使用了Generator函数,Blob对象和Web Worker所以请使用现代浏览器进行浏

    avr8js:Arduino(8位AVR)模拟器,用JavaScript编写并在浏览器Node.js中运行

    分步视频教程,演示如何使用AVR8js和React构建简单的Arduino模拟器: 非官方的例子 -带有按钮和声音 可以模拟哪些芯片? 该库专注于模拟ATmega328p ,这是Arduino Uno使用的MCU。 但是,该代码以模块化的方式构建...

    jsnes:JavaScript NES模拟器

    这是一个在浏览器和Node.js中均可使用的库。 浏览器用户界面可从。 安装 对于Node.js或Webpack: $ npm install jsnes (或者用yarn add jsnes 。) 在浏览器中,您可以使用 : < script type =" text/...

    mahnesjs::joystick:一个纯JavaScript +另一个RustWebAsm NES模拟器! -https:hlorenzi.github.iomahnesjs

    MahNES.js 一个纯JavaScript +另一个Rust / WebAssembly NES模拟器! 输入如下: A :空格键,Z B :X Start :输入,H Select :Ctrl,Shift,G D-Pad :箭头键,WASD

Global site tag (gtag.js) - Google Analytics