`
zwhc
  • 浏览: 267511 次
  • 性别: 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?...

    jslinux-mobile:适用于iOSLinux-用Javascript编写的PC模拟器的移动版本,具有运行中的功能齐全Linux系统

    JSLinux Mobile –适用于iOSLinux 使用Javascript编写的PC模拟器的移动版本,具有正在运行的功能齐全Linux系统。 模拟器可以在iOS和Android设备上以全屏模式脱机运行。 Apple不允许在iOS中进行硬件仿真-AppStore没有...

    Node.js-一个Node.jsWebSockets开发JavaScript终端模拟器

    标题中的“Node.js-一个Node.jsWebSockets开发JavaScript终端模拟器”表明我们要讨论的是一个使用Node.js技术栈创建的项目,它具有WebSockets功能,用于开发JavaScript的终端模拟器。这个项目可能是为了提供一个交互...

    js86emu:用100%JavaScript编写的x86模拟器

    js86emu js86emu是一个完全用Java编写的x86模拟器。 当前的目标是正确模拟8086(88)处理器以及辅助硬件,例如硬盘控制器和图形。 这将允许模拟原始PC XT和PC AT系统。 我计划增加对较新处理器和系统的支持,直到...

    html.tar.gz_jslinux

    "jslinux"标签进一步确认了这个压缩包与JSLinux项目有关,意味着其中包含的代码可能是实现JavaScript版本的Linux内核模拟器,或者是相关的用户界面组件、脚本和配置文件。JavaScript Linux的实现依赖于JavaScript的...

    javascript 通过模拟CPU在线运行Linux

    JavaScript 通过模拟CPU在线运行Linux是一项技术上的创新,它允许用户在浏览器中体验完整的Linux操作系统,无需下载或安装任何软件。这项技术的核心是利用JavaScript的跨平台特性,将Linux的内核和其他系统组件转换...

    SnesJs:使用JavaScript的SNES模拟器

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

    量子电路:用JavaScript实现的量子电路模拟器

    量子电路模拟器是用JavaScript实现的开源量子电路模拟器。 在浏览器或服务器(node.js)上平稳运行20多个qubit模拟。 您可以在JavaScript程序中使用它来运行量子模拟。 可以从和导入Circuit。 您可以将电路导出到 ,...

    js-console-emulator:用于Javascript的用Javascript编写的简单控制台模拟器

    本文将详细介绍“js-console-emulator”——一个由JavaScript编写的简易控制台模拟器,以及如何利用它进行JavaScript开发和调试。 “js-console-emulator”是一个专为JavaScript设计的轻量级模拟器,它的灵感来源于...

    LatticeMico平台的Javascript模拟器.zip

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

    QT中使用QScriptEngine引擎编译运行JavaScript脚本

    例如,如果有一个名为`script.js`的JavaScript文件,可以这样运行: ```cpp QString scriptFile = "script.js"; QFile file(scriptFile); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QString ...

    基于HTML5、Javascript的FC NES模拟器.zip

    开发者必须深入理解6502的指令集,并将其转化为JavaScript代码,使得在浏览器中可以执行这些指令,模拟出与原版硬件相似的行为。 HTML5的Canvas是实现游戏画面的关键。开发者通过绘制像素点,动态更新屏幕内容,以...

    动物声模拟_动物叫声模拟器_

    在IT行业中,动物叫声模拟器是一种特殊的软件应用,它能够模仿不同动物的声音,如狗叫、猫叫等,为用户提供一种趣味性的互动体验。这样的应用通常结合了音频处理技术、编程语言以及用户界面设计等多个方面的知识。...

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

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

    JavaScript中的RaspberryPiPico模拟器.zip

    JavaScript中的Raspberry Pi Pico模拟器,如"rp2040js-master"所示,是一项创新的技术,它允许开发者在浏览器环境中使用JavaScript来模拟Raspberry Pi Pico微控制器。Raspberry Pi Pico是由Raspberry Pi基金会推出的...

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

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

    Learning Linux Binary Analysis linux 二进制分析

    - **分析一个简单的ELF文件**:学习如何使用readelf和objdump来分析一个基本的ELF可执行文件。 - **调试和修复内存泄漏**:使用Valgrind找出内存泄漏的位置,并使用GDB来调试和修复这些问题。 - **实现ROP攻击**:...

    gameboy-js:用 Javascript 编写的 Gameboy 模拟器

    它是用 Javascript 编写的,具有 CoffeeScript 的风格(用 Gulp 构建)。 建造 安装 $ npm install -g gulp $ npm install $ gulp build 用法 从源代码构建后,只需在浏览器中打开 index.html。 兼容性 ...

Global site tag (gtag.js) - Google Analytics